如何仅使用MDF文件附加MSSQL 2000数据库

时间:2008-09-24 11:29:25

标签: sql-server database recovery

我有一台旧服务器,其上有一个已解散的SQL 2000评估版(从2006年开始),还有两个数据库就在它上面。

由于某些未知原因,缺少LDF日志文件。推定删除。

对于曾经存在于该服务器上的数据库,我有mdf文件(在一种情况下也是一个ndf文件),我试图让它们运行并运行在我坐的另一个SQL 2000盒子上。 / p>

sp_attach_db抱怨日志文件丢失,并且不会附加数据库。试图通过使用具有相同名称的数据库中的日志文件来愚弄它失败了。 sp_attach_single_file_db也不起作用。 mdf文件显然没有完全分离。

如何附加数据库并使其可读?

2 个答案:

答案 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文件,然后单击“确定”。然后它会询问您是否要创建新的日志文件。说是。