|  | 
 
| 数据库置疑及修复         数据库置疑处理
 提要:在数据库置疑或者修复的处理过程中,须先将文中的数据库更改为真实的数据库名称.
 数据库置疑修复处理完成后,需执行第二步骤,使用DBCC语句对数据库进行检测并修复错误.
 对于损坏的数据库,可参照数据库修复处理方法进行处理.
 步骤1:
 
 停止SQL服务管理器,将原数据文件拷贝出来进行备份,然后将原数据库删除,使用思迅数据库安装程序创建一个新的数据库。
 
 步骤2:
 
 停止SQL Server 服务管理器
 
 步骤3:
 
 用备份出来的老数据库的MDF文件替换新数据库相应的MDF文件,并把LDF文件删除。
 
 步骤4:
 
 重新启动SQL Server服务,然后运行如下命令:
 
 Use Master
 Go
 
 sp_configure 'allow updates', 1
 
 reconfigure with override
 
 Go
 
 begin tran
 
 update sysdatabases set status = 32768 where name = 'hbfsv8'
 
 --Verify one row is updated before committing
 
 commit tran
 
 步骤5:
 
 停止SQL然后重新启动SQL Server服务,然后运行如下命令:
 
 
 
 
 DBCC TRACEON(3604)
 
 DBCC REBUILD_LOG('db_name','C:\ProgramFiles\Microsoft SQL Server\MSSQL\Data\hbfsv8_log.ldf')
 Go
 --注:此处的db_name一定要更换为需要修复的数据库名称,比如此实例中的hbfsv8
 
 
 步骤6:
 
 停止SQL然后重新启动SQL Server服务,然后运行:
 
 use master
 
 update sysdatabases set status = 8 where name = 'hbfsv8'
 
 Go
 
 sp_configure 'allow updates', 0
 
 reconfigure with override
 
 Go
 
 步骤7:
 
 运行dbcc checkdb(hbfsv8) 检查数据库的完整性
 
 
 
         数据库修复
 /*****************************************************************
 * 本语句可以多次执行,一直到没有红色文字出现,则修复成功
 * 这类故障是一般是由于磁盘读写问题造成的。
 * 'hbfsv8'代表要修复的数据库
 * 下面的语句是修复总部数据库的SQL,如需要修复分部的数据库,请将 'hbfsv8' 改为 'hbfsv8_branch'
 ******************************************************************/
 --请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线
 
 USE master
 Go
 --单用户模式
 EXEC sp_dboption 'hbfsv8', 'single user', 'TRUE'
 go
 --数据库检查
 DBCC CHECKDB ('hbfsv8')
 Go
 --如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
 --数据库修复
 DBCC CHECKDB ('hbfsv8',repair_rebuild)
 Go
 --再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;
 DBCC CHECKDB ('hbfsv8')
 Go
 --否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。
 --如果还有错误未修复,
 
 
 --退出前请一定要执行以下语句返回到多用户模式
 EXEC sp_dboption 'hbfsv8', 'single user','FALSE'
 go
 
 | 
 |