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