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

Jon*_*han 6 database sql-server recovery

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

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

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

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

如何使数据库附加和可读?

Jon*_*han 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
Run Code Online (Sandbox Code Playgroud)

步骤4:重新启动SQL服务器并观察数据库是否已成功处于紧急模式.

步骤5:运行此未记录的dbcc选项以重建日志文件(在正确的位置)

DBCC REBUILD_LOG(TestDB,'D:\SQL_Log\TestDB_Log.LDF')
Run Code Online (Sandbox Code Playgroud)

第6步:您可能需要重置状态.即使你不这样做,也不会有任何伤害.

exec sp_resetstatus TestDB
Run Code Online (Sandbox Code Playgroud)

步骤7:停止并启动SQL以查看新恢复的数据库.