Exchange Server 2010数据库崩溃还原过程

客户公司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" –LogFolderPath "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 –Identity user1 –RecoveryDatabase rdpuserdb01。这条命令的作用是将恢复数据库中的user1邮箱内容和当前的user1邮箱进行合并。

如果是合并所有用户的邮件,则使用命令:

Get-Mailbox -Database userdb-01 | Restore-Mailbox -RecoveryDatabase rdbuserdb-01
技术分享
技术分享
 
最后,卸载并删除恢复数据库:
dismount-database –identity RDB  或手工卸载
remove-mailboxdatabase –identity RDB 或手工操作
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。