SQL 2000 修复置疑、质疑、可疑数据库(精简版)

tlsoft 2022-1-25 379


use   master  
go  
exec sp_configure   'allow updates',1   --允许修改系统目录
go
reconfigure   with   override  --更新配置
go
update sysdatabases set status=-32768 where dbid=DB_ID('AIS20200120090843') --数据库更改为紧急模式
go
-----下面是重建日志文件,可以先不执行,如果dbcc checkdb('AIS20200120090843')检查完毕不是0个一致性错误,需要执行,执行此句其他语句也要执行
--dbcc rebuild_log('AIS20200120090843','D:\金蝶账套\AIS20200120090843_log.ldf')  --重建日志,执行此语句原有日志文件需要删除(停止数据库服务再删除)
go
-----上面是重建日志文件,可以先不执行,如果dbcc checkdb('AIS20200120090843')检查完毕不是0个一致性错误,需要重建日志,执行此句其他语句也要执行
dbcc checkdb('AIS20200120090843')   --数据库一致性校验
update sysdatabases set status=28 where dbid=DB_ID('AIS20200120090843') --恢复正常模式
go
exec sp_configure   'allow updates',0  --不允许修改系统目录
go
reconfigure   with   override   --更新配置
go

--如果经过上述操作 dbcc checkdb('AIS20200120090843') 还报错(不是0个一致性错误),需要提高修复级别,单独执行以下语句
go
exec sp_dboption 'AIS20200120090843', 'single user', 'true' --单用户操作数据库
go    
reconfigure   with   override --更新配置
go
DBCC CHECKDB('AIS20200120090843',REPAIR_ALLOW_DATA_LOSS) --允许丢失数据
go
DBCC CHECKDB('AIS20200120090843',REPAIR_REBUILD) --不丢失数据,只修复索引
-- 以上两个DBCC根据情况二选一
go
dbcc checkdb('AIS20200120090843') --执行校验,最终不出现一致性错误,为修复成功!
go
exec sp_dboption 'AIS20200120090843', 'single user', 'false' --恢复多用户操作数据库



最新回复 (0)
返回
发新帖