案例场景:

公司有一个Exchange Server(08Server1), 出现了故障,计算机无法启动,在服务器中有一个数据DB_HR.edb,  使用WinPE吧此数据文件拷贝出来。然后重新在服务器(08Server2)上安装好了Exchange Server 

需求:如何把DB_HR.edb挂载到新的Exchange Server上继续提供服务器,而且原先用户的所有邮件能够继续被访问,确保所有的邮件都不能丢失。

 

 一 .Exchange Server 2007的操作方法  

1、重新创建存储组SG_HR,  在此存储组上新建数据库DB_HR.edb.

New-StorageGroup -Name SG_HR -Server 08Server2  -LogFolderPath:"D:\Program Files\Microsoft\Exchange Server\

                SG_ HR\"  -SystemFolderPath:"D:\Program Files\Microsoft\Exchange Server\SG_HR" (创建存储组)

New-MailboxDatabase -StorageGroup 08Server2\SG_HR -Name DB_HR

 

2、进入刚才所创建数据库文件夹中,删除所有的日志文件,并且拷贝从Windows PE中取出来的文件覆盖当前的EDB文件,并且保证此数据库的属性中选中“还原是可以覆盖此数据库”

Set-MailboxDatabase DB_HR -AllowFileRestore:$true

 

3、装入此数据库

Mount-Database DB_HR

 

4、此时,Exchange Server的用户还不能访问自己的邮箱,原因在于:所有的用户在识别Mailbox角色的还是识别08Server1的,现在要把所有的用户的Mailbox的属性改成:08Server2

Get-Mailbox -Database 08Server1\DB_HR  |where {$_.ObjectClass -NotMatch '(SystemAttendantMailbox|ExOleDbSystemMailbox)'}| Move-Mailbox -ConfigurationOnly -TargetDatabase 08Server2\DB_HR

或者Get-Mailbox -database 08Server1\DB_HR |  Move-MailBox -targetDatabase 08Server2\db_hr  -configurationonly:$true

 

5、此时,客户端访问,以前的邮件有可以看到了。恢复完毕!

 

注意点:

1)数据库可移植性只能用于邮箱数据库,不能用于公用文件夹数据库。

2)如果存在没有邮件或尚未打开的新邮箱,则此命令不会移动该邮箱,因为它尚未存在于存储中。

 

二、 Exchange Serve 2010

1.、由于在Exchange Server 2010上没有Storage Group的概念,所以只需要在08Server2上创建数据库。

New-MailboxDatabase -Name DB_HR -Server 08Server2 -EdbFilePath:"D:\Program Files\Microsoft\Exchange Server\ HR\DB_HR.EDB"   -SystemFolderPath:"D:\Program Files\Microsoft\Exchange Server\HR"

 

2、进入刚才所创建数据库文件夹中,删除所有的日志文件,并且拷贝从Windows PE中取出来的文件覆盖当前的EDB文件,并且保证此数据库的属性中选中“还原是可以覆盖此数据库”

Set-MailboxDatabase DB_HR -AllowFileRestore:$true

 

3、装入此数据库

Mount-Database DB_HR

 

4、此时,Exchange Server的用户还不能访问自己的邮箱,原因在于:所有的用户在识别Mailbox角色的还是识别08Server1的,现在要把所有的用户的Mailbox的属性改成:08Server2

 Get-Mailbox -Database 08Server1 |where {$_.ObjectClass -NotMatch '(SystemAttendantMailbox|ExOleDbSystemMailbox)'}| Set-Mailbox -Database 08Server2

 

5、此时,客户端访问,以前的邮件有可以看到了。恢复完毕!