分类: 服务器与存储
2015-01-01 21:40:13
此部分包含使用 eseutil 或 Isinteg 来修复 Exchange 数据库时应当了解的常规信息。
有关使用 eseutil 或 Isinteg 的详细信息,请参阅 Microsoft 知识库文章 812357 XADM:在使用 eseutil /p 工具修复 Exchange 数据库后维护该数据库 和 182081 Isinteg 实用工具的说明。修复 Exchange 数据库时,请考虑以下信息:
使用 eseutil 和 Isinteg 修复 Exchange 数据库会导致所修复的 Exchange 数据库丢失数据。为此,在试图执行修复过程之前,请先复制要修复的数据库文件。(有关如何复制数据库文件的信息,请参阅恢复 Exchange 数据库中的“移动或复制要还原的数据库文件的现有版本(可选)”。)由于无法撤消在修复过程中对数据库的更改,因此仅将使用 eseutil 和 Isinteg 作为最后手段。如前所述,建议通过还原备份集而不是修复数据库来恢复损坏的数据库。
如果使用 eseutil 修复 Exchange 数据库,必须有足够的可用磁盘空间来运行 eseutil。如果要运行 eseutil /P,必须在同一驱动器上拥有所修复数据库大小的大约 20% 的可用空间。如果没有这么多空间,可以使用命令行开关将临时文件重定向到其他位置。如果要使用 eseutil /D,必须有数据库大小的 110% 的空间。虽然可以像使用 /P 开关一样将临时文件重定向到另一个驱动器,但这将大幅度增加修复数据库所需的时间。如果可能,使用 /D 开关时要有充足的可用空间。
使用 eseutil 和 Isinteg 实用程序修复数据库文件要花费相当长的时间。通常,修复数据库比从备份还原数据库花费的时间更长。
如果这两个实用程序都成功运行(例如,如果最后一次运行 Isinteg 结束时没有任何错误),则通常认为数据库已修复,并且已做好替换已损坏的数据库的准备。
如果计划将修复后的数据库放回生产环境中,必须执行下列步骤:
1.运行 eseutil /p。
C:\program files\exchsrvr\bin> eseutil /p “c:\progra~1\exchsrvr\mdbdata\priv1.edb” /I
2.运行 eseutil /d。
C:\program files\exchsrvr\bin> eseutil /d “c:\progra~1\exchsrvr\mdbdata\priv1.edb” /I /t "d:\tmp.edb"
3.运行 isinteg –fix –test alltests。
c:\program files\exchsrvr\bin>isinteg -s (servername) -fix -test alltests
如果只计划从磁盘抢救数据,而不计划将它放回生产环境,则可跳过此部分前面的步骤 2。跳过步骤 2 将节省恢复过程的时间,但可能导致数据库出现索引错误和空间分配错误。这些错误不是您希望在生产环境中发生的错误,但它们可能不会影响从数据库抢救数据的能力。
如果 eseutil 和 Isinteg 无法修复数据库中的每个错误,最好不要放弃被修复的数据库。Isinteg 完成之后,应当报告数据库中有零个错误。如果错误计数大于零,请再次运行 Isinteg 直到计数变为零,或在后续运行中计数不再减少。如果无法让错误计数归零,请不要将数据库放到生产环境中。请通过将文件夹合并或复制到新的数据库,或通过将邮箱移动到新的数据库,抢救数据库中的数据。
可以使用另一个服务器从已损坏的数据库还原数据。例如,可以将损坏的数据库还原到另一个服务器,然后使用 Exmerge 实用程序从该数据库中提取数据,再将数据插入到新的数据库文件中。也可以在同一服务器上使用恢复存储组,从损坏的数据库中还原数据。有关恢复存储组的信息,请参阅 Using Exchange Server 2003 Recovery Storage Groups(英文)。