如何仅使用MDF文件添加MSSQL 2000数据库
时间:2020-03-06 14:39:20 来源:igfitidea点击:
我有一台旧服务器,上面有一个已失效的SQL 2000评估版(从2006年开始),还有两个数据库。
由于某些未知原因,缺少LDF日志文件。假定已删除。
我有该服务器上曾经存在的数据库的mdf文件(在某些情况下,也有ndf文件),我试图将它们安装起来并在我坐在的另一个SQL 2000框中运行。
sp_attach_db抱怨日志文件丢失,并且不会添加数据库。尝试通过使用数据库中具有相同名称的日志文件来欺骗它的尝试失败了。 sp_attach_single_file_db也不起作用。 mdf文件显然没有干净地分离。
如何获得数据库的附件并使其可读?
解决方案
我找到了这个答案,该答案可以在我的SQL 2000计算机上使用:
如何使用非干净分离的MDF文件添加数据库。
步骤1:建立一个具有相同名称的新数据库,并使用与新服务器上旧数据库相同的文件。
第2步:停止SQL Server,并将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 Server,并观察到数据库已成功进入紧急模式。
步骤5:运行此未公开的dbcc选项,以重建日志文件(在正确的位置)
DBCC REBUILD_LOG(TestDB,'D:\SQL_Log\TestDB_Log.LDF')
步骤6:我们可能需要重置状态。即使我们不这样做,这样做也不会造成任何伤害。
exec sp_resetstatus TestDB
步骤7:停止并启动SQL,以查看新还原的数据库。
在企业管理器中,右键单击服务器,然后选择"添加数据库"。选择MDF文件,然后单击"确定"。然后它将询问我们是否要创建新的日志文件。说是。