关注嘉为科技,获取运维新知数据库
Exchange后端数据库故障,通常都会是比较严重的紧急故障,由于这会直接影响到大面积用户的正常使用,并且涉及到用户数据。一旦遇到这种级别的故障,管理员每每都是在很是紧张、压力很是大的状态下进行恢复操做,须要在高压状态下迅速作出决策,下一步应该如何作。本文将总结数据库紧急故障下的恢复思路,但愿对遇到这种紧急状况的邮件系统管理员有所帮助。后端
注:如下案例仅针对Exchange 2010版本。运维
通常邮件数据库的紧急故障,首先判断数据库状态是否正常,是否能够挂载使用;数据库没法挂载使用则能够经过命令判断是否须要进行数据库修复;使用以下图的命令,若是数据库状态并不是Clean Shutdown则须要进行修复操做。ui
若是数据库须要进行修复,则管理员须要判断,是等待数据库彻底修复好以后再进行恢复邮件服务?仍是优先恢复用户邮箱使用,邮箱数据则等待数据库修复以后再进行恢复?spa
由于有的时候数据库修复时间较长,用户没法等待这么久的时间。笔者就曾遇到过修复600GB数据库的案例,首先软修复耗费3个多小时,硬修复耗费1个多小时的状况。3d
如须要紧急优先恢复用户邮箱使用,后续再恢复数据的场景,则可使用如下两种方案。两种方案基本大同小异,你们能够参考使用。rest
一、剪切目录中全部原始数据库的文件至其余磁盘,并额外备份一份,以防修复过程当中出现意外。server
二、 挂上空库:blog
a) 加载数据库DB;get
b) 点击"全是"建立一个空数据库;
c) 如今数据库上的用户应该能够访问邮箱并收发邮件了,只是原始的数据会找不到。
三、用命令exeutil /p修复原始数据库文件(*.edb),以下图示例:
四、确认数据库状态为"Clean Shutdown";
五、建立恢复数据库RDB;
New-MailboxDatabase -Recovery -Name name -Server servername -EdbFilePath "path" -LogFolderPath "path"
六、将修好的EDB文件复制到上面建立的RDB的路径下,并重命名为RDB指定的edb文件名称;
七、加载RDB;
八、用如下命令合并DB与RDB的数据;
Get-Mailbox -Database 原DB名 | Restore-Mailbox -RecoveryDatabase RDB
注:也能够在第6步dismount原有的数据库,将空库的文件剪切到RDB的路径下,将修复的数据库挂到原始数据库路径下,在从新mount原始数据库的RDB以前,修改数据库属性,勾上“This database can be overwritten by a restore”。
一、建立新的数据库,使用下面的命令将原始数据库中的邮箱所有设置到新的数据库上;
Get-Mailbox -Database 旧数据库名 | Set-Mailbox -Database 新数据库名
二、同第一种方法对故障数据库进行修复,待数据库修复完毕,咱们能够:
新建RDB,将修复好的数据库拷入合并数据到新建的数据库,具体步骤能够参照第一部分。
或者将邮箱从临时数据库切回当前数据库。
Get-Mailbox -Database 新数据库名|Set-Mailbox -Database 旧数据库名
运行命令,将数据进行合并。
$mailboxes = Get-Mailbox -Database 旧数据库名
$mailboxes | %{New-MailboxRestoreRequest –SourceStoreMailbox $_.ExchangeGuid –SourceDatabase 新数据库名 –TargetMailbox $_}
注意区分旧数据库名和新数据库名。
以上就是针对邮箱数据库的紧急故障的恢复思路。
总的来讲,出现重大紧急故障,不要慌不要乱,保持清晰的思路,作出最佳的判断。可是不论怎样,作好平常运维的管理,防范故障于未然才是最好的办法。