说到Exchange的灾难恢复,相信作为一个企业管理员是最为重要的掌握技能,因为灾难会随时出现,所以作为一个企业管理员需要对Exchange的相关功能及灾难恢复演练做的相当信息,这样一旦出了问题会在最短的时间内恢复,当然作为一个企业管理员的话,会尽量避免所管理服务出现重大问题,所以管理员经常会对一些服务做一些健康检查,尽可能的保证服务的健康性,同样我也作为一个管理员,近期做了一些Exchange的相关的服务灾难演练,总结了一下,分享给有需要的童鞋。
我的环境中暂时放了两台服务器,一台为Exchange2013担任Mailbox、HUB角色,另外一台为Exchange2013担任CAS角色,在此次我们会将其中一台Exchange2013担任Mailbox角色的服务器直接重装系统,演练该服务器由于硬件故障导致无法启动的试验过程,前提是我们将Mailbox服务器所承载的Database进行了备份(如果不备份的话,恢复后用户会丢失邮件),当然说到备份,我们都知道,可以使用系统自带的windows server backup整个服务器的进行备份,这样当服务器损坏的时候,我们可以直接使用整个服务器的备份状态来进行还原,但是这样备份的话资源太浪费了,一般企业来说只会对数据库进行备份,所以很少有备份服务器状态的,所以今天我们只备份服务器的数据库(EDB),然后通过在 Microsoft Exchange Server 2013 中使用 Setup /m:RecoverServer 开关,可以恢复丢失的服务器。我们都知道Exchange 2013 的计算机的大多数设置都存储在 Active Directory 中。/m:RecoverServer 开关使用 Exchange 中存储的设置及其他信息,重建具有相同名称的 Active Directory 服务器。所以在恢复的时候我们需要建议与原有的服务器名称保持一致才可以恢复成功,恢复丢失的 Exchange 服务器通常是通过使用新硬件完成的。但是,您也可以使用现有的服务器。还不多说了,具体见下:
环境介绍:
Domain Name:CAIHD.COM
Hostname:CAIHD-DC.CAIHD.COM
IP:192.168.6.71
Role:DC、DNS、CA
Hostname:CAIHD-MAIL01.CAIHD.COM
IP:192.168.6.74
Role:Exchange Mailbox\HUB
Hostname:CAIHD-CAS01.CAIHD.COM
IP:192.168.6.72
Role:Exchange CAS
我们先查看当前环境中只有两台服务器,一台为Mailbox,一台为CAS服务器
Get-exchangeserver
首先确认用户可以收发邮件的
我们首先将mailbox的dababase数据备份一下;
我们使用windows server backup备份数据库
我们使用一次性备份
使用自定义备份
选择数据库所在的磁盘卷
在此我们选择备份到E盘,因为这个是测试环境,所以就备份到本地了
备份完成
我们查看备份文件
接下来我们将模拟对mailbox角色的服务器格式化,来代表服务器损坏。
在系统重装前,我们需要注意的是,记录原来服务器的hostname及ip地址信息;因为要还原,所以新服务器的计算机名和ip地址必须和原来故障机器保持一致
我们将mailbox关机重转的时候,CAS服务器是正常工作的,但是用户还是无法访问邮箱服务的,会提示以下错误
https://technet.microsoft.com/zh-cn/library/dd876880(v=exchg.150).aspx
恢复丢失的 Exchange 服务器需要以下步骤:
1.重置丢失服务器的计算机帐户。有关详细步骤,请参阅重置计算机帐户。
2.安装正确的操作系统,并采用与丢失服务器相同的名称命名新的服务器。如果执行恢复操作的服务器与丢失的服务器名称不同,则无法成功恢复。
3,将该服务器加入与丢失服务器相同的域中。
4.安装必需的先决条件和操作系统组件。有关详细信息,请参阅Exchange 2013 系统要求和Exchange 2013 先决条件。
5.登录到正恢复的服务器上,打开命令提示符。
6.导航到 Exchange 2013 安装文件,然后运行以下命令。
Setup /m:RecoverServer /IAcceptExchangeServerLicenseTerms
7.在安装程序完成之后,恢复的服务器投入使用之前,重新配置以前存在于该服务器上的所有自定义设置,然后重新启动该服务器。
所以我们需要按照步骤操作;首先是重置丢失服务器的计算机账户
使用 Windows 界面重设计算机帐户
若要打开 Active Directory 用户和计算机,请依次单击“开始”和“控制面板”,然后依次双击“管理工具”和“Active Directory 用户和计算机”。
要在 Windows Server? 2012 中打开“Active Directory 用户和计算机”,请单击“开始” 单击“开始”,键入,键入 dsa.msc。
在控制台树中,单击“计算机”。
位置:Active Directory 用户和计算机\domain node\计算机
或者单击包含要重设的计算机的文件夹。
在详细信息窗格中,右键单击计算机,然后单击“重设帐户”。
重置完成
我们也可以使用powershell进行重设;使用命令行重设计算机帐户
要打开命令提示符,请依次单击“开始”和“运行”,再键入 cmd,然后单击“确定”。
要在 Windows Server 2012 中打开命令提示符,单击“开始”单击“开始”,键入,键入 cmd,然后单击“确定”。
键入以下命令,然后按 Enter:
dsmod computer <ComputerDN> -reset
参数 |
描述 |
<ComputerDN> |
指定要重设的一个或多个计算机对象的可分辨名称。 |
-reset |
重设指定的计算机对象。 |
我们也可以使用以下命令查看语法
dsmod computer /?
接下来我们重装服务器;我们必须安装之前的版本服务器系统
我们删除原来系统C盘数据及D盘数据库存放分区;
重建系统分区,安装系统
系统安装好后,我们需要命名与丢失服务器相同的名称命名新的服务器;
如果执行恢复操作的服务器与丢失的服务器名称不同,则无法成功恢复;
所以我们接下来定义计算机名及将该服务器加入与丢失服务器相同的域中
安装必需的先决条件和操作系统组件。有关详细信息,请参阅Exchange 2013 系统要求和Exchange 2013 先决条件。
https://technet.microsoft.com/zh-cn/library/bb691354(v=exchg.150).aspx#WS2012MBX
Install-WindowsFeature RSAT-ADDS,AS-HTTP-Activation, Desktop-Experience, NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation
安装插件
接下来真正的恢复服务器了
如果 Exchange 不是安装在默认位置,则必须使用 /TargetDir 开关指定 Exchange 二进制文件的位置。如果不使用 /TargetDir 开关,则 Exchange 文件将安装在默认位置 (%programfiles%\Microsoft\Exchange Server\V15) 中。
若要确定安装位置,请执行下列步骤:
打开 ADSIEDIT.MSC 或 LDP.EXE。
导航到以下位置:CN=ExServerName,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=ExOrg Name,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=DomainName,CN=Com
右键单击 Exchange 服务器对象,然后单击“属性”。
找到 msExchInstallPath 属性。此属性存储当前安装路径。
我们挂载exchange2013安装光盘---查看挂载的盘符---R
登录到正恢复的服务器上,打开命令提示符。
导航到 Exchange 2013 安装文件,然后运行以下命令。
cd r:\
Setup /m:RecoverServer /IAcceptExchangeServerLicenseTerms
环境检查完成;开始复制文件
还原服务完成已完成
开始配置mailbox、hub角色了
完成服务器恢复
在安装程序完成之后,恢复的服务器投入使用之前,重新配置以前存在于该服务器上的所有自定义设置,然后重新启动该服务器,重启后打开 Windows 服务工具 (services.msc) 并验证 Microsoft Exchange 服务是否已安装和运行。
然后我们通过EMC查看当前服务器的状态
接下来我们打开ECP管理中心
我们可以正常打开Exchange管理中心,输入有效的用户和密码后,我们单击登陆;
提示还是无法登陆
接下来我们首先查看当前服务器所运行的数据库
然后我们想到数据库路径在D盘下:
get-mailboxdatabase | fl
get-mailboxdatabase | fl edbfilepath
可我们恢复后,发现D盘下没有数据库文件
所以我们需要将原来备份的数据库进行还原
我们首先需要安装windows serverbackup
安装后,我们需要单击还原向导
我们选择备份源,因为我们当时备份的时候备份在本机上了,然后备份到了E盘;
所以我们需要选择其他位置存储备份
选择本地驱动器
我们选择E盘
选择服务器
选择当时的备份日期及时间
我们选择文件和文件夹;
如果应用程序可用的话,应该选择该选项;
选择恢复的项目
选择恢复选项及恢复方式
D:\DB01\
准备恢复及开始恢复
数据库恢复完成
接着我们查看D盘恢复的文件信息
DB01目录下的数据库文件信息
恢复后,我们需要重启一下服务器
我们登陆owa提示用户目前无法访问数据库邮箱
所以我们需要重新挂载数据库
https://technet.microsoft.com/zh-CN/library/aa998871.aspx
mount-database <databasename>
挂载后,我们可以查看挂在状态
Get-mailboxdatabase -identity db01<databasename> -status | fl mount*
我们登陆user01的owa
然后登陆exchange2013管理中心
我们发现登录administrator的ecp是无法登录的,显示错误页面
可以打开登录界面,但是输入登录账户:administrator登录的时候,提示错误页面
解决方法:打开Exchange Management Shell,运行以下命令禁用邮箱后再启用邮箱,如下图
Disable-Mailbox administrator Enable-Mailbox administrator
(注意: 如果 输入禁止管理员邮箱时警告提示数据库没有装载,这时先按照提示的数据库名装载数据 库,命令 如下 Mount-Database -identity "数据库名",然后再启用管理员账户邮箱)
现在就可以登录了
最后我们说一下,企业来说会为服务器配置日志记录循环
https://technet.microsoft.com/ZH-CN/library/dn756374(v=exchg.150).aspx
启用日志循坏
Set-MailboxDatabase DB1 -CircularLoggingEnabled $True Get-mailboxdatabase -identity db01 | fl circularloggingenabled
禁用日志循环
Set-MailboxDatabase DB1 -CircularLoggingEnabled $False
当然我们也可以使用管理中心配置日志循环
在 EAC 中,转到“服务器”>“数据库”。
选择您想进行配置的邮箱数据库,然后单击
选中或取消选中“启用循环日志”,然后单击“保存”。
如果需要执行卸载或加载操作,会出现一个警告消息。单击“确定”关闭该警告消息。
要卸载该数据库,单击“更多”
然后单击“卸载”。当警告消息出现时,单击“是”。
要加载该数据库,单击“更多”
然后单击“加载”。当警告消息出现时,单击“是”。
最后测试用户之间的邮件收发是否正常,首先是user01给user02发送测试邮件
User02收到邮件
user02回复邮件,及user01收到邮件
最后我们说一下如何使用powershell给用户赋予完全管理权限
如何我们想让user01能打开user02的邮箱的话,我们需要赋予user01完全管理员权限
用户登录到owa后,单击右上角---单击下拉---打开其他邮箱
在此打开user02邮箱
因为user01没有权限所以会出现以下提示错误
所以我们需要给user01赋予完全管理员权限
向用户 user01 授予对 user2 邮箱的完全访问权限
Add-MailboxPermission -Identity user02 -User user01 -AccessRights FullAccess -InheritanceType All
我们再次尝试user01打开user02邮箱;这样我们就可以打开了
如果要取消user01对user02的完全访问权限我们需要做一下操作
Remove-MailboxPermission -Identity user02 -User user01 -AccessRights FullAccess -InheritanceType All
这样user01就打不开user02的邮箱了