6

我有一台旧服务器,上面有一个已失效的 SQL 2000 评估版本(从 2006 年开始),还有两个数据库。

由于某些未知原因,LDF 日志文件丢失。估计删了。

我有用于该服务器上曾经存在的数据库的 mdf 文件(在一种情况下还有一个 ndf 文件),我正试图让它们在我坐的另一个 SQL 2000 机器上启动并运行。

sp_attach_db抱怨日志文件丢失,并且不会附加数据库。试图通过使用来自同名数据库的日志文件来欺骗它的尝试失败了。sp_attach_single_file_db也不会工作。mdf 文件显然没有被完全分离。

如何获得附加和可读的数据库?

4

2 回答 2

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

第四步:重启SQL Server,观察DB成功进入紧急模式。

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

DBCC REBUILD_LOG(TestDB,'D:\SQL_Log\TestDB_Log.LDF')

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

exec sp_resetstatus TestDB

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

于 2008-09-24T11:38:28.067 回答
1

在企业管理器中,右键单击服务器并选择附加数据库。选择 MDF 文件并单击确定。然后它会询问您是否要创建新的日志文件。说是。

于 2008-09-24T11:39:09.560 回答