IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

Exchange Server灾难恢复的真实记录(2)

2008年05月14日
itvue/itvue

[3] 设置额外控制(DC2.domain.com&, , amp;, , lt;, , /SPAN>)为GC(全局编录)

 

    打开Administrative Tools中的Active Directory Sites and Services,展开Sites,展开Default-First-Site-Name,展开Servers,展开DC2.domain.com(额外控制器),右击NTDS Settings选择Properties,然后在“Global Catalog”前面打勾,单击“确定”按钮,然后重新启动服务器。

[4] 重新安装并恢复损坏的主域控制器

    修复DC1.domain.com之后,在DC1.domain.com服务器上重新安装Windows 2000 Server。基本上按照原来的服务器配置安装组件,但是先不要安装“证书服务”(安装“证书服务”后,无法进行有关改名和域的操作)。安装好Windows 2000 Server之后,再运行dcpromo升级为额外的域控制器;如果需要DC1.domain.com担任五种FMSO角色,通过ntdsutil工具进行角色转换,使用Transfer操作(注意:这时DC2在线,不能用Seize,只能Transfer)。完成后再安装“证书服务”。

    通过Active Directory Sites and Services设置DC1.domain.comGC,而取消DC2.domain.comGC。至此,修复Active Directory部分。

    (注:建议domain naming master同时必须作为GC,而不和RID master使用同一台Domain Controller

2、恢复邮件服务器

    由于Exchange Server会扩展Active DirectorySchema,将配置信息保存在Active Directory中,所以我们不能简单地重新安装了事。那样会覆盖掉以前的所有配置信息,包括地址簿结构、邮件存储还有其他的非邮件存储数据。让我们一步一步地来尝试修复。

[1] 安装Exchange Server

    为了适应灾难恢复环境下的安装,Exchange Server以及后面的Exchange Server Service Pack的安装文件都提供了 /disasterrecovery 参数来实现灾难恢复环境下的系统修复。

    我们需要将系统恢复到崩溃前的状态,如果安装了SPPatch,新的系统也要安装相同的SPPatch

    安装组件的选择也很重要,必须与崩溃时的系统所安装的组件一致。所以,日常维护中记录软件的安装配置也是一项很重要的工作。

    在这个例子中,安装好邮件服务器后,依次安装SP3还有Rollout,恢复到崩溃之前的软件安装。

[2] 修复邮件存储

    Exchange Server 2000 发生损坏时,信息存储是最容易受到影响的组件之一。实际上Windows家族的很多设计为永远在线工作的数据库,都使用了Exchange数据库引擎。信息存储由下列四个数据库文件组成:

    Priv1.edb

    Priv1.stm

    Pub1.edb

    Pub1.stm

 

    Priv1.edb 数据库文件包含简单邮件传输协议 (SMTP) 邮件,其中包括正在传送的邮件和存储在服务器上的邮件。Priv1.stm 数据库文件包含正在传送的邮件和存储的非 SMTP邮件。Pub1.edb 数据库文件包含用于SMTP 格式信息的公用文件夹存储。Pub1.stm包含用于非SMTP格式数据的共用文件夹存储。

    我们的邮件服务器是stand alone的,没有使用站点连接器,也没有安装密钥管理。所以,我们选择了KB313184的恢复流程。

    由于我们的数据库是异常退出,所以需要确认数据库的一致性。如果数据库是一致的,则所有日志文件都已提交给信息存储。如果数据库不一致,则数据库可能未损坏。相反,日志文件可能丢失、被损坏或尚未提交到数据库。

    我们运行下面的eseutil命令以检查公用和专用数据库的一致性(为便于阅读,这些命令已折行,粗斜体为输入内容)。

C:Program FilesexchsrvrBIN>eseutil /mh "C:Program Filesexchsrvr

MDBDATApriv1.edb"
C:Program FilesexchsrvrBIN>eseutil /mh "C:Program Filesexchsrvr

MDBDATApub1.edb"

    注意:这里假设正在从C盘上的Program FilesExchSrvrBin文件夹中运行程序,并且.edb文件位于Program FilesExchSrvrMdbdata文件夹中,如果执行了升级,这些数据库文件可能位于C:ExchsrvrMdbdata文件夹中。如果优化了数据库,则这些文件可能位于另一驱动器上,可根据实际情况自行替换。

    要验证.edb文件是否一致,请检查标有“State”的输出行。为了方便观察可以在前面的命令行后面分别加上“> mypriv.txt”和“> mypub.txt”,生成两个文本文件。或者使用| more”参数来逐屏输出。

    在我们的例子里,服务器上的数据库state是“Dirty Shutdown”,所以需要对数据库进行软故障恢复,以检查 Mdbdata 文件夹中是否存储了日志文件的副本。

注意:以下步骤并不是按操作顺序排列的,也不是每一步都必须执行的,修复邮件存储,需要根据实际情况选择一步或者几部执行!

(a) 保存有日志文件的存储恢复

    执行软故障恢复时,所有未提交的日志文件都将被提交给信息存储数据库。打开数据库和日志文件所驻留的文件夹,然后在命令提示符处键入下面的内容(为便于阅读,这些命令已折行,粗斜体为输入内容):

C:Program FilesexchsrvrMDBDATA>"C:Program Filesexchsrvr

BINeseutil.exe" /r E00

    单击“”运行修复。实用工具将显示下面的消息:

Microsoft(R) Exchange Server(TM) Database Utilities

Version 6.0

Copyright (C) Microsoft Corporation 1991-2000.  All right reserved.

 

Initiating RECOVERY mode...

Logfile base name:E00

Log Files:(current directory)

System files:(current directory)

 

Performing soft recovery...

    完成软故障恢复之后,程序将显示下面的消息:

Operation completed successfully in x.xxx seconds.

    可再次运行 eseutil /mh 命令。如果公用信息存储和专用信息存储的状态都更改为“一致”,表明数据库已经修复。

(b) 无日志文件或者日志文件损坏的存储恢复

    如果eseutil /r 命令未恢复数据库到一致状态,请使用硬故障恢复(强制状态恢复)命令。(注意:该命令可能会丢失某些 Exchange 2000 数据,其中包括尚未提交给信息存储数据库的日志文件中所包含的消息。Microsoft 建议,只有在执行软故障恢复后公用信息存储或专用信息存储仍没有恢复到一致的状态时,才使用此命令。)

    在命令提示符处,键入下列命令(为便于阅读,这些命令已折行,粗斜体为输入内容):

    Priv1.edb 文件恢复到一致状态:

C:Program FilesexchsrvrMDBDATA>"C:Program FilesexchsrvrBINeseutil" /p priv1.edb

    Pub1.edb 文件恢复到一致状态:

C:Program FilesexchsrvrMDBDATA>"C:Program FilesexchsrvrBINeseutil" /p pub1.edb

    单击“”运行修复。实用工具将显示下面的消息:

Microsoft(R) Exchange Server(TM) Database Utilities

Version 6.0

Copyright (C) Microsoft Corporation 1991-2000.  All right reserved.

 

Initiating REPAIR mode...

Database:priv1.edb

Streaming file:priv1.stm

Temp.Database:TEMPREPAIR1820.EDB

 

Checking database integrity.

 

Scanning Status (% complete)

    0    10   20   30   40   50   60   70   80   90   100

    |----|----|----|----|----|----|----|----|----|-----|

    ....................................................

    修复过程中将自动包括.stm 文件。在完成此过程之后,程序将显示下面的消息:

Integrity check successful.

(c) 进行邮件存储的脱机碎片整理

    建议对修复的数据库文件执行碎片整理。特别是磁盘空间不足的时候。可以在另外的机器上执行这种脱机碎片整理工作。如果对 Pub1.edb 文件和 Priv1.edb 文件都运行了软故障恢复过程,请分别对这两个文件运行下面的碎片整理命令(为便于阅读,这些命令已折行,粗斜体为输入内容)。

    Priv1.edb 进行碎片整理:

C:Program FilesexchsrvrBIN>eseutil /d

C:Program FilesexchsrvrMDBDATApriv1.edb

    Pub1.edb 进行碎片整理:

C:Program FilesexchsrvrBIN>eseutil /d

C:Program FilesexchsrvrMDBDATApub1.edb

    注意:如果存储数据库很大,整理需要一段时间。如果提示磁盘空间不足,请将 Program FileExchSrvrBin 文件夹复制到更大的磁盘,然后尝试从该位置运行此命令。

 

    删除 Mdbdata 文件夹中的所有.log 文件、.chk 文件,然后删除 Temp.edb 文件(如果存在)。 关闭所有收发信的服务,以避免用户在修复过程中访问邮件存储。将数据库装入一次,然后立即将其卸载(Dismount)。

    建议对修复的数据库文件执行碎片整理。特别是磁盘空间不足的时候。可以在另外的机器上执行这种脱机碎片整理工作。如果对 Pub1.edb 文件和 Priv1.edb 文件都运行了软故障恢复过程,请分别对这两个文件运行下面的碎片整理命令(为便于阅读,这些命令已折行,粗斜体为输入内容)。

    Priv1.edb 进行碎片整理:

C:Program FilesexchsrvrBIN>eseutil /d

C:Program FilesexchsrvrMDBDATApriv1.edb

    Pub1.edb 进行碎片整理:

C:Program FilesexchsrvrBIN>eseutil /d

C:Program FilesexchsrvrMDBDATApub1.edb

    注意:如果存储数据库很大,整理需要一段时间。如果提示磁盘空间不足,请将 Program FileExchSrvrBin 文件夹复制到更大的磁盘,然后尝试从该位置运行此命令。

发表评论请到:http://bbs.cnitom.com