场景:公司有一台ExchangeServer2010的邮件服务器Exsrv01.contoso.com。某一天突发的

故障,宕机之后便无法重新开启,整个公司的邮件系统瘫痪。幸运的是,前一天晚上windows

serverbackup将这一台server上的邮箱数据库MailBoxDB01进行了完整的备份。靠着这一个备

份能够让邮件系统重新恢复使用吗?

解决思路:重新安装一台ExchangeServer2010的服务器,然后将之前备份的邮箱数据库文件

挂载到新的服务器上,理论上便能够恢复使用。但是如何做到呢?

恢复过程:

1.重新安装一台ExchangeServer2010,名称为Exsrv02.contoso.com.安装完成之后,打开

Exsrv02的EMC管理控制台,可能会出现试图连接Exsrv01.contoso.com服务器而导致的

Kerberos验证错误,控制初始化失败。解决这个错误,参考以下微软的链接:
http://social.technet.microsoft.com/Forums/windows/zh-CN/067afc2c-434a-44ab-905a-5c48251546a2/exchange-2010-emc

2.EMC控制台开启以后,由于读取活动目录的相关信息,是一定能够看到Exsrv01这一台服务器

的一些信息的,比如承担的角色、邮箱数据库等等。ExchangeServer2010邮箱数据库的移植

,网络上很多文章说,需要在ExchangePowershell的命令行界面下才能完成,我以下的命令

都是通过Powershell的命令行来完成的。至于到底能够在图形界面完成,还没来得急去验证。

在新的服务器Exsrv02上,通过如下命令行来新建一个邮箱数据库MailBoxDB02(此数据库被建

立之后,是处于未挂载状态的):
New-MailboxDatabase-NameMailBoxDB02-ServerExsrv02-EdbFilePathD:\mailbox

\mailboxdb02\mailboxdb02.edb-LogFolderPathD:\mailbox\mailboxdb02

3.通过如下的命令,来设定此邮箱数据库在还原时可被覆盖:
Set-MailboxDatabaseMailBoxDB02-AllowFileRestore:$true

4.运行windowsserverbackup,将Exsrv01的MailBoxDB01的备份文件(edb/log等一票文件

),恢复至D:\mailbox\mailboxdb02这个目录下,此时这个目录里面还是空的。

5.恢复完成之后,将MailBoxDB01.edb这个数据库文件的名称,修改成MailBoxDB02.edb.

6.名称修改之后,通过如下的命令来挂载MailBoxDB02这个邮箱数据库:
Mount-DatabaseMailBoxDB02

7.新的数据库成功挂载之后,所有用户的邮箱以及邮箱里面的邮件都已经成功地完成移植了。

但是仔细想想,如果下面什么都不做改变,用户在使用OWA或者outlook访问邮件服务器的时候

,是不是依然会去之前的MailBoxDB101上去找自己的邮件呢?答案是肯定的。所以还要使用下

面的命令来更改用户活动目录中的配置信息,去新的MailBoxDB02上找自己的邮件:
Get-Mailbox-DatabaseMailBoxDB01|where{$_.ObjectClass-NotMatch

'(SystemAttendantMailbox|ExOleDbSystemMailbox)'}|Set-Mailbox-DatabaseMailBoxDB02

基本上以上的七个步骤完成之后,邮件系统便又能重新恢复使用了。网络上一些文章说,过程

当中还要查看数据库是否处于cleanshutdown状态,涉及到软恢复,数据库日志重播等。但

是我在恢复的过程当中并没有涉及到这些,可能是比较幸运吧。但是还是想感谢以下两篇文章

的作者带给我的巨大的帮助和灵感:
http://blog.sina.com.cn/s/blog_6ecd398f0100mrvb.html

http://www.5dmail.net/html/2011-9-29/2011929153155.htm

写下自己的心得,与诸位一起分享!