客户公司Exchange Server 2010 邮箱数据库数据损坏,所幸以前使用DPM进行过数据库备份,临时创建一个空库以满足大家发往邮件的需要。两天后,原DPM中的数据库恢复成功,那么新建的数据库就需要和还原的数据库进行合并,操作步骤如下:
1.DPM中还原数据库到一个文件夹中,这个操作很简单,大致如下图所示:
根据提示将数据库还原到指定文件夹,然后复制到Exchange的MBX服务器上,例如,复制到e:\olddb下。
2. EMS上新建一个数据库,名称可以自拟,然后卸载此数据库,再对数据库属性--维护--“还原时可以覆盖此数据库(T)"勾上。
3. 使用eseutil /mh命令进行验证DPM还原过来的数据库文件的状态,如下所示:
c:\program file\exchsrvr\bin>eseutil /mh "E:\olddb\userdb-01.edb
必须确保,状态是cleanshutdown。如果不是,则需要对此数据库文件进行修复,如下所示:
c:\program file\exchsrvr\bin>eseutil /p "E:\olddb\userdb-01.edb"
此时,可能会弹出,强制关闭数据库的提示,点击,是即可。
然后,再次查看数据库文件的状态。应该就是cleanshutdown。
4. 将DPM还原过来的数据库文件名改为刚新建的数据库文件的名称,然后mount。如果不成功,则再修复,必须保证是cleanshutdown状态。
导出所有用户邮箱至pst文件:
具体命令如下:
$i=ForEach-Object{Get-Mailbox -Database uec-users01}
$Path=New-Item -Path "\\ex-bj-cashub-02\D$\testpst\" -Name $i.alias -ItemType directory -Force
$i | ForEach-Object {New-MailboxExportRequest -Mailbox $_ -FilePath "$Path\$($_.Alias).pst"}
如果是导出单个用户就很简单:New-MailboxExportRequest -Mailbox -filepath
查看导出请求: Get-MailboxExportRequest
如下图所示:
PST文件导入到用户邮箱:
本示例导入共享文件夹上的所有 .pst 文件。在相应用户的别名后命名每个 .pst 文件名。命令为所有 .pst 文件创建导入请求并将数据导入到匹配的邮箱。
[PS] C:\>Dir \\ex-bj-cashub-02\d$\testpst\*.pst | %{ New-MailboxImportRequest -Mailbox $_.BaseName -FilePath $_.FullName }
查看导入状态: [PS] C:\>Get-MailboxImportRequest
删除导入请求:Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest
删除导出请求:Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
注意:
1. 对现有邮箱进行备份
2. 所有邮件恢复成功之后,只在存在收件箱里,下次再恢复的时侯,不会再恢复,避免重复。 而且是合并,不是覆盖。
利用PST文件的导出、导入是可以的,但是效率不高,可以直接创建一个恢复数据库,然后直接合并,如下面所述:
1. 创建一个恢复数据库:
New-MailboxDatabase -Recovery -Name "RDBUSERDB01" -Server mail -EdbFilePath "d:\DBOLD\userdb-01.edb" �CLogFolderPath "d:\DBOLD\USEDB01log"
2. 必须确保,状态是cleanshutdown。如果不是,则需要对此数据库文件进行修复, /p 直接略过日志文件如下所示:
c:\program file\exchsrvr\bin>eseutil /p "d:\olddb\userdb-01.edb"
如果报错,可以多尝试两次,这个250GB的文件,大约1个半小时左右。
也可以使用 /r进行软修复 将日志文件提交到数据文件
eseutil /r e02 /l d:\olddb\userdb-01log /d d:\olddb\userdb-01。这条命令是将viplong中的日志commit到vipdb中的数据库文件。
打开恢复数据库日志文件夹,可以看到日志文件都以E02开头,如果不是以E02开头的,则需要做相应改动。
3. 使用mount-database rdbvip挂载恢复数据库,也可以在EMC控制台中对rdbvip进行挂载。
4. 挂载恢复数据库之后,在Exchange服务器的EMS中运行restore-mailbox �CIdentity user1 �CRecoveryDatabase rdpuserdb01。这条命令的作用是将恢复数据库中的user1邮箱内容和当前的user1邮箱进行合并。
如果是合并所有用户的邮件,则使用命令:
Get-Mailbox -Database userdb-01 | Restore-Mailbox -RecoveryDatabase rdbuserdb-01
最后,卸载并删除恢复数据库:
dismount-database �Cidentity RDB 或手工卸载
remove-mailboxdatabase �Cidentity RDB 或手工操作