千家信息网

Exchange 2013数据库可移植性恢复用户数据库(二)

发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,案例讲述:我目前环境中有一套Exchagne01和Exchange02服务器,全部是全角色安装的exchange2013CU8的系统。这两台服务器同属一个DAG组,由于特殊原因DAG的故障转移群集出现
千家信息网最后更新 2024年11月12日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之后恢复邮箱:

  1. 确认数据库是否处于clean shut down 的模式 (这个数据叫A)

eseutil /mh "database file name"

· 确保数据库文件处于clean shutdown的状态

  1. 如果数据库文件处于dirty shutdown状态,我们可与运行如下命令行去修复数据库文件:

Eseutil /r E01

注意:E01这个check point文件要和你日志文件夹里的check point文件的名字一致

  1. 如果soft recovery 失败,需要运行如下命令行进行硬修复,但是这样会存在部分数据丢失的情况:

eseutil /p "database file name"

  1. 此时新建恢复用的数据库(B),确保数据库可以正常mount。然后设置如下参数:

  1. 此时卸载新的数据库,把原来的数据文件拷贝到当前数据库文件夹所在的路径,然后将B名字改成C,将A的名字改成B。这里是指EDB文件的名字。
  2. 针对还在旧的down掉的数控库里的邮箱,运行如下命令行恢复到新的数据库上:

Get-Mailbox "mailbox name" |Set-Mailbox -Database "B"

PS:其实之前如果没有做过别的操作的话,正常情况下,我们只需运行如下命令行针对全DB恢复就可以了:

Get-Mailbox -Database "A" |Set-Mailbox -Database "B"

  1. 如果用户邮箱已经先运行如下命令行收集断开的邮箱的信息:

Get-MailboxStatistics -Database "B" | Where { $_.DisconnectReason -ne $null } | fl DisplayName,MailboxGuid,Database,DisconnectReason,identity

  1. 运行如下命令行连接到对应的AD账户:

Connect-Mailbox -Identity "上面命令行里导出的Identity" -Database B -User "AD 用户名" -Alias "Alias"

  1. 全部操作完需要重启IS 和 IIS服务。
0