仅使用 LDF 文件恢复数据库

仅使用 LDF 文件恢复数据库

首先,我知道没有任何备份是多么愚蠢。我无能为力,但我必须(尝试)解决它。

我有一个来自 SQL Server 2000 数据库的事务日志 (LDF) 文件,其中包含自创建数据库以来的所有事务。没有进行任何截断。MDF 文件不见了。可能是因为磁盘故障。没有备份。不是来自原始数据库,也不是来自事务日志。

我尝试将事务日志链接到新的干净数据库。但(当然)失败了,因为 SQL Server 检查了两个文件的身份。我读过可以读取事务日志的软件。ApexSQL 似乎可以做到这一点。我尝试安装试用版,但在尝试启动程序时会出现奇怪的错误。

有人知道我的解决方案吗?它可能包含第三方软件,但我更喜欢干净的 SQL Server 解决方案。

答案1

那么 MDF 是怎么消失的呢?数据驱动器是否损坏或发生故障?

除了使用第三方工具外,您没有太多选择。

我能想到的唯一办法就是将 LDF 附加到虚拟数据库,然后对日志进行尾部备份。但即便如此,它也不会给你带来任何好处。

基本流程如下:

create database MyDatabase
go

-- run a full backup, this can be disgarded

alter database MyDatabase
set offline
go

-- go delete the mdf and ldf

alter database MyDatabase 
set online
go

backup log MyDatabase
to disk = 'C:\SQL Backups\MyDatabase-tail.trn'
with no_truncate
go

现在您有了 LDF 文件的 LOG 备份,但我不确定您可以从那里用它做什么。

也许可以搜索一种可以让您读取备份文件的产品......

祝你好运!

答案2

不可能。ldf 有变化,有具体的交易编号。

即使您创建一个与原始数据库完全相同的全新数据库,新数据库中的交易编号也不会与 ldf 文件的交易编号相关联。

只需密度板文件相关 StackOverflow 帖子

Create database dbname 
    On 
    (   
    Filename= 'path where you copied files'   
    )
    For attach; 

有些工具和咨询公司声称他们可以做到这一点,也许他们可以恢复部分甚至全部数据。但使用标准工具和经验无法做到这一点。

相关内容