案例场景:
公司有一个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 FilesMicrosoftExchange Server
SG_ HR" -SystemFolderPath:"D:Program FilesMicrosoftExchange ServerSG_HR" (创建存储组)
New-MailboxDatabase -StorageGroup 08Server2SG_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 08Server1DB_HR |where {$_.ObjectClass -NotMatch '(SystemAttendantMailbox|ExOleDbSystemMailbox)'}| Move-Mailbox -ConfigurationOnly -TargetDatabase 08Server2DB_HR
或者
Get-Mailbox -database 08Server1DB_HR | Move-MailBox -targetDatabase 08Server2db_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 FilesMicrosoftExchange Server HRDB_HR.EDB" -SystemFolderPath:"D:Program FilesMicrosoftExchange ServerHR"
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.此时,客户端访问,以前的邮件有可以看到了。恢复完毕!