某单位的局域网用Microsoft Exchange Server 5.5 英文版作为内部网信息协作平台,以Microsoft WINNT4.0(有装SP6a补丁)作为操作系统。Exchange Server上存储了每个人的个人邮箱和各个处室98年至今的办公信息,客户端通过Microsoft Outlook 2000接收和查看个人邮件及公共信息。此服务器接UPS,设置为自动每天7:30AM开机,9:00PM关机。
某日,用户报告Microsoft Outlook 2000进不去,经检查,网络状况都正常,服务器上Microsoft Exchange Directory 服务及其相关的服务Microsoft Exchange Information Store 、 Microsoft Exchange Message Transfer Agent 、 Microsoft Exchange Event Service都没有启动。试着手工启动这些服务,都启动不了,报了WINNT内部错误。经检查和分析,排除了事件日志满、硬盘空间不中、权限设置改变等可能产生此故障的原因,认为可能是chsrvr\Dsadata\下的Dir.edb 数据库不完整或碎片太多,所以决定用eseutil命令工具来修复。执行eseutil /R 命令后发现dir.edb数据库是不完整的(inconsistancy),接着执行eseutil /D 命令以整理数据库碎片,但却提示此数据库有错。且Microsoft Exchange Administrator 管理器也无法连上Exchange Server ,因此也无法使用Directory Export 倒出或倒入 Recipient containers 里的数据信息。整个 Exchange Server 服务完全无法使用了,而Exchange Server 服务器上的数据信息对用户单位是极其重要的,很多重要的办公信息都在Exchange Server 服务器的数据库上。
为了修复数据库,挽救Exchange Server 服务器上保存的大量重要数据,我根据现场症候仔细分析了相关的事件日志记录,利用微软在线知识库查阅了大量相关资料,并请教了对Exchange Server有经验的专家,非常谨慎地一步步实施事故障检测和修复,经过两天的奋斗,终于修复了Exchange Server 服务,且所有的目录和数据信息都得到完全恢复。具体修复步骤如下:
第一步,打开控制面板/服务,停止已启动的 Microsoft Exchange System Attendant 服务及其相关的Exchange Server 服务。
第二步,复制 \Exchsrvr\Mdbdata 下的pub.edb 、priv.edb 、Edb*.log 、Res*.log 和Edb.chk到别的地方(如F:\Mdbdataback\ )。
第三步,运行Microsoft Exchange Server 5.5光盘里的setup.exe ,选择Remove All ,把Exchange Server完全卸载掉,卸载后重新启动计算机。
第四步,再次运行Microsoft Exchange Server 5.5光盘里的setup.exe ,重装Exchange Server ,在安装过程中设置Organization Name 和 Site Name名时,一定要设置成和原来一样的名称。安装完后,需装上和原来一样的补丁程序。安装完成后,打开控制面板/服务,查看服务,这时,与Exchange Server相关的服务(Microsoft Exchange Information Store 、 Microsoft Exchange Message Transfer Agent 、 Microsoft Exchange Event Service)都已启动,说明Exchange Server 服务器已正常安装。
第五步,打开控制面板/服务,停止Microsoft Exchange System Attendant服务及其相关的Exchange Server 服务。
第六步,把新装的 \Exchsrvr\Mdbdata 目录下的pub.edb 、priv.edb 、Edb*.log 、Res*.log 和Edb.chk移动到别的地方(如F:\newmdbtemp\ ),把在第二步时备份的pub.edb 、priv.edb 、Edb*.log 、Res*.log 和Edb.chk文件复制到新装的 \Exchsrvr\Mdbdata目录下。
第七步,重新启动计算机,打开控制面板/服务,发现Microsoft Exchange System Attendant 、Microsoft Exchange Directory Services 、Microsoft Exchange Message Transfer Agent服务都已启动,但Microsoft Exchange Information Store 和 Microsoft Exchange Event Service服务都无法启动。切换到MS-DOS方式下,切换到 \Exchsrvr\Bin 目录后,执行Isinteg -patch 命令,以在新安装的目录下生成唯一的GUIDs (Globally Unique Identifiers) 。然后手工启动Microsoft Exchange Information Store 和 Microsoft Exchange Event Service ,就可正常启动了。至此,Exchange Server 服务器的相关服务都已正常启动了,但进入Microsoft Exchange Server Administrator管理器后,Containers 里还没有Exchange Server 用户。
第八步,运行Microsoft Exchange Server Administrator管理器,打开菜单File→New Other→Recipients Containter ,重建一个和原来同样目录名(Directory Name)的Recipient Containter 。
第九步,选中Microsoft Exchange Server Administrator管理器窗口中左边面板里的任一个服务对象(如Organization 、Site 、Configuration等),然后打开菜单File→Properties ,选择Advanced 选项卡,点击DS/IS Consistency Adjustment 按钮,选中 All Inconsistencies ,点击Adjust 。再查看Containers,这时所有的Exchange Server用户都已显示在各自相应的容器里了。
第十步,依次选中Recipients里的用户邮箱,然后打开File→Properties ,点击Primary Windows NT Account ,从Add User OR Group 列表里选择相应的Windows NT 帐户。至此,Exchange Server服务修复好了,Microsoft Exchange 客户可登录进Exchange Server服务器并使用相应的目录及信息服务了。
在这次的Exchange Server服务器故障修复过程中,我有以下几点体会:
第一、一定要做好备份,以防修复不成功时可以再恢复;
第二、要充分利用事件日志的记录以分析故障产生的可能原因,并找出解决方法;
第三、要充分利用微软公司的在线知识库(http://support.microsoft.com/search/),搜索出和问题相关的文章,从中找出解决问题的方法。