我有一个笔记本电脑模具HDD死了,一个正在运行的sql数据库被打开了(在程序中),我不得不让硬盘恢复,但是我得到的只是一个坏的数据库,它已经撕破了页面。所有专业的软件接缝,以能够读取我的数据库和修复,如果我支付399.00的软件,但我希望我可以使用内置的DBCC,但它缝所有我尝试不起作用,所以我希望得到一些帮助。以下是我试图将数据库联机时的错误
由于无法访问文件或内存或磁盘空间不足,无法打开Msg 945、14级、状态2、第1行数据库“CompassDefaultDB”。有关详细信息,请参阅Server错误日志。Msg 5069,级别16,状态1,第1行ALTER语句失败。Msg 824、24级、状态2、第1行SQL Server检测到基于逻辑一致性的I/O错误:不正确的校验和(预期: 0x20203e65;实际: 0x1f329010)。这是在读取数据库ID 5中的页(1:9)时发生的,偏移量为0x00000000012000,位于文件'C:\Program \Microsoft Server\MSSQL.2\MSSQL\Data\CompassDefaultDB_51120120410_data.mdf'.中。Server错误日志或系统事件日志中的其他消息可能会提供更多细节。这是一个严重的错误情况,威胁到数据库的完整性,必须立即纠正。完成完整的数据库一致性检查(DBCC )。此错误可能是由许多因素造成的;有关详细信息,请参阅Server联机丛书。
所以我试着
DBCC CHECKDB (CompassDefaultDB, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;那让我
由于无法访问文件或内存或磁盘空间不足,无法打开Msg 945、14级、状态2、第1行数据库“CompassDefaultDB”。有关详细信息,请参阅Server错误日志。
所以我试着
ALTER DATABASE CompassDefaultDB SET EMERGENCY;Msg 824、24级、状态2、第1行SQL Server检测到基于逻辑一致性的I/O错误:不正确的校验和(预期: 0x20203e65;实际: 0x1f329010)。这是在读取数据库ID 5中的页(1:9)时发生的,偏移量为0x00000000012000,位于文件'C:\Program \Microsoft Server\MSSQL.2\MSSQL\Data\CompassDefaultDB_51120120410_data.mdf'.中。Server错误日志或系统事件日志中的其他消息可能会提供更多细节。这是一个严重的错误情况,威胁到数据库的完整性,必须立即纠正。完成完整的数据库一致性检查(DBCC )。此错误可能是由许多因素造成的;有关详细信息,请参阅Server联机丛书。
然后
DBCC CHECKDB (CompassDefaultDB, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;Msg 922,14级,状态1,第1行数据库'CompassDefaultDB‘正在恢复。等待恢复完成。
它将永远停留在这种模式下,并且不需要seam来完成这个数据库,它只有2MB,我想要的是17行数据。我可以重新启动sql服务器,并以相同的结果重复相同的步骤。我做错什么了吗?任何帮助都是徒劳无功的
我确实有原始损坏的数据库,并试图恢复和重复,但以相同的结果,我还试图打开一个数据库的同名,删除mdf文件,并以相同的基本结果替换我。没有备份:(再次感谢您查找
发布于 2014-08-21 09:57:19
试图修复数据库是没有帮助的。第1:9页是一个系统对象,系统对象不能修复。您需要编写表的脚本并创建一个新的数据库。然后在新数据库中创建表,并将数据复制到新数据库中。
如果数据库无法打开,可以尝试使用ALTER SET emergency将其设置为紧急模式,这可能会使数据库联机。如果你这么做了,你可以把数据写出来。否则你就完蛋了。
如果你有后援..。另一种选择是将数据库还原到页面损坏之前的某个时间点。如果您有一个来自很远的备份,您可以还原该备份,然后向前滚动事务日志,您应该能够回到一个状态,在那里您拥有所有的当前数据,而没有损坏。
https://dba.stackexchange.com/questions/74535
复制相似问题