我有一台旧服务器,其上有一个已解散的SQL 2000评估版(从2006年开始),还有两个数据库就在它上面。
由于某些未知原因,缺少LDF日志文件。推定删除。
对于曾经存在于该服务器上的数据库,我有mdf文件(在一种情况下也是一个ndf文件),我试图让它们运行并运行在我坐的另一个SQL 2000盒子上。 / p>
sp_attach_db
抱怨日志文件丢失,并且不会附加数据库。试图通过使用具有相同名称的数据库中的日志文件来愚弄它失败了。 sp_attach_single_file_db
也不起作用。 mdf文件显然没有完全分离。
如何附加数据库并使其可读?
答案 0 :(得分:6)
我找到了这个答案,它适用于我的SQL 2000机器:
如何使用非干净分离的MDF文件附加数据库。
步骤1:创建一个具有相同名称的新数据库,该数据库使用的文件与新服务器上的旧文件相同。
步骤2:停止SQL服务器,并将mdf文件(以及您拥有的任何ndf文件)移到刚刚创建的新文件的顶部。删除所有日志文件。
第3步:启动SQL并运行此命令以将数据库置于紧急模式。
sp_configure 'allow updates', 1
go
reconfigure with override
GO
update sysdatabases set status = 32768 where name = 'TestDB'
go
sp_configure 'allow updates', 0
go
reconfigure with override
GO
步骤4:重新启动SQL服务器并观察数据库是否已成功处于紧急模式。
步骤5:运行此未记录的dbcc选项以重建日志文件(在正确的位置)
DBCC REBUILD_LOG(TestDB,'D:\SQL_Log\TestDB_Log.LDF')
第6步:您可能需要重置状态。即使你不这样做,也不会有任何伤害。
exec sp_resetstatus TestDB
步骤7:停止并启动SQL以查看新恢复的数据库。
答案 1 :(得分:1)
在Enterprise Manager中,右键单击服务器,然后选择“附加数据库”。选择MDF文件,然后单击“确定”。然后它会询问您是否要创建新的日志文件。说是。