多域控制器环境下Active Directory灾难恢复
邮件服务器灾难恢复体系方案一灾难情况:主域控制器由于硬件故障突然损坏,使额外域控制器接替它的工作,使Active Directory 正常运行,并在硬件修理好之后,恢复主域控制器,恢复exchange
邮件服务器灾难恢复体系
方案一
灾难情况:
主域控制器由于硬件故障突然损坏,使额外域控制器接替它的工作,使Active Directory 正常运行,并在硬件修理好之后,恢复主域控制器,恢复exchange 数据库。
备份情况:
1:系统状态备份 2:exchange 数据(MICROSOFT INFORMATION STORE) 总体思路:
1. 恢复域控制器 (a:清除原DC 信息 b: 额外域控制器上通过ntdsutil.exe 工具夺取五种FMSOc:设置额外控制为GC 全局编录 d:重新安装损坏的域控制器)
2. 恢复exchange (a:安装exchange b:恢复exchange 数据库)
详细步骤:
1.恢复域控制器
a:清除原有Domain Controller的信息
因为这台服务器已经不再可用,我们必须重新安装,所以需要将原来的服务器的数据从ACTIVE DIRECTORY 中删除。
完成这个目标,需要使用ntdsutil 这个工具。(粗体为输入内容,因测试时与公司服务器域名及机器名不一同,请按提示输入)
c:>ntdsutil
ntdsutil: metadata cleanup
metadata cleanup: select operation target
select operation target: connections
server connections: connect to domain domain.com
select operation target: list sites
Found 1 site(s)
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com select operation target: select site 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com No current domain
No current server
No current Naming Context
select operation target: list domains in site
Found 1 domain(s)
0 - DC=domain,DC=com
select operation target: select domain 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com Domain - DC=domain,DC=com
No current server
No current Naming Context
select operation target: list servers for domain in site
Found 2 server(s)
0 - CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,
,DC=domain,DC=com
1 - CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=domain,DC=com
select operation target: select server 0
select operation target: quit
metadata cleanup: remove selected server
出现对话框,询问你是否确定删除该DC 。按“确定”删除DC1主控服务器。
metadata cleanup: quit
ntdsutil: quit
从Active Directory users and computers中删除Domain controllers中DC1服务器对象,可以使用ADSI EDIT工具。ADSI EDIT是Windows 2003 support tools中的工具,你需要安装Windows 2003 support tool,安装程序在windows 2003光盘中的supporttools目录下。在DC2上打开ADSI EDIT 工具,展开Domain NC[DC2.domain.com],展开OU=Domain controllers,右击CN=DC1,然后选择Delete ,把DC1服务器对象删除。
在Active Directory Sites and Service中删除DC1服务器对象,可以打开Administrative tools中的Active Directory Sites and Service,展开Sites ,展开Default-First-Site-Name ,展开Servers ,右击DC1,选择Delete ,单击“确认”按钮确认。
b:在额外域控制器上通过ntdsutil.exe 工具夺取五种FMSO (粗斜体为输入内容)
c:>ntdsutil
ntdsutil: roles
fsmo maintenance: select operation target
select operation target: connections
server connections: connect to domain domain.com
select operation target: list sites
Found 1 site(s)
0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com select operation target: select site 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com No current domain
No current server
No current Naming Context
select operation target: list domains in site
Found 1 domain(s)
0 - DC=domain,DC=com
select operation target: select domain 0
Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com Domain - DC=domain,DC=com
No current server
No current Naming Context
select operation target: list servers for domain in site
Found 1 server(s)
0 - CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=domain,DC=com
select operation target: select server 0
,select operation target: quit
fsmo maintenance: seize domain naming master
出现对话框,按“确定”
fsmo maintenance: seize infrastructure master
出现对话框,按“确定”
fsmo maintenance: seize PDC
出现对话框,按“确定”
fsmo maintenance: seize RID master
出现对话框,按“确定”
fsmo maintenance: seize schema master
出现对话框,按“确定”
fsmo maintenance: quit
ntdsutil: quit
(注:Seize 用于原FSMO 不在线时操作,如果原FSMO 在线,则需要使用Transfer 操作) c: 设置额外控制(DC2.domain.com&, , amp;, , lt;, , /SPAN>)为GC (全局编录)
打开Administrative Tools 中的Active Directory Sites and Services ,展开Sites ,展开Default-First-Site-Name ,展开Servers ,展开DC2.domain.com (额外控制器),右击NTDS Settings选择Properties ,然后在“Global Catalog”前面打勾,单击“确定”按钮,然后重新启动服务器。 至此,AD 已恢复完成,把DNS 改为新域控IP ,工作站测试域账号是否正常。
d: 重新安装并恢复损坏的主域控制器
修复DC1.domain.com 之后,在DC1.domain.com 服务器上重新安装Windows 2003 Server。基本上按照原来的服务器配置安装组件,但是先不要安装“证书服务”(安装“证书服务”后,无法进行有关改名和域的操作)。安装好Windows 2003 Server之后,再运行dcpromo 升级为额外的域控制器;如果需要DC1.domain.com 担任五种FMSO 角色,通过ntdsutil 工具进行角色转换,使用Transfer 操作(注意:这时DC2在线,不能用Seize ,只能Transfer )。完成后再安装“证书服务”。
通过Active Directory Sites and Services设置DC1.domain.com 为GC ,而取消DC2.domain.com 的GC 。至此,修复Active Directory部分。
也可以使用同上方法恢复把新装机器作为主域控,更改DNS ,测试域用户是否正常,AD 恢复完成。
2.恢复EXCHANGE
a: 安装Exchange Server
为了适应灾难恢复环境下的安装,Exchange Server以及后面的Exchange Server Service Pack的安装文件都提供了 /disasterrecovery 参数来实现灾难恢复环境下的系统修复。
我们需要将系统恢复到崩溃前的状态,如果安装了SP 和Patch ,新的系统也要安装相同的SP 和Patch 。 安装组件的选择也很重要,必须与崩溃时的系统所安装的组件一致。所以,日常维护中记录软件的安装配置也是一项很重要的工作。
在这个例子中,安装好邮件服务器后,依次安装SP3还有Rollout ,恢复到崩溃之前的软件安装。 B:恢复EXCHANGE 数据
方法一:可以使用NTBAKUP 的备份还原工具,用备份过的EXCHANGE 数据进行还原(MICROSOFT INFORMATION STORE),此方法成功机率低,但已测试成功恢复。
方法二: 修复邮件存储 (此方法,没有测试)
Exchange Server 2003 发生损坏时,信息存储是最容易受到影响的组件之一。实际上Windows 家族的很多设计为永远在线工作的数据库,都使用了Exchange 数据库引擎。信息存储由下列四个数据库文件组成:
Priv1.edb
,Priv1.stm
Pub1.edb
Pub1.stm
Priv1.edb 数据库文件包含简单邮件传输协议 (SMTP) 邮件,其中包括正在传送的邮件和存储在服务器上的邮件。Priv1.stm 数据库文件包含正在传送的邮件和存储的非 SMTP 邮件。Pub1.edb 数据库文件包含用于SMTP 格式信息的公用文件夹存储。Pub1.stm 包含用于非SMTP 格式数据的共用文件夹存储。 我们的邮件服务器是stand alone 的,没有使用站点连接器,也没有安装密钥管理。所以,我们选择了KB313184的恢复流程。
由于我们的数据库是异常退出,所以需要确认数据库的一致性。如果数据库是一致的,则所有日志文件都已提交给信息存储。如果数据库不一致,则数据库可能未损坏。相反,日志文件可能丢失、被损坏或尚未提交到数据库。
我们运行下面的eseutil 命令以检查公用和专用数据库的一致性(为便于阅读,这些命令已折行,粗斜体为输入内容)。
C:Program FilesexchsrvrBIN>eseutil /mh "C:Program Filesexchsrvr
MDBDATApriv1.edb"
C:Program FilesexchsrvrBIN>eseutil /mh "C:Program Filesexchsrvr
MDBDATApub1.edb"
注意:这里假设正在从C 盘上的Program FilesExchSrvrBin文件夹中运行程序,并且.edb 文件位于Program FilesExchSrvrMdbdata文件夹中,如果执行了升级,这些数据库文件可能位于C:ExchsrvrMdbdata文件夹中。如果优化了数据库,则这些文件可能位于另一驱动器上,可根据实际情况自行替换。
要验证.edb 文件是否一致,请检查标有“State”的输出行。为了方便观察可以在前面的命令行后面分别加上“> mypriv.txt”和“> mypub.txt”,生成两个文本文件。或者使用“| more”参数来逐屏输出。
在我们的例子里,服务器上的数据库state 是“Dirty Shutdown”,所以需要对数据库进行软故障恢复,以检查 Mdbdata 文件夹中是否存储了日志文件的副本。
注意:以下步骤并不是按操作顺序排列的,也不是每一步都必须执行的,修复邮件存储,需要根据实际情况选择一步或者几部执行!
(a) 保存有日志文件的存储恢复
执行软故障恢复时,所有未提交的日志文件都将被提交给信息存储数据库。打开数据库和日志文件所驻留的文件夹,然后在命令提示符处键入下面的内容(为便于阅读,这些命令已折行,粗斜体为输入内容): C:Program FilesexchsrvrMDBDATA>"C:Program Filesexchsrvr
BINeseutil.exe" /r E00
单击“是”运行修复。实用工具将显示下面的消息:
Microsoft(R) Exchange Server(TM) Database Utilities
Version 6.5
Copyright (C) Microsoft Corporation 1991-2000. All right reserved.
Initiating RECOVERY mode...
Logfile base name:E00
Log Files:(current directory)
System files:(current directory)
Performing soft recovery...
完成软故障恢复之后,程序将显示下面的消息:
Operation completed successfully in x.xxx seconds.
可再次运行 eseutil /mh 命令。如果公用信息存储和专用信息存储的状态都更改为“一致”,表明数据库已
,经修复。
(b) 无日志文件或者日志文件损坏的存储恢复
如果eseutil /r 命令未恢复数据库到一致状态,请使用硬故障恢复(强制状态恢复)命令。(注意:该命令可能会丢失某些 Exchange 2003 数据,其中包括尚未提交给信息存储数据库的日志文件中所包含的消息。Microsoft 建议,只有在执行软故障恢复后公用信息存储或专用信息存储仍没有恢复到一致的状态时,才使用此命令。)
在命令提示符处,键入下列命令(为便于阅读,这些命令已折行,粗斜体为输入内容):
将 Priv1.edb 文件恢复到一致状态:
C:Program FilesexchsrvrMDBDATA>"C:Program FilesexchsrvrBINeseutil" /p priv1.edb 将 Pub1.edb 文件恢复到一致状态:
C:Program FilesexchsrvrMDBDATA>"C:Program FilesexchsrvrBINeseutil" /p pub1.edb 单击“是”运行修复。实用工具将显示下面的消息:
Microsoft(R) Exchange Server(TM) Database Utilities
Version 6.0
Copyright (C) Microsoft Corporation 1991-2000. All right reserved.
Initiating REPAIR mode...
Database:priv1.edb
Streaming File:priv1.stm
Temp.Database:TEMPREPAIR1820.EDB
Checking database integrity.
Scanning Status ( complete)
0 10 20 30 40 50 60 70 80 90 100
|----|----|----|----|----|----|----|----|----|-----|
....................................................
修复过程中将自动包括.stm 文件。在完成此过程之后,程序将显示下面的消息:
Integrity check successful.
(c) 进行邮件存储的脱机碎片整理
建议对修复的数据库文件执行碎片整理。特别是磁盘空间不足的时候。可以在另外的机器上执行这种脱机碎片整理工作。如果对 Pub1.edb 文件和 Priv1.edb 文件都运行了软故障恢复过程,请分别对这两个文件运行下面的碎片整理命令(为便于阅读,这些命令已折行,粗斜体为输入内容)。
对 Priv1.edb 进行碎片整理:
C:Program FilesexchsrvrBIN>eseutil /d
C:Program FilesexchsrvrMDBDATApriv1.edb
对 Pub1.edb 进行碎片整理:
C:Program FilesexchsrvrBIN>eseutil /d
C:Program FilesexchsrvrMDBDATApub1.edb
注意:如果存储数据库很大,整理需要一段时间。如果提示磁盘空间不足,请将 Program FileExchSrvrBin 文件夹复制到更大的磁盘,然后尝试从该位置运行此命令。
删除 Mdbdata 文件夹中的所有.log 文件、.chk 文件,然后删除 Temp.edb 文件(如果存在)。 关闭所有收发信的服务,以避免用户在修复过程中访问邮件存储。将数据库装入一次,然后立即将其卸载(Dismount )。
建议对修复的数据库文件执行碎片整理。特别是磁盘空间不足的时候。可以在另外的机器上执行这种脱机碎片整理工作。如果对 Pub1.edb 文件和 Priv1.edb 文件都运行了软故障恢复过程,请分别对这两个文件运行下面的碎片整理命令(为便于阅读,这些命令已折行,粗斜体为输入内容)。
,对 Priv1.edb 进行碎片整理:
C:Program FilesexchsrvrBIN>eseutil /d
C:Program FilesexchsrvrMDBDATApriv1.edb
对 Pub1.edb 进行碎片整理:
C:Program FilesexchsrvrBIN>eseutil /d
C:Program FilesexchsrvrMDBDATApub1.edb
注意:如果存储数据库很大,整理需要一段时间。如果提示磁盘空间不足,请将 Program FileExchSrvrBin 文件夹复制到更大的磁盘,然后尝试从该位置运行此命令。
使用<, SPAN lang=EN-US> Isinteg.exe实用工具可对Pub1.edb 数据库和 Priv1.edb 数据库的所有区域运行测试,并报告测试结果,而且还会尝试修复遇到的任何问题。(为便于阅读,这些命令已折行,粗斜体为输入内容):
C:Program FilesexchsrvrBIN>isinteg -s (servername) -fix -test alltests
系统会提示您选择要检查的数据库。
Index Status Database-Name
Storage Group Name:First Storage Group
1 Offline Mailbox Store (servername)
2 Offline Public Folder Store (servername)
Enter a number to select a database or press Return to exit.
注意:Exchange 2003 不再结合使用 -patch 选项来实现 Isinteg 实用工具。修补操作将在信息存储启动时由 Store.exe 自动执行。
只能检查标记为“Offline”(脱机)的数据库。在选择一个数据库后,将出现下面的消息,提示确认我们的选择:
"You have selected First Storage Group / Mailbox Store
Continue?(Y/N)"
Press Y and Enter to start checking the selected database.
重复修复的过程,直到不报告警告、错误或修复信息,报告内容类似于以下显示:
Test reference table construction result:
0 error(s); 0 warning(s); 0 fix(es); 0 row(s); time:0h:0m:0s
Test Folder Result:
0 error(s); 0 warning(s); 0 fix(es); 101 row(s); time:0h:0m:0s
Now in test 3 (reference count verification)of total 3 tests;
100 complete.
如果连续三次出现同样的警告、错误或修复信息,可以忽略。这些错误可能是由于损坏的电子邮件附件,或者不会阻止启动信息存储的类似情况造成的。
(d) 使用ExMerge 移动邮件到新的邮件存储
如果多次运行 Isinteg.exe 后仍报告同样的错误和警告,但是存储服务可以正常启动。我们可以将所有用户邮箱导出为.pst 文件。然后再将这些.pst 文件合并为新的Priv1.edb 文件。如果使用电子邮件的脱机存储(.ost 文件),必须先将.ost 文件移至.pst 文件中。
限制:必须要运行存储服务。ExMerge 只能移动用户邮箱,不能移动特定的Exchange 2003配置属性,如连接器设置、Outlook 设置或客户端规则。也不能移动通讯组列表、通讯组列表中的成员或公用文件夹。可以将公用文件夹内容移动到用户的个人文件夹中,以便在合并的.pst 文件中包括公用文件夹信息。如果您尝试此过程,则必须手动重新创建或重新配置通讯组列表。
确保当前没有用户正在访问服务器邮箱,运行ExMerge 。
使用两步合并中的第一步,然后输入所有用户。当ExMerge 过程完成之后,停止Exchange 2003信息
,存储服务,找到并打开 ExchSrvrMdbdata 文件夹,然后重命名Pub1.edb 和Priv1.edb 文件。删除此文件夹中的所有其他文件。在确信合并成功完成之前,请务必不要删除重命名的 Pub1.edb 和Priv1.edb 文件,以留作备份。重新启动 Exchange 2003 信息存储服务。在客户机上启动 Outlook ,然后向 Exchange 2003 全球通讯簿中的所有用户发送一封电子邮件。(注意:如果未完成此步骤,ExMerge 两步合并中的第二步将不显示任何可供还原的邮箱。)
使用两步合并中的第二步运行 ExMerge ,然后输入所有用户。完成此过程后,以前存储在.pst 文件中的电子邮件将被移至Exchange 2003邮箱,我们将得到一个包含所有电子邮件副本的新 Priv1.edb 文件。(注意:如果用户登录到空邮箱,则帐户可能未连接到新创建的邮箱。)
要恢复公用文件夹存储,需要在客户端(如Outlook )将公用文件夹复制到该客户端上用户的个人文件夹。停止信息存储服务,然后重命名现有的 Pub1.edb 和 Pub1.stm 文件。要创建新的 Pub1.edb ,请装入公用文件夹数据库。单击“确定”创建新的 Pub1.edb 。将文件夹从客户端移回服务器上的新公用文件夹结构。
接下来重新启动信息存储。
(注意:必须恢复公用存储上的所有权限。在能够访问电子邮件和公用文件夹后,应尽快执行备份并验证备份是否成功。此过程还将删除到此时间点为止收到的邮件的单一实例存储。结果,Exchange 2003 数据库可能会增长,并需要更多的磁盘空间。)