年底了,很多公司都在对核心系统进行灾难恢复性测试,我一朋友公司也不例外。

他们前几天主要针对Exchange 2003进行灾难恢复测试,过程如下:

1、使用镜像工具对Exchange服务器进行镜像操作;

2、将镜像文件在其他服务器上进行恢复操作;

3、将还原后的服务器连接入测试网络(测试网络中包含有生产网络的相关服务);

4、在工作组环境下修改服务器IP,加入域重启服务器。

按正常情况,Exchange服务将启动,但重启后发现包含Exchange Information Store在内的多个服务不能启动。

出现这个问题后,我们一起寻找问题发生的原因和解决办法:

1、首先用MPSReport(http://download.microsoft.com/download/b/b/1/bb139fcb-4aac-4fe5-a579-30b0bd915706/MPSRPT_Exchange.EXE)收集报告;

从收集到的报告来看,发现了一个错误日志:

ID: 9157
Level: Warning
Provider: MSExchangeSA
Machine: Fox-MAIL-01
Message: Microsoft Exchange System Attendant does not have sufficient rights to read Exchange configuration objects
in Active Directory. Wait for replication to complete and then check to make sure the computer account is a member
of the "Exchange Domain Servers" security group.

ID: 1005
Level: Error
Provider: MSExchangeSA
Machine: Fox-MAIL-01
Message: Unexpected error The specified domain either does not exist or could not be contacted. Facility: Win32 ID no: c007054b
Microsoft Exchange System Attendant occurred.
c007054b = The specified domain either does not exist or could not be contacted.

ID: 2104
Level: Error
Provider: MSExchangeDSAccess
Machine: Fox-MAIL-01
Message: Process INETINFO.EXE (PID=1752). All the DS Servers in domain are not responding.

从以上信息可以初步了解到,发生错误的原因是因为System Attendant不能联系活动目录,导致服务不能启动。

2、尝试还原服务器访问活动目录的相应端口,如389、3268等,访问正常;

3、检查服务账号情况,发现在Exchange Domain Servers中没有现有的计算机账号。这时才发现,在还原时在工作组环境下,生成了新的计算机账号,这也导致了原有的计算机账号没有了原有访问活动目录的权限;

    这时就需要在活动目录中将现有的计算机账户加入到Exchange Domain Servers;

    运行ADSIEdit,在AD的Configuration分区,转到CN=services\CN=Microsoft Exchange\CN= libertymutual\CN=Administrative Groups\CN=First administrative Group\CN=servers\CN=Fox-MAIL-01, 赋予当前计算机帐号对该对象完全控制的权限。

4、修改完成后,重启Microsoft Exchange System Attendant服务,并重启Information Store服务,一切恢复正常。