超高度疑难问题!!sqlserver2005数据库(可疑),试了众多办法,无法恢复!!
由于突然断电,服务器关闭了。来电后开机后,公司OA不能使用了。登录sqlserver2005客户端,发现数据库后面多了(可疑)。
从网上找了4种办法,都不行,我试过的如下:
----------------------------------
重启服务
--------------------------------------------------
日志文件丢了,建一个日志文件
--------------------------------------------------
SQL SERVER 2005 数据库状态为“可疑”的解决方法
--MyDB为修复的数据名
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
-------------------------------------------------
当数据库发生这种操作故障时,可以按如下操作步骤可解决此方法,打开数据库里的Sql 查询编辑器窗口,运行以下的命令。
1、修改数据库为紧急模式
ALTER DATABASE Zhangxing SET EMERGENCY
2、使数据库变为单用户模式
ALTER DATABASE Zhangxing SET SINGLE_USER
3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。
DBCC CheckDB (Zhangxing, REPAIR_ALLOW_DATA_LOSS)
4、使数据库变回为多用户模式
ALTER DATABASE Zhangxing SET MULTI_USER
也可以这样做:
1:重新建立一个,一样的数据库,路径名称,文件都一样。
2:关掉SQL Server服务;
3:把源文件COPY过来;
4:开启SQL Server服务,这样问题同样就解决了。
这4种办法都不行。其中我用第三种试过之后数据库的可疑俩字没有了,数据库能在客户端中打开了,但是好几个表都不正常。
比如其中一个表中共有24417条数据,但是只能用select top 23405 * from t1_1 order by id查询到第23405条,如果改成23406则报错:消息 824,级别 24,状态 2,第 1 行
SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:26791,但实际为 1:8933)。在文件 'D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\dsc010207.mdf' 中、偏移量为 0x0000000d14e000 的位置对数据库 ID 5 中的页 (1:26791) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。
而且,该数据库在OA系统中不能访问,提示:无法打开登录所请求的数据库 "dsc010207_db"。登录失败。很奇怪!
在刚出现问题后,我在操作之前备份了mdf和ldf文件。
请问我该怎么办呢?谁能帮我弄下呢?