sql2005可疑状态怎么解除 (sql2008数据库修复语句)

第一步、数据恢复

1、 停止sqlserver服务,将置疑的原数据库物理文件做好备份。

2、 启动SqlServer服务,新建账套

3、 停止SqlServer服务,修改原置疑数物理文件数据库名称,跟新建账套物理文件名称相同

4、 用原置疑数据库物理文件覆盖替换新建账套数据库物理文件

第二步、修复置疑

将下面数据库名称替换为实际的置疑的数据库物理文件名称,可通过下面的方法修复置疑。

重建日志文件之前,需要将已有的日志文件删除。

alter database 数据库名称 set emergency

go

alter database 数据库名称 set single_user with rollback immediate

go

use master

go

alter database 数据库名称 Rebuild Log on

(name=置疑数据库_log,filename='F:\XXX\XXX\XXX\data\置疑数据库名称_log.LDF')

go

alter database 数据库名称 set multi_user

go

如果没有数据库置疑的情况,直接进入第三步。

第三步、数据检测

账套还原后,可以使用如下语句,检测数据库中是否存在分配性错误或一致性错误。

Dbcc checkdb(’数据库名称’)

第四步、数据修复

如果检测到数据库存在一致性错误,则按照下面的步骤进行修复。

l 首先将数据库置为单用户模式。

alter database 数据库名称 set single_user

通过在企业管理器中手工修改,具体操作:

找到账套库,右键【属性】——【选项】,然后将【限制访问】修改为单用户模式,修改为SINGLE_USER。

尝试使用带参数修复数据,查看修复情况,并重新检测数据是否修复成功。

dbcc checkdb ( '数据库名称' , repair_rebuild )

dbcc checkdb ( '数据库名称' , repair_allow_data_loss )

先用第一条脚本进行修复,反复修复直到检测结果没有一致性错误为止;如果反复修复后还是有一致性错误,可使用第二条脚本进行修复,重复上面的操作。

注意:第二条脚本,是低级别的数据修复,有可能会造成数据丢失,在修复的时候一定要提前跟伙伴做好沟通。

尝试使用带参数修复数据,查看修复情况,并重新检测数据是否修复成功。

如果出现红色提示:索引ID错误,这种一般是表损坏,可以看下红字下面的提示,有对应的问题表的提示,如问题表object

则可以直接执行表修复语句:

dbcc checektable(’有问题的表名‘)

修复完后再重新检测一下,看是否还有问题,如果有的话,重复上面的操作。

修复完毕后,将数据库改回正常模式。

alter database 数据库名称 set multi_user