加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLSERVER2008R2 数据库可疑的解决步骤

发布时间:2020-12-12 13:10:15 所属栏目:MsSql教程 来源:网络整理
导读:异常关机后,金蝶帐套突然无法访问,发现数据库置疑,使用此方案解决: 一般情况下这样可以解决: 1、将数据库设置为应急状态 ? ALTER DATABASE AIS20150723104254 SET emergency 2、将数据库设置为单用户模式 ? ALTER DATABASE AIS20150723104254 SET SINGL

异常关机后,金蝶帐套突然无法访问,发现数据库置疑,使用此方案解决:

一般情况下这样可以解决:

1、将数据库设置为应急状态

? ALTER DATABASE AIS20150723104254 SET emergency

2、将数据库设置为单用户模式

? ALTER DATABASE AIS20150723104254 SET SINGLE_USER

3、对数据库进行检查修复

? DBCC CheckDB (AIS20150723104254,REPAIR_ALLOW_DATA_LOSS)

REPAIR_ALLOW_DATA_LOSS代表,若此错误不能修复时,系统将直接删除相关数据。

? DBCC ?checkdb (AIS20150723104254,REPAIR_REBUILD)

尝试直接修复数据库错误


使用上面两个语句进行数据库检查修复,如果返回结果中没有了红色的提示文字,说明修复成功


此数据库执行CHECKDB的过程中发现一些表的索引被破坏,于是针对具体的表进行重建索引的操作:?

? DBCC DBREINDEX(表名)?

完成后可以运行dbcc checkdb(db_name)检查数据库的完整性.


4、最后,取消单用户模式即可。

? exec sp_dboption AIS20150723104254,N'single',N'false'

? ALTER DATABASE AIS20151130094910 SET MULTI_USER


日志文件损坏或丢失时,可以尝试此方法:

1、把问题数据库文件备份到其它目录

? 停掉SQLSERVER服务,把服务器上出问题的数据库,假设名称为 ErrorDB的数据库文件及日志文件备份复制到其他目录,然后直接将其删除,把其数据库文件及日志文件也删除

2、新建同名数据库

? 启动SQLSERVER服务,新建同名数据库ErrorDB,文件目录和文件名和原来一致

3、用备份的数据库文件替换新的数据库文件

? 停掉SQLSERVER服务,把备份的数据库文件替换新的数据库文件(只替换数据库文件,不替换日志文件)

? 启动SQLSERVER服务,打开数据库,这时数据库应该是不能访问的

-------------------设置应急模式、单用户模式、检查修复数据,取消单用户模式----------------------

4、将数据库设置为应急状态

? alter database ErrorDB set emergency

? 执行后,为了保险起见,重新停止、开启的SQLSERVER服务

? 再打开数据库,已经可以看到里面的内容了,如表,视图,存储过程等

? 数据库名称后有紧急标志,能看到数据库结构,但无法进行备份等操作

5、将数据库设置为单用户模式

? ALTER DATABASE ErrorDB SET SINGLE_USER

6、对数据库进行检查修复

? dbcc checkdb(ErrorDB,REPAIR_ALLOW_DATA_LOSS)

? dbcc checkdb(ErrorDB,REPAIR_REBUILD)

? 操作后,仍然停止启动SQLSERVER服务(不确定是否需要,我只是为了想无干扰查看执行后的数据库状况)

?

7、取消单用户模式即可

? exec sp_dboption ErrorDB,N'false'

? ALTER DATABASE ErrorDB SET MULTI_USER

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读