切换到宽版
  • 5023阅读
  • 2回复

[分享]单DC单EX的灾难恢复案例 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 0楼  发表于: 2016-08-02
前些天 论坛的技术交流(吹牛撕逼)群68280328里来了一个管理员,老王.
他说说 服务器坏了.不能启动了.
大伙很热心,问了一下情况就有点懵逼了. hyper-v平台 单DC单EX.没有备份.  我反正是倒吸一口气.牛B啊.
虽然老王提出有偿服务.但是谁敢接这种单子啊.这事基本就过去了.
隔了一两天, 老王又来群里, 说DC能进恢复模式了. 基本上在我印象中.一个企业AD和EX中断48小时以上.admin就可以准备走人了.
周五正好没什么事.就远程过去围观了. 看得出来老王尝试了蛮久时间, log也保存了.
看了几眼LOG.基本就是正常的状态.异常的都是蓝屏之后的错误了.

跟老王说备份好虚机. 就尝试进行 AD恢复了


理论上呢,下面是正常的AD DC修复流程 (正常情况下,有辅域控.有备份)

=================================================
Restart the server and press F8 key, select Directory Services restore mode.
Log in with the local administrator username and password
Type: cd \windows\system32
Type: NTDSUTIL
Type: activate instance NTDS
Type: files
Type: info
此处不报错.会看到NTDS下面的文件列表
如果碰到Jet engine就要退出 ntdsutil. 一种quit quit quti.
下面备份一下文件:
Type: cd\
Type: md backupad
Type: cd \windows\ntds
Type: copy ntds.dit c:\backupad

Type: cd \windows\system32
Type: esentutl /g c:\windows\ntds\ntds.dit
/g 检查数据完整性.检查完了.有报名.就准备/p 进行修复
Type: esentutl /p   c:\windows\ntds\ntds.dit
修复正常后就要把log移走或删除
Type: cd \windows\ntds
然后再次用ntdsutil检查
Type: cd \windows\system32
Type: ntdsutil
Type: activate instance ntds
Type: files      
Type: info    
最后一步:
quit 到 NTDSUTIL
Type: Semantic Database Analysis
Type: Go
理论上到这一步就算结束了. 可以重启正常进DC系统了.
=================================================
可以老王公司的阿姨打扫机房的时候下脚有点狠. 直接把NTDS.DIT直接T爆了. 尝试过几次后就放弃了.真的,数据完整性在60%就报错了.
对于老王来说,不幸中的万幸就是在2014年还是2015年的时候做了个快照.  快照不能当备份用.也没有什么用了.AD与重建无异了.
接下去的就是做EX的灾难恢复了.
老王就着手去新建EX了.我告诉他.回头把老EX的D盘挂在新EX的系统里面.
他就把100G,VHD挂到新EX.
等我们恢复(怎么修复的我们晚一点说)完成之后.
我get-mailboxstates  用户登陆时间都是2015年,当时就惊呆了.
费了好几个小时,恢复个2015年的邮件数据.这个黑锅我大概要背个锅铲,因为正常邮件数据大小在300G-400G.
我当时恢复 DB在60G左右. 加LOG 就上百G.


这时候时间已经是周六夜里了.   我让老王不要再挂载VHD.因为他通过网络挂载VHD的时候网速才10MBps.
我让他找服务器,挂个动态扩展的VHD. 空间上限1T就好.我就去睡了.

老王犯了一个我以为他应该知道,但是他不知道的错误.
EX服务器快照也是2015年.  我之前恢复MB数据所有操作是在老EX的VHD母盘上执行的.
刚躺下,老王来消息:老EX 启动报错,因为VHD母盘写过之后.再启动母盘ID肯定不符.
系统问你是不是强行加载.如果加载数据有可能被破坏.
在我有限的知识理解中,老王万幸中的万幸是,这个EX居然能启动. 在快照母盘被读写过后.EX的DB文件居然还能使用.

到了周日,老王来消息求救. 大概是通宵尝试恢复后重启服务器后,  300G的邮件目录.变成一个打不开的目录和同名的4M错误文件.
一个管理员在犯了不备份,动母盘,乱重启的这些错误之后.我已经不太想帮他了.
也许是最近太闲了~  在他把 老EX 目录复制到 新EX服务器的 分区后.就开始再一次恢复DB数据了
=================================================

正常恢复数据主要是

eseutil /mh  "edb文件目录"
你会看到 有一行 State: Dirty Shutdown
然后
eseutil /r E00 /I /D "EDB文件路径" /a /l  "EDB日志文件目录"
这里有一个  注意点 E00 就是你原先数据库前辍.如果你有多台MDB.就是E01 E02 这样推.
根据数据大小, 把EDB 清理干净,
继续eseutil /mh  "edb文件目录"  变成State:clean shutdown .


接下来的思路就是. 新建一个恢复邮件数据库. 把EDB 恢复上去. 然后把恢复好的邮件迁到新EX的用户邮件里去.
进入EMS:
new-mailboxdatabase -recovery -name 老MDB名称随便取  -server MDB服务器名字 -edbfilepath EDB目录 -logfolderpath 日志目录  如果命令有错用tab自动补全.
restart-service msexchangeIS
get-mailboxdatabase 查看一下是不是建好了
set-mailboxdatabase -identity 老MDB名称随便取 -allowfilerestore $true
mount-database -ieentiy  老MDB名称随便取
看一眼恢复出来的MDB. 根据 lastlogon看看不是灾难前的数据
get-mailboxstatistics -database 老MDB名称随便取 | ft -autosize

接下来就是把灾难前的mailbox恢复到老王手工创建的新EX用户.
记得让老王一个个OWA登陆一下. 新用户.邮箱
准备命令1:

如果老EX的邮件大小不是默认大小限制.记得把新EX的限制调大一点.不然大邮件会失败.
Set-MailboxDatabase  "新的EX MDB" -IndexEnabled:$False
get-mailboxstatistics -database 老MDB名称随便取 | selec  displayname,mailboxguid,itemcount |export-csv "找个地方放CSV文件"-encoding UT8 (防中文乱码)
然后在EXCEL表格
第一列   复制 找个地方放CSV文件 中的 displayname 一整列, 仅供对照,不并入命令
第二列   输入 new-mailboxrestorerequet -sourcedatabase MDB名称随便取 -sourcestoremailbox 加个空格 拖满整列
第三列   复制  找个地方放CSV文件 中的 mailboxguid
第四列   输入  加个空格  '-targetmailbox 加个空格 拖满整列
第五列   参照第一列手工一个个输入 新EX的邮件地址 (为什么手工呢,防错.)
第六列   输入 空格 '-AllowLegacyDNMismatch   拖满整列
第七列   输入= B2&C2&D2&E2&F2 拖满整列
大概就会得出这样一列这样的命令.
new-mailboxrestorerequet -sourcedatabase 名称随便取 -sourcestoremailbox  mailboxguid  -targetmailbox   新EX的邮件地址  -AllowLegacyDNMismatch
接下来, 取一列邮箱最少的出来验证.在EMS 窗口中 放命令进去 执行一下. 如果不想验证.就把一整列命令贴以EMS
请耐心等待接下来
Get-MailboxRestoreRequest  看大致迁移情况
Get-MailboxRestoreRequest | Get-MailboxRestoreRequestStatistics | ft  name,percentcomplete,itemstransferred,*count*  看比较细的进度.

根据数据大小, 一直等到.当然这时候已经可以验证已经100%完成的用户邮箱了.
(我在恢复的时候老王就守着某个用户邮件看着,可以感觉到他很高兴啊.其实在state:cleanup的时候就可以松一口气了 )
最后交代老王所有用户恢复完成后:
Get-MailboxRestoreRequest | Remove-MailboxRestoreRequest  
Set-MailboxDatabase  "新的EX MDB" -IndexEnabled:$true


事情结束了吗: 并没有!因为AD是2015的快照.  AD的有效期我记得42天.所有客户端需要重新加. outlook呢.不清楚.

血的经验总结:
不要把快照当备份用
记得备份系统
不要动快照的母盘.

来吧,来QQ68280328,如果你敢来装逼~我们就敢跟你撕逼~










1
分享到
只看该作者 1楼  发表于: 2016-08-30
后面的软广告亮了

只看该作者 2楼  发表于: 2016-08-30
赞!
Exchange中文站10周年献礼。Exchange2016中文视频教程热销中:edu.exchangecn.com/course/12
快速回复
限60 字节
 
上一个 下一个