我有一台旧服务器,上面有一个已失效的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,以查看新还原的数据库。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。