SQLServer2000 断电后数据库suspect“置疑”处理

SQLServer2000 断电后数据库suspect“置疑”处理

背景介绍:

前些天加班时候,接到小舅子微信,说一个客户的winXP 机器上sql2000的数据库在断电重启后,数据库执行命令时提示suspect“置疑”错误。小舅子电子工程师,对数据库不够深入了解很正常,知道我是搞数据库的专门找我来了。虽然sqlserver流行度一直在全球前三,但工作经历中一直没跟它打过交道。未来工业自动化发展,windows 视窗系统及配套程序在传统行业、机械制造业中还是会广泛应用的。

问题处理:

– sqlserver 2000 服务器意外down机,导致有连接未断开的数据库状态变为“可疑”。
https://blog.csdn.net/xiaolong9870/article/details/86578390

1、开通系统表修改权限
sp_configure ‘allow updates’, 1 reconfigure with override;

2、将数据库状态设置为-32768(只读\脱机\紧急模式)
update sysdatabases set status = -32768 where name in (‘HBNX_MCC_DEV’,‘HBNX_MCC_UAT’)

3,设置问题库为单用户模式,
sp_dboption ‘mysql’, ‘single user’, ‘true’
DBCC CHECKDB(‘mysql’)

4、恢复原数据库状态(将出问题的数据库状态改为0-正常,如果一直处于“紧急模式”,可能会对其他数据库操作有影响)
update sysdatabases set status = 28 where name = ‘mysql’ ;

5、关闭系统表修改权限
sp_configure ‘allow updates’, 0 reconfigure with override;
sp_dboption ‘mysql’, ‘single user’, ‘false’

https://blog.sina.com.cn/s/blog_5814f4470100d1cy.html
–数据库处于回避恢复模式,是因为没有日志。如下处理
update sysdatabases set status=-32768 where name=‘mysql’
go

dbcc rebuild_log(‘mysql’,‘C:\Program Files\Microsoft SQL Server\MSSQL\data\mysql.LDF’)
go

update sysdatabases set status=28 wherename=‘mysql’
go

sp_configure ‘allow updates’,0 reconfigure with override
go

sp_dboption ‘mysql’, ‘single user’, ‘false’

–切换到问题库,测试查看某个数据库中所有表名:
use mysql
select name from sysobjects where type=‘U’
Select TABLE_NAME FROM mysql.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE=‘BASE TABLE’

猜你喜欢

转载自blog.csdn.net/keaihuilang/article/details/129115264