/ 中存储网

故障后,我们如何使用Exchange Server 2010的恢复数据库(RDB)

2014-08-28 22:57:26 来源:中存储网

最近很多朋友问起我,Microsoft ExchangeServer2010中的恢复数据库(Recovery Database,简写RDB)到底有什么用?应该怎么用?甚至有些朋友相关资料看了不少,但对它的使用和管理不甚了解。确实,对于RDB,连微软的官方文档也有些语焉不详,关键步骤有所缺失,影响了大家对它的的理解和学习,因此笔者花了一点时间,撰写本文,着重介绍RDB的管理和实践,以期大家能够从原理和应用上去更好的把握和理解它。

恢复数据库 (Recovery DataBase)

恢复数据库(RDB)是Exchange Server 2010中一种特殊的邮箱数据库,通过它您可以装入还原的邮箱数据库,并可以在恢复操作中从还原的数据库提取数据。提取后,可将数据导出到一个文件夹或者合并到一个现有邮箱中。并且整个邮件恢复过程中,不会干扰用户对当前数据的访问。

Microsoft ExchangeServer2010 支持将数据直接还原到恢复数据库。通过将已恢复的数据作为恢复数据库装入,管理员可以还原单个邮箱或邮箱中的单个项目。

Exchange Server 2010中的恢复数据库(RDB)非常类似Exchange Server 2007中的恢复存储组(RSG)。使用过Exchange Server 2007中的RSG的朋友,对Exchange Server 2010中的RDB会比较容易上手,但在2007版本中可以通过图形界面管理控制台(EMC)完成RSG的创建和管理,而在Exchange Server2010中,几乎所有对RDB的操作都需要在EMS下进行,这无形中也增加了RDB理解和学习的难度。

恢复数据库与标准邮箱数据库的不同

首先让我们来看看RDB与标准邮箱数据库在以下几个方面不同:

● RDB 是通过 Exchange 命令行管理程序进行创建的。

● 不可以从 RDB 发送邮件,或将邮件发送给 RDB。将阻止所有客户端协议(包括 SMTP、POP3 和 IMAP4)对 RDB 的访问。此设计可防止使用 RDB 将邮件插入邮件系统或将邮件从邮件系统中删除。

● 将阻止使用 Microsoft Office Outlook 或 Outlook Web App 的客户端 MAPI 访问。RDB 支持 MAPI 访问,但是仅受恢复工具和应用程序的支持。使用 MAPI 登录 RDB 中的邮箱时,必须指定邮箱 GUID 和数据库 GUID。

● RDB 中的邮箱无法连接到用户帐户。要允许用户访问 RDB 中的邮箱的数据,则必须将邮箱合并到现有邮箱或导出到文件夹中。

● 不能使用系统管理策略和邮箱管理策略。此设计可以防止恢复过程中系统删除 RDB 中的项目。

● 不能为 RDB 执行联机维护。

● 不能为 RDB 启用循环日志记录。

● RDB 仅用于恢复邮箱数据库数据。不能使用 RDB 恢复公用文件夹数据。

● 任何时候只能在一个邮箱服务器中装入一个 RDB。RDB 的使用量不受每个邮箱服务器最多可以有 100 个数据库的限制。

● 不能创建 RDB 的邮箱数据库副本。

● RDB 可用作还原操作的目标,但不能用于备份操作。

● 作为 RDB 装入的已恢复的数据库不会以任何方式绑定到原始邮箱。

恢复数据库的应用场景

RDB只能用于 Exchange2010 邮箱数据库。不支持来自以前版本的 Exchange 的邮箱数据库。此外,用于数据合并和提取的目标邮箱必须与 RDB 中装入的数据库位于同一个 ActiveDirectory 林。

在一些情况下,可将RDB用于恢复数据,例如:

● 同一服务器拨号音恢复:从备份还原原始数据库后,可以从 RDB 进行恢复,作为拨号音恢复操作的一部分。

● 备用服务器拨号音恢复:可以使用备用服务器来驻留拨号音数据库,然后在将原始数据库从备份恢复后,从 RDB 恢复数据。

● 邮箱恢复:当超过已删除邮箱的保留期时,可以从备份恢复单个邮箱。然后,从已还原的邮箱中提取数据并将其复制到目标文件夹或与其他邮箱进行合并。

● 特定项目恢复:您可以从已从邮箱中删除或清除的备份数据进行还原。

RDB实战演练

为了让大家更加直接的看到RDB的应用过程,笔者模拟了一个实验环境,某收件人jack误删了某些邮件,现致电管理员,要求恢复这些邮件,管理员需要响应Jack的要求,帮助其恢复所需邮件,并且此过程中,其他收件人的邮箱,以及Jack自己的邮箱必须仍然能够使用。

好的,场景了解了,以下是整个实验过程。

 

1、Jack误删前的邮箱,可以看到在收件箱里,有三封邮件。主题分别为“111”、“222”和“333”,我们用于测试。

 

图1 误删前Jack的邮箱

2、备份Jack邮箱所在的邮箱数据库

笔者在实验中,使用Windows Server Backup来备份Exchange Server 2010,所以备份前,需要预先开启Exchange 扩展备份服务,不然备份会报警告。

 

图2 启用Exchange扩展备份服务

注:如果备份启用了DAG的数据库,需要修改注册表,详细信息,请参阅广州嘉为另一位技术专家贺勇的文章,地址如下:http://www.canway.net/canway_article_details.asp?id=197。

开启服务后,打开Windows Server Backup,因为是演示,所以笔者选择的是一次性备份,备份目标为Jack邮箱所在的数据库文件夹,在“高级”中,修改备份类型为“VSS完整备份”,不然日志不会截断。备份成功,会出现图3 所示。

 

图3 备份数据库成功

3、在Jack邮箱中,彻底删除主题为“111”的邮件

 

图4彻底删除测试邮件“111”

此时,主题为“111”的邮件仅存在于备份中。接下来开始邮件恢复过程。

4、创建恢复数据库RDB1

首先,笔者在C盘下创建了一个名为“RDB1”的空文件夹,将来用以存放恢复数据库RDB1。

注:此文件夹的名字与恢复数据库的名字可以不一样。

然后,进入EMS,输入以下命令,

New-MailboxDatabase–Recovery –Name RDB1 –Server SRV1 –EdbFilePath“c:rdb1rdb1.edb”–LogFolderPath“c:rdb1”

以上命令,创建一个名为RDB1的恢复数据库,数据库和日志文件都存储位置在c:rdb1文件夹下。

 

图5 创建恢复数据库RDB1

5、查看RDB1的属性

在EMC控制台界面,查看恢复数据库RDB1的属性中,发现已经勾选“还原时可以覆盖此数据库”选项。

注意:此选项在RDB初次创建时默认选中,但装载再卸载一次数据库后,会自动清除。

 

图6  RDB1的属性

6、使用Windows Server Backup恢复备份到恢复数据库RDB1

恢复的过程比较简单,仅选几个重要步骤贴图,

 

图7 选择Jack所在的邮箱数据库

图8选择备份恢复到恢复数据库的文件夹下

然后点击下一步,再点击恢复即可。

最后,查看c:rdb1文件夹下,可以看到恢复回来的数据库和日志文件。

 

图9 通过备份恢复的数据库和日志文件

7、进行日志重播

因为Windows Server Backup的备份是基于VSS的,所以恢复回来的日志并不会自动重播,因此需要手工重播。重播的过程很简单,只需要进入恢复数据库的目录下,执行以下命令即可:eseutil /r e00 /I /d “c:rdb1”,执行结果如下图

 

图10 手工进行日志重播

注意:手工进行日志重播,必须在EMS下,进入恢复数据库所在的文件夹下执行。

日志重播后,使用eseutil /mh命令可以查看到数据库的状态为“Clean Shutdown”

 

图11 日志重播后的数据库状态为“Clean Shutdown”

8,将日志重播后的数据库文件改名为恢复数据库的名字。

 

图12 重命名数据库为rdb1.edb

进入c:rdb1文件夹,将日志重播后.edb的数据库文件重命名为rdb1.edb(即第四步中创建RDB1时命名的),并将其他所有文件一并删除。

然后在EMC中,将RDB1装入。

9、在恢复误删邮件之前,可以测试当前邮箱用户是否受影响

进入Jack邮箱,给自己发送一封邮件,主题为“444”,如下图所示

 

图13 恢复邮件前的邮箱状态

10、从恢复数据库中恢复Jack误删邮件

在EMS下,执行以下命令,恢复Jack误删的邮件:

Restore-Mailbox –Identity jack –RecoveryDatabase rdb1,在随后的提示中,输入“A”或“Y”,再回车。

 

图14 恢复Jack的邮件

检验邮件是否恢复,结果如下

 

图15 验证恢复后的邮件

从图15中,已经看到,被Jack删掉的主题为“111”的邮件已经恢复回来了,而且整个恢复过程中,Jack仍可正常使用邮件系统。

以上操作,达到了我们的预期目的,但此举会将自从备份后,Jack删除的所有邮件都恢复回来,若我们仅希望恢复其中的某一封邮件,则我们必须至少知道该邮件的主题或正文中包含谋些关键字,例如,使用以下命令:Restore-Mailbox –Identity jack –RecoveryDatabase rdb1–SubjectKeywords“111”,此命令将仅恢复主题中包含“111”的邮件,不包含的将不会恢复。

 

图16 恢复主题中包含特定字符的邮件

恢复数据库小结

通过一个简单的小实验,笔者将Microsoft ExchangeServer2010中恢复数据库的简单应用做了一个简明的实战演练,熟悉恢复数据库后,大家会发现其实它很好用,也操作简单,但功能强大。

通过本文,期望给大家学习Exchange Server 2010的过程中,提供些许的指引和方法,提高学习效率,除了恢复单邮件、单邮箱外,恢复数据库还可用于拨号音还原法,适合在紧急的情况下,先恢复业务服务,再恢复邮箱数据的场景,其与Exchange Server 2007中的拨号音还原法类似,区别也是仅能在EMS下操作,因此要求大家加强对PowerShell的学习。