/ 中存储网

Exchange邮件服务器群集 HTTP 虚拟服务器实例无法联机处理

2014-08-28 22:11:34 来源:中存储网

Exchange Server 2003群集依靠各个实例的群集资源来提供Exchange的相关功能和应用,包括Exchange 信息存储实例、Exchange 邮件传输代理实例、Exchange 路由服务实例、SMTP 虚拟服务器实例、Exchange HTTP 虚拟服务实例、Exchange MS 搜索实例等。因此其中任何实例资源无法联机,或多或少都会对使用带来影响。

当某部分实例出现无法联机情况时,我们应该从哪些角度去分析原因,并解决问题呢?下面将结合实际遇到的场景进行讨论。

正文:

最近某客户遇到一个问题,其在Exchange2003群集管理控制台发现Exchange HTTP 虚拟服务实例联机失败,这直接导致用户无法通过web的方式访问邮箱,如下图所示:

环境介绍:

当前使用的Exchange版本为2003,共有两台服务器Mail01、Mail02,并通过共享存储组成群集架构。邮箱数据库和客户端访问均由此两台服务器同时承担。

事件日志:

事件日志中的错误通常会给我们指引方向,通过对微软technet网站的搜索,可以分析大致原因有以下几点:

  • 原因 1 - 元数据库中的下列设置被设置为 0 (data==0) Id: ClusterEnabled。
  • 原因 2 - 将 Exchange 更新到新的 Service Pack 时,您将看到此消息,因为配置了太多的存储组。
  • 原因 3 - Active Directory 中“CN=协议”下缺少特定的协议容器。
  • 原因 4 - 已发现诸如 DSAccess 拓扑、DNS 配置、全局编录可用性等网络问题可导致此问题。
  • 原因 5 - 特定节点上一个协议的多个虚拟服务器将不会启动。有时,这可能是由于该节点上的元数据库损坏而导致的。

    针对以上原因进行逐一排查,否定了前四种,我们将原因定位在某节点上的元数据损坏上。为了进一步验证哪个节点的元数据损坏,我们通过分别重启Mail01和Mail02来进行观察,发现是Mail02的元数据损坏。确定了原因以后,我们拟定初步解决方案:通过脚本将正常节点上的IIS相关数据拷贝到坏节点上。具体操作如下:

    注意:需要在C:WindowsSystem路径下运行脚本。

    根据上图提示,元数据成功恢复至服务器Mail02,此时我们再到群集管理器中尝试将Exchange HTTP虚拟服务实例联机,发现成功联机。如下图所示:

    总结:

    • IIS元数据库损坏的原因包括:扫描%systemroot%system32inetsrvmetabase.bin文件的防病毒软件、iisadmin.exe 进程意外停止或中止、不受支持的元数据库编辑、磁盘损坏或其他硬件故障;
    • IIS元数据库损坏会引起IIS相关应用的故障,因此需提前做好相关防范措施,如: 
      1)定期备份元数据
      2)如安装了防病毒软件,建议对IIS、Exchange安装目录、数据及日志所在目录进行例外设置。