从 SQL Server 事务日志文件中恢复已删除的行

Sai*_*han 5 data-recovery sql-server

我需要从 SQL Server 2000 事务日志文件中恢复已删除的数据。日志文件为 3.3GB。我尝试了通常的 SQL Log Rescue,但它一直因 outOfMemory 异常而崩溃。我也在不同的机器上尝试了同样的错误。

我试过 ApexSQL Recover,似乎有效,但它是一个试验,所以只显示每 10 行。如果我找不到更便宜的解决方案,我可能别无选择,只能为此工具支付 999.00。

有任何想法吗?

编辑 - 如果我尝试从备份还原然后重播我的日志文件,我可以将备份还原到同一服务器上的不同数据库(新)吗?

Nic*_*ias 3

删除是什么时候发生的?您有该期间的日志备份吗?您可以将整个数据库恢复到已知的恢复点吗?您需要的数据库中是否发生了其他事务?

如果发生了其他事务(这有点复杂),请将数据库的最后一个完整备份恢复到新位置并按顺序应用事务日志。在删除数据之前使用STOPAT子句并使数据库联机。

您现在应该将已删除的数据存储在数据库中。您现在可以生成插入语句,将丢失的记录插入回实时数据库中。如果模式很复杂(即不止几个独立的表),像 RedGate 的数据比较这样的工具将很有用。您可以安装一个功能齐全的试用版,以在恢复的数据库和生产环境之间进行一次性比较。

编辑:是的,如果使用 T-SQL,请使用不同的数据库名称恢复数据库,并使用 MOVE 选项为数据文件指定不同的物理位置。在 EM 中的选项选项卡中更改恢复文件名。