SQL Server2005/2008数据库质疑案例分析(二)
金蝶云社区-天冥异
天冥异
8人赞赏了该文章 1,865次浏览 未经作者许可,禁止转载编辑于2018年08月31日 18:41:17

上一篇 https://vip.kingdee.com/article/5004

1.2.2 异常解决方案

分离数据库报错,无法分离时,可能是日志文件已损坏,此时可采用SQL语句修复数

据库日志重新生成。操作步骤如下:

第一步,打开数据库管理器,单击界面左上角工具栏中的“新建查询”,即为下图-4所示标识数字1,并选择图-4中2处选择质疑的数据库。

第二步,在打开的界面中输入如下SQL语句,单击图-4中3处“执行”即可解决。

USE MASTER

GO

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE

GO

ALTER DATABASE MyDB SET EMERGENCY

GO

sp_dboption 'MyDB', 'single user', 'true'

GO

DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')

GO

ALTER DATABASE MyDB SET ONLINE

GO

sp_configure 'allow updates', 0 reconfigure with override

GO

sp_dboption 'MyDB', 'single user', 'false'

GO

                                              image.png

图-4  新建查询

分析与说明

1.由于MSSQL 2005/2008 版本,不允许再修改数据库系统表,因而SQL语句与

MSSQL2000的数据库不同。

2.语句中的MyDB根据实际情况更改成当前质疑的数据库名称。

3.SQL语句的说明如下(斜体字部分根据实际情况改成当前质疑的数据库实体名称):

(1)SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE --更新系统表中的字段,运行后效果如下图-5所示;

image.png

图-5  执行第一条语句效果图

(2)ALTER DATABASE AIS20150408123859 SET EMERGENCY--修改数据库为紧急模式,执行后效果如下图-6所示;

image.png

图-6  执行第二条语句效果图

(3)sp_dboption 'AIS20150408123859', 'single user', 'true'--使数据库变为单用户模式,执行后效果如下图-7所示;

image.png

图-7  执行第三条语句效果图

(4)DBCC CHECKDB('AIS20150408142433','REPAIR_ALLOW_DATA_LOSS') --修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误,执行后效果如下图-8所示,会有警告信息;

image.png

图-8  执行第四条语句效果图

(5)ALTER DATABASE AIS20150408142433 SET ONLINE --使数据库联机,执行后效果如下图-9所示;

image.png

图-9  执行第五条语句效果图

 

(6)sp_configure 'allow updates', 0 reconfigure with override –将数据库的状态还原,执行后效果如下图-10所示;

 

image.png

图-10  执行第六条语句效果图

(7)sp_configure ’allow updates', 0 reconfigure with override –-将数据库用户模式更改回来,图-11 执行第七条语句效果图

image.png

图-11  执行第七条语句效果图


赞 8