关于SQL数据库置疑的处理
置疑产生的原因:
SQL数据库置疑的原因主要是因为日志文件出错(*.LDF),而日志文件之所以出错,可能是因为磁盘空间的不足,也有可能是人为地将LDF文件删除了,而我们R9的账务系统中,最常见的原因是因为在凭证存盘时,非法关机(如停电)。 置疑数据库的表现:
一、进入账务系统,选择账套,录入用户名和口令后,提示不能连接到服务器; 二、打开企业管理器,该数据库名后边加上了(置疑)字样
三、点分离或附加数据库都报错,不能进行操作(SQL7.0下,不能用sp_attach_db命
令)
处理办法:
一、停止SQL服务,进入安装目录,找到Data目录下的“zw0002.ldf”文件,直接删
除;
二、重启SQL服务,打开查询分析器,执行以下脚本: use master go
sp_configure 'allow updates',1 go
reconfigure with override go/*允许对系统目录直接修改*/
update sysdatabases set status=-32768 where dbid=DB_ID('zw0002')/* 设置zw0002为紧急修复模式*/
dbcc rebuild_log('zw0002','C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\zw0002.ldf')/* 重建数据库日志文件*/
以上脚本将自动为数据库重建一个LDF文件,数据库就不再置疑了!但会出现如
图所示:
此时,我们只需要打开数据库的属性,去掉DBO前边的“√”即可!
三、为了稳妥起见,可以在查询分析器里执行一下以下脚本,检查一下数据库的正确
性,如果为“0”个错误,证明数据库可以正常使用了:ddcc checkdb(zw0002)
四、将设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比
较危险的事情,我们可以执行一下,以下脚本: sp_configure 'allow updates',0
go
reconfigure with override go
use master go
sp_configure 'allow updates',1 go
reconfigure with override go
update sysdatabases set status=-32768 where dbid=DB_ID('zw0002') dbcc rebuild_log('zw0002','e:\\sqlData\\zw0002.ldf')