Exchange 2013数据库可移植性恢复用户数据库(二)
案例讲述:
我目前环境中有一套Exchagne01和Exchange02服务器,全部是全角色安装的exchange2013CU8的系统。
这两台服务器同属一个DAG组,由于特殊原因DAG的故障转移群集出现问题,无法正常恢复,导致用户邮箱不能访问。
目前发现Exchange01上的数据库被动副本数据复制不正常,Exchagne02上的数据库主动副本数据内容正常。
此过程中服务器DAG组无法恢复正常,用户没法访问邮箱。多次尝试也不能将Exchange01或者Exchange02任意一台从DAG中删除。
为了尽快恢复用户访问,我们在环境中全新部署了Exchange04服务器,该服务器正常运行,可以新建用户和数据库副本。
随后我们将Exchange02服务器上正常的数据库副本拷贝到了Exchange04的默认数据库副本目录下。
如何才能使这个正常的数据库副本挂载到Exchange04上,使用户可以正常访问邮箱
解决方案如下:
使用数据库可移植性移动邮箱数据库
https://technet.microsoft.com/zh-cn/library/dd876926(v=exchg.150).aspx
数据库可移植性是使 Microsoft Exchange Server 2013 邮箱数据库移动到或装入同一组织中的任何其他邮箱服务器的功能,此组织运行具有相同数据数据库架构版本的数据库的 Exchange 2013。以前版本的 Exchange 的邮箱数据库无法移动到运行 Exchange 2013 的邮箱服务器。通过使用数据库可移植性,可以免除恢复过程中容易导致错误的多个手动步骤,从而提高可靠性。此外,数据库可移植性可减少各种故障情况的总恢复时间。
当使用数据库可移植性恢复邮箱数据库时,操作系统版本、源上的 Exchange Server 版本以及目标 Exchange 服务器必须相同。 例如,如果 Exchange 2013 邮箱数据库之前已装入运行 Windows Server 2012 的服务器,那么只有在将数据库迁移到同样运行 Windows Server 2012 和 Exchange 2013 的服务器上时,数据库可移植性才能正常使用。
数据库可移植性
https://technet.microsoft.com/zh-cn/library/dd876873(v=exchg.150).aspx
关于将已经不正常的数据库进行修复,即保证Exchange02上的数据库可以被正常移植到Exchange04上。
请一定确保数据库能够正常mount之后恢复邮箱:
- 确认数据库是否处于clean shut down 的模式 (这个数据叫A)
eseutil /mh "database file name"
· 确保数据库文件处于clean shutdown的状态
- 如果数据库文件处于dirty shutdown状态,我们可与运行如下命令行去修复数据库文件:
Eseutil /r E01
注意:E01这个check point文件要和你日志文件夹里的check point文件的名字一致
- 如果soft recovery 失败,需要运行如下命令行进行硬修复,但是这样会存在部分数据丢失的情况:
eseutil /p "database file name"
- 此时新建恢复用的数据库(B),确保数据库可以正常mount。然后设置如下参数:
- 此时卸载新的数据库,把原来的数据文件拷贝到当前数据库文件夹所在的路径,然后将B名字改成C,将A的名字改成B。这里是指EDB文件的名字。
- 针对还在旧的down掉的数控库里的邮箱,运行如下命令行恢复到新的数据库上:
Get-Mailbox "mailbox name" |Set-Mailbox -Database "B"
PS:其实之前如果没有做过别的操作的话,正常情况下,我们只需运行如下命令行针对全DB恢复就可以了:
Get-Mailbox -Database "A" |Set-Mailbox -Database "B"
- 如果用户邮箱已经先运行如下命令行收集断开的邮箱的信息:
Get-MailboxStatistics -Database "B" | Where { $_.DisconnectReason -ne $null } | fl DisplayName,MailboxGuid,Database,DisconnectReason,identity
- 运行如下命令行连接到对应的AD账户:
Connect-Mailbox -Identity "上面命令行里导出的Identity" -Database B -User "AD 用户名" -Alias "Alias"
- 全部操作完需要重启IS 和 IIS服务。