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

简介:

客户公司Exchange Server 2010 邮箱数据库数据损坏,所幸以前使用DPM进行过数据库备份,临时创建一个空库以满足大家发往邮件的需要。两天后,原DPM中的数据库恢复成功,那么新建的数据库就需要和还原的数据库进行合并,操作步骤如下:

1.DPM中还原数据库到一个文件夹中,这个操作很简单,大致如下图所示:

image

根据提示将数据库还原到指定文件夹,然后复制到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文件:

image

具体命令如下:

$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 image

 

查看导出请求: Get-MailboxExportRequest

如下图所示:

image

 

PST文件导入到用户邮箱:

本示例导入共享文件夹上的所有 .pst 文件。在相应用户的别名后命名每个 .pst 文件名。命令为所有 .pst 文件创建导入请求并将数据导入到匹配的邮箱。

[PS] C:\>Dir \\ex-bj-cashub-02\d$\testpst\*.pst | %{ New-MailboxImportRequest -Mailbox $_.BaseName -FilePath $_.FullName }

image

查看导入状态:  [PS] C:\>Get-MailboxImportRequest

 

删除导入请求:Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest

删除导出请求:Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

image

 

注意:

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"

image

image

如果报错,可以多尝试两次,这个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 或手工操作

 




 本文转自 dufei 51CTO博客,原文链接:http://blog.51cto.com/dufei/1641241,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
14天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
96 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
77 0
|
14天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
82 6
|
14天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
1月前
|
缓存 监控 安全
宝塔数据库崩溃解决方案详解
宝塔数据库崩溃解决方案详解
|
1月前
|
SQL 存储 数据库
数据安全无忧,SQL Server 2014数据库定时备份解密
数据安全无忧,SQL Server 2014数据库定时备份解密
|
2月前
|
SQL 存储 数据库
【数据库SQL server】自学终极笔记
【数据库SQL server】自学终极笔记
95 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据更新
【数据库SQL server】关系数据库标准语言SQL之数据更新
33 0

热门文章

最新文章