我的 Exchange 数据库处于异常关闭状态,并且我没有备份。有一个名为 e00.log 的损坏日志文件。我该如何修复 Exchange 数据库?
答案1
如果没有备份,则需要使用 ESEUtil(和搜索引擎)来修复数据库。您可以阅读TechNet 上的 eseutil.exe,但基本如下面所述:
- 运行 Eseutil /P
- Eseutil /P 成功完成后,运行 Eseutil /D
- Eseutil /D 成功完成后,运行 Isinteg –fix –test alltests
现在,我不会重写整个过程,而是会向您指出一些更详细的分步指南:
Exchange Server 数据库损坏和异常关机情况- 解释这件事是如何发生的。
异常关机后修复 Exchange 数据库- 非常详细的分步指南。
为什么 Exchange 数据库在 ESEUTIL /R 恢复后可能仍旧脏乱- 有关该主题的更多有价值的阅读材料。
意识到此过程需要大量时间和大量可用磁盘空间。在运行这些命令之前,请阅读链接的 TechNet 文章和其他资源。祝你好运!
答案2
由于日志在主数据库之后发挥着重要作用,因为事务日志包含数据库可能没有的数据,因此它们在 Exchange 数据库发生故障时的恢复中起着重要作用。如果没有日志文件,数据库将不一致,并且很可能无法使用。
由于 Exchange 数据库有两种状态:“肮脏关机和干净关机”取决于数据库是否处于“一致还是不一致”状态
不一致的数据库:如果事务正在等待写入数据库,但服务器意外关闭(由于任何原因),则数据库仍与日志文件相连。在这种情况下,内存中要修改的页面被标记为脏,这就是此场景中的数据库被称为脏关闭状态的原因,类似于上面的情况:
验证数据库的状态,ESE实用程序 /mh可以使用命令:
Exchange Server 执行 Exchange 数据库恢复的两种方式日志文件已损坏
软恢复:此恢复是针对数据库的脱机副本执行的。此处,必须使用 ESEutil 工具手动处理恢复。对于日志文件的手动重播,语法为:
硬恢复:该过程导致重放日志文件,可以使用“最后的备份集”进行处理。它类似于软恢复,但不同之处在于,可以使用 Restore.env 文件而不是 Checkpoint 文件来重放日志文件。
参考:http://www.exchangerecover.com/blog/recover-exchange-database-without-log-files.html
答案3
当数据库显示 Dirty Shutdown 时,它会显示安装数据库并使数据库处于一致状态所需的日志文件。但在某些情况下,数据库无法通过播放日志文件恢复到干净状态,因为日志文件已损坏或丢失。在这种情况下,您需要使用 eseutil/p 来修复数据库,运行Eseutil 命令针对数据库的副本。
修复数据库后,使用 eseutil/d 开关对数据库进行碎片整理以确保其健康。然后将邮箱移动到新的数据库。
重要提示:
您至少需要 110-120% 的额外磁盘空间
如果您的数据库大小为 2GB,那么您最多需要 2.2GB 来恢复数据库。