我有一台旧的服务器,其上有一个已停用的SQL 2000评估版(从2006年开始),还有两个数据库就在它上面.
由于某些未知原因,缺少LDF日志文件.推定删除.
对于曾经存在于该服务器上的数据库,我有mdf文件(在一种情况下也是一个ndf文件),我试图让它们运行在我坐在的另一个SQL 2000盒子上.
sp_attach_db
抱怨日志文件丢失,并且不会附加数据库.试图通过使用具有相同名称的数据库中的日志文件来愚弄它失败了.sp_attach_single_file_db
也不行.mdf文件显然没有完全分离.
如何使数据库附加和可读?
我找到了这个答案,它适用于我的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以查看新恢复的数据库.