当前位置:趣知科普网>游戏数码>电脑>

MS SQL数据库置疑修复

电脑 阅读(2.32W)

Sql Server数据库本身依赖于操作系统、文件读写存储等环境,数据库经常因为操作系统、异常关机、异常终止退出或者SQL Server数据库本身的机制问题均会导致数据库无故损坏。因此我们要对数据库进行修复。

操作方法

(01)下面以hbfsv8数据库为例停止SQL服务管理器,将原数据文件拷贝出来进行备份,然后将原数据库删除。

MS SQL数据库置疑修复

(02)启动SQL Server服务(如已停止),创建一个新的数据库,命名为原来数据库的名字。

MS SQL数据库置疑修复 第2张

(03)停止SQL Server服务,用备份出来的老数据库的MDF文件替换新数据库相应的MDF文件,并把新数据库相应的LDF文件删除。

MS SQL数据库置疑修复 第3张

(04)重新启动SQL Server服务,然后运行如下命令:Use MasterGosp_configure 'allow updates', 1reconfigure with overrideGobegin tranupdate sysdatabases set status = 32768 where name = 'hbfsv8'--Verify one row is updated beforecommittingcommit tran

MS SQL数据库置疑修复 第4张

(05)停止SQL然后重新启动SQL Server服务,然后运行如下命令:DBCC TRACEON(3604)DBCC REBUILD_LOG('db_name','C:ProgramFilesMicrosoft SQLServerMSSQLDatahbfsv8_')Go--注:此处的db_name一定要更换为需要修复的数据库名称,比如此实例中的hbfsv8

MS SQL数据库置疑修复 第5张

(06)停止SQL然后重新启动SQL Server服务,然后运行:use masterupdate sysdatabases set status = 8 where name = 'hbfsv8'Gosp_configure 'allow updates', 0reconfigure with overrideGo

MS SQL数据库置疑修复 第6张

(07)运行dbcc checkdb(hbfsv8)检查数据库的完整性,如果有很多红色文字,说明需要修复。

MS SQL数据库置疑修复 第7张

(08)修复数库*以下语句可以多次执行,一直到没有红色文字出现,则修复成功*这类故障是一般是由于磁盘读写问题造成的。* 'hbfsv8'代表要修复的数据库--请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线USE masterGo--单用户模式EXECsp_dboption 'hbfsv8', 'single user', 'TRUE'go--数据库检查DBCCCHECKDB ('hbfsv8')Go--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复--数据库修复DBCCCHECKDB ('hbfsv8',repair_rebuild)Go--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;DBCCCHECKDB ('hbfsv8')Go--否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。--如果还有错误未修复,--退出前请一定要执行以下语句返回到多用户模式EXECsp_dboption 'hbfsv8', 'single user','FALSE'go

MS SQL数据库置疑修复 第8张

(09)--单用户模式EXEC sp_dboption 'hbfsv8', 'single user', 'TRUE'go

MS SQL数据库置疑修复 第9张

(10)-数据库检查DBCC CHECKDB ('hbfsv8')Go--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复

MS SQL数据库置疑修复 第10张

(11)--数据库修复DBCC CHECKDB ('hbfsv8','repair_rebuild')Go--多次运行此语句,红色文字不断减少,说明在修复中。

MS SQL数据库置疑修复 第11张

(12)--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;DBCC CHECKDB ('hbfsv8')Go--否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'即是(DBCC CHECKDB ('hbfsv8','repair_allow_data_loss')Go)再试,运行后,这样红色文字就没有了,说明修复成功了,之后再次检查数据库。

(13)--退出前请一定要执行以下语句返回到多用户模式EXECsp_dboption 'hbfsv8', 'single user','FALSE'go