首先,我知道没有任何备份是多么愚蠢。我无能为力,但我必须(尝试)解决它。
我有一个来自 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;
有些工具和咨询公司声称他们可以做到这一点,也许他们可以恢复部分甚至全部数据。但使用标准工具和经验无法做到这一点。