我需要从 SQL Server 2000 事务日志文件中恢复已删除的数据。日志文件有 3.3GB。我尝试了常用的 SQL Log Rescue,但它不断崩溃并出现内存不足异常。我也在不同的机器上尝试过,但出现同样的错误。
我尝试了 ApexSQL Recover,似乎有效,但这只是试用版,因此只显示每 10 行。如果我找不到更便宜的解决方案,我可能别无选择,只能花 999.00 美元购买此工具。
有任何想法吗?
编辑 - 如果我尝试从备份中恢复然后重播我的日志文件,我可以将备份恢复到同一台服务器上的不同数据库(新)吗?
答案1
删除是什么时候发生的?您有该期间的日志备份吗?您能将整个数据库还原到已知的还原点吗?数据库中是否发生了您需要的其他事务?
如果发生了其他事务(这有点复杂),请将数据库的最后一个完整备份恢复到新位置并按顺序应用事务日志。使用停止子句移动到数据被删除之前的位置并使数据库联机。
现在您应该已将已删除的数据添加到数据库中。您现在可以生成插入语句,将丢失的记录重新插入到实时数据库中。如果架构很复杂(即有多个独立的表),RedGate 的数据比较等工具将非常有用。您可以安装一个功能齐全的试用版,对恢复的数据库和生产数据库进行一次性比较。
编辑:是的,使用不同的数据库名称恢复数据库,并使用 MOVE 选项为数据文件指定不同的物理位置(如果使用 T-SQL)。在 EM 中的选项选项卡中,更改恢复为文件名。