【摘要】
随着时间的推移,微软邮件系统逐渐趋于完善,深受诸多企业的喜爱,也有越来越多的企业投入到Exchange Server系列邮件系统中,对于Exchange邮件系统的认知也愈加深刻。目前大部分企业使用的是Exchange 2010与Exchange 2013,在这两个版本中,引入了一个新的功能-邮箱自动隔离,本文将结合作者自身在工作中的体会,详细介绍邮箱自动隔离的机制、产生的现象及有效的处理办法。希望能够对大家以后工作中的故障处理有所参考和帮助。
【正文】
一 邮箱隔离机制
作为一款软件的设计者,总是希望软件能够在日常的运行当中更加智能的分析潜在的故障并自动进行处理。Exchange Server软件也遵循这样的一种设计思路,在Exchange 2010 SP1之后,引入了邮箱自动隔离机制,以此来实现保护邮件系统稳定运行的目的。
总所周知,MAPI客户端通过多个线程连接到Exchange服务器,进而连接上自己的邮箱。连接成功后,我们能够实现邮件的收发、公用文件夹的访问、联系人搜索等等。当某一些线程出现故障之后,MAPI客户端会反复的尝试去连接,会占用更多的CPU资源等,影响服务器的性能。当这种邮箱连接“线程”故障达到一定的阀值之后,用户邮箱就会被Exchange Server后台自动隔离起来。
那么什么情况下,会导致邮箱连接“线程”出现故障呢?一般说来有如下集中情况可能导致上述故障:
由于数据库受损,导致内部邮箱损坏;
客户端第三方软件破坏线程;
网络故障;
Store.exe程序受到影响
同时,我们还应关注邮箱被隔离的阀值,当达到以下参考值之后,用户邮箱会被隔离起来,无法正常使用:
连接邮箱的线程超过5个受损,且持续时间超过60s;
连接邮箱的线程超过3个受损,且持续时间超过2小时;
我们可以通过修改线程数来避免邮箱被频繁的隔离起来,影响用户的使用。也可以修改用户邮箱被隔离的时间,保证用户邮箱及时恢复正常。打开注册表编辑器,找到如下位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MSExchangeIS\ParametersSystem
在该注册表项下,我们可以添加键值MailboxQuarantineCrashThreshold,调整用户邮箱被隔离的线程阀值;添加MailboxQuarantineDurationInseconds,调整用户邮箱被隔离的时间,默认是6个小时。
二 邮箱隔离现象
经过作者自身的工作经历,发生邮箱隔离的故障,有三个如下明显的现象:
用户终端表现为用户MAPI客户端登陆状态正常,但是能收不能发、能发不能收或者既不能收也不能发,表现出了非常明显的邮箱连接线程受损的状况;
在管理控制台,用户-邮箱管理这里,双击打开用户邮箱,点击”邮箱功能“选项卡时,会弹出如下报错:
点击用户邮箱属性上的其它选项卡不会有任何报错;
在MBS邮箱服务器上,检查邮件系统邮箱隔离的注册表键值HKLM\SYSTEM\CCS\Services\MSexchangeIS\ParameterSystem\Servername\Private-dbguid\Quarantined Mailboxes,可以找到该隔离用户邮箱的GUID,如下图:
三 邮箱隔离处理
我们常说,头痛医头脚痛医脚,对症下药。但是在出现用户邮箱被隔离的状况下,并不能有效的解决问题。尽管我们可以在注册表这里删除掉改用户邮箱的GUID,使其暂时从隔离的环境中脱离出来。但是只要用户再次尝试连接邮箱,依然会被立即隔离起来。为了保证用户邮箱的正常使用,应采用如下步骤进行处理:
在后端服务器上的隔离注册表中删除此用户的邮箱GUID。需要特别注意的是,每一台后端服务器上隔离的邮箱是不一样的,需要每一台都去排查;
将用户邮箱迁移至其他正常运行的邮箱数据库,在迁移过程中,会对受损的邮箱进行修复,经过多次实践,进行迁移后,不再发生用户邮箱被隔离的情况。
通常情况下,同一个数据库内的其他邮箱也会逐渐发生被隔离的情况,建议对数据库的用户进行迁移完成后,重建数据库。
四 总结
作者人为用户邮箱隔离机制是一项非常实用的Exchange Server功能,能够有效的保证规避用户数据的损坏或者软件BUG对服务器的影响,保证了邮件系统的正常运行。但在实际工作当中遇到这样的情况,也能迅速的响应并解决问题。