码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-05-02 06:21:40      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:数据库备份   blank   数据库数据   文件夹   target   

客户公司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 或手工操作
 

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

标签:数据库备份   blank   数据库数据   文件夹   target   

原文地址:http://dufei.blog.51cto.com/382644/1641241

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!