如何附加被分离的质疑数据库?

 

简介

有些时间,由于日志损坏等原因,导致了数据库质疑。如果此时你分离了数据库,那你会发现你无法再附加上数据库,那后果还是很严重的。因此本文提供了一种方式,可以使得当数据库质疑并且分离出了实例,依然可以用一种HACK的方法进行附加。

具体步骤

目前有一个数据库AttchSuspectDatabase,中只有一张表Test,其中只有一列INT列,目前其中数据是1,2。我们将该数据库搞为质疑,如图1所示。

附加被分离DB-LMLPHP

图1.数据库质疑

此时,我们分离数据库后。尝试附加,显示失败,如图2所示。

附加被分离DB-LMLPHP

图2.数据库已经无法附加

即使我们使用重建日志等方法,发现依然无法附加,如图3所示。

附加被分离DB-LMLPHP

图3.尝试重建日志方法附加,依然无效

那由于质疑是日志导致的问题,我们直接删了日志附加数据库呢?

附加被分离DB-LMLPHP

图4.删除日志附加,依然无效

此时,我们通过一种Hack的方法来附加数据库。首先,我们创建同名数据库,然后将该数据库下线,代码如下所示:

ALTER DATABASE [AttchSuspectDatabase] SET OFFLINE;
GO

将原有数据库MDF文件替换新创建的傀儡数据库的MDF文件,此时,数据库附加成功,但状态仍然是质疑,如图5所示。

附加被分离DB-LMLPHP

图5.Hack方法附加数据库成功

此时,我们就可以通过正常的手段修复数据库了。如图6所示

附加被分离DB-LMLPHP

至此,通过一些小技巧来附加质疑的数据库就完成了。

 
 
05-11 13:09