转自:Winmag亚洲技术社区
www.winmag.com.cn 作者:yinjie
看到论坛一直有人对NTBACKUP能否备份和恢复EXCHANGE的存储组(邮箱存储)表示怀疑,特做了个实验.大家看看吧..
一、实验环境
* 安装有WIN2003的服务器一台
* 安装有活动目录和IIS
* 安装有EXCHANGE 2003企业版
* 建立了几个邮箱,以administrator为操作对象
二、实验步骤
1、首先配置好OUTLOOK2003,并正常收发邮件数次。
正常工作的MAILBOX STORE:
注意看其中的管理员邮箱的邮件项目是31个!!
正常工作的OUTLOOK状态:
注意看收件箱中有3封邮件!!
2、使用NTBACKUP备份MAILBOX STORE,一切按向导进行
备份进行中。。。
备份已经成功完成,注意:此过程不能将存储组DISMOUNT也不能停止INFORMATION STORE服务。
3、在OUTLOOK中永久删除收件箱中的邮件。
可以看到已删除邮件是空的了:
收件箱中也是空的了哦。
4、打开ESM,看到MAILBOX STORE里少了3个项目(刚才删除的),确认删除是有效的哦(没有人怀疑吧。呵呵。。)
5、在ESM里设置MAILBOX STORE的属性为可被还原覆盖,这是非常重要的,否则不能还原成功!
并且把MAILBOX STORE手工DISMOUNT,这也是必需的。系统无法还原覆盖正在使用的数据库。
6、进入NTBACKUP,找到刚才备份的文件,打开编录。你会看到其中写着“无数据项目”,别管它,能恢复就可以了。
7、开始恢复数据库了,注意在日志临时文件中应写一个有效的路径,该路径用于存储在备份文件中的数据库日志,另外,需要注意的是,“上次还原集”请大家慎重选择。如果选择该项目,系统将在还原完成后按日志内容重放操作,这将使你刚才的操作仍然有效,换句话说,我刚才的删除项目操作仍然有效。我不希望这样,因为我希望恢复我刚才删除的文件哦,所以我不选这个选项,实际操作中该项应该是选中的,因为备份的数据比当前服务器的数据要旧,因此只有REPLAY日志才能重新应用备份后的操作。这样恢复后的数据才是服务器的最新状态。
NOTE:只有选中了“上次还原集”,才能在还原后让系统自动将数据库MOUNT。
OK,还原进行中了。。一切顺利。。
还原终于完成了,没有错误,说明一切正常。
8、进入ESM,MOUNT数据库,失败了。WHY?
看看日志。。
哦,原来系统告诉我说,数据库不是从硬恢复中恢复的,通俗点说,就是还有日志没有完全记录到数据库中,我们看看数据库状态来验证一下。
9、让我们来看看数据库的状态。(eseutil /mh)
哦,原来是DIRTY SHUTDOWN,这说明数据库当前是非正常关闭的,当然不能MOUNT啦。怎么办?当然你可以在还原时选择”上次还原集“这样系统会帮助你REPLAY日志,完成REPLAY后,数据库就正常关闭了。但我这里可不希望去REPLAY日志,相反的,我希望系统丢弃所有的日志,于是我只能手工处理了。
10、使用修复命令(eseutil /p)修复数据库,强制数据库关闭。
注意:只能在确定需要修复数据库时,才能使用该命令。
修复顺利完成了。呵呵。。
11、再来看看数据库状态。
哦,现在的数据库状态是CLEAN SHUTDOWN了,就是正常关闭了。成功了。
12、再重新MOUNT数据库,成功了哦。
13、赶快来检查一下看看是否正常,哈哈,,你看又是31个项目了。恢复了
14、进入OUTLOOK看看,哦,我的邮件终于回来了,上帝保佑。。
三、后记
呵呵,,不知道从什么时候开始,我也喜欢在文章的最后加个说明了,权当做后记吧。
从这个实验中你可以看到NTBACKUP确实可以备份和恢复EXCHANGE的存储组数据哦。(MS没有骗我们,呵呵……)但是需要注意的地方还真不少。
1、首先,我们要明白备份只备份当前有效数据,已经被删除的数据不会被备份哦。
2、备份时不能DISMOUNT数据库,也不能停止任何的EXCHANGE服务。
3、备份时最好能使用VSS(卷影副本)或不要使用邮箱
4、还原前,一定要将数据库设置为可覆盖模式。注意:每次正常还原后,系统会自动把这个状态撤消掉,也就是说,你每次还原时都需要重律柚茫欢堑门丁?BR> 5、还原数据库时,要把数据库DISMOUNT哦。这和备份是不一样的。
6、备份的文件里有可能报说”找不到数据项目“别管它,只要你确认备份成功了就不会有问题的。
7、还原时的临时日志位置一定要写,且不能是原始日志目录,因为在备份时,有可能有的事务还没有完全写入数据库,因此系统也会把这部分未写入数据库的日志备份到介质中,当还原的时候,它先把这些日志释放到临时目录,恢复数据库后再按临时目录里的日志REPLAY操作哦,然后删除临时目录里的日志。
8、”上次还原集“按需要选择。如果选择,系统将REPLAY所有日志。但不选择,系统不会自动MOUNT数据库。而且有可能连手工MOUNT都不能。注意哦。
9、还原完成后,如果不能MOUNT,可以先看看日志和数据库的状态(ESEUTIL /MH)这是个有用的命令。
10、最后一点,只有正常关闭的数据库才能被MOUNT,呵呵。。原因,请看我的另一篇关于日志功能的文章。
最后说一下,如果你的服务器坏掉了,你一定要按顺序执行下列操作:
* 安装全新的操作系统和补丁
* 恢复系统状态数据(如果是DC)
* 以灾难恢复选项安装EXCHANGE,不要以正常方式安装,装不上的。不信你试试。
* 恢复数据库内容
* 修复或调整数据库
* MOUNT数据库
* 完成恢复过程。
更详细的过程可参考灾难恢复白皮书或MS网站资源,谢谢大家。。
补充:对备份和恢复原理不明白的朋友请仔细阅读以下白皮书:
《Exchange 2000 Server Database Recovery》,该书也适用于EX2003。
URL: http://www.microsoft.com/technet/prodtechnol/exchange/2000/support/dbrecovr.mspx
看到论坛一直有人对NTBACKUP能否备份和恢复EXCHANGE的存储组(邮箱存储)表示怀疑,特做了个实验.大家看看吧..
一、实验环境
* 安装有WIN2003的服务器一台
* 安装有活动目录和IIS
* 安装有EXCHANGE 2003企业版
* 建立了几个邮箱,以administrator为操作对象
二、实验步骤
1、首先配置好OUTLOOK2003,并正常收发邮件数次。
正常工作的MAILBOX STORE:
![showimg.asp?ID=18445](https://i-blog.csdnimg.cn/blog_migrate/dc7f6b22223ae3df974084ff8b9724bd.png)
注意看其中的管理员邮箱的邮件项目是31个!!
正常工作的OUTLOOK状态:
![showimg.asp?ID=18446](https://i-blog.csdnimg.cn/blog_migrate/6ad38d69198d4ab08c020bf1277c058a.png)
注意看收件箱中有3封邮件!!
2、使用NTBACKUP备份MAILBOX STORE,一切按向导进行
![showimg.asp?ID=18447](https://i-blog.csdnimg.cn/blog_migrate/e583b1a39111070cb7fb6a0cd274f9ba.png)
备份进行中。。。
![showimg.asp?ID=18448](https://i-blog.csdnimg.cn/blog_migrate/25f71fa5ad4465c3c68a997675b6213c.png)
备份已经成功完成,注意:此过程不能将存储组DISMOUNT也不能停止INFORMATION STORE服务。
![showimg.asp?ID=18449](https://i-blog.csdnimg.cn/blog_migrate/21933648d5c29b6aef5468c73735d39c.png)
3、在OUTLOOK中永久删除收件箱中的邮件。
![showimg.asp?ID=18450](https://i-blog.csdnimg.cn/blog_migrate/16c8f733b713eb5fc87a7f0e0afb3702.png)
可以看到已删除邮件是空的了:
![showimg.asp?ID=18451](https://i-blog.csdnimg.cn/blog_migrate/214e4105c94714ad3d67c51715b374a7.png)
收件箱中也是空的了哦。
![showimg.asp?ID=18452](https://i-blog.csdnimg.cn/blog_migrate/5d7ec0a33a4aeb40e47992fdc9d66ca4.png)
4、打开ESM,看到MAILBOX STORE里少了3个项目(刚才删除的),确认删除是有效的哦(没有人怀疑吧。呵呵。。)
![showimg.asp?ID=18453](https://i-blog.csdnimg.cn/blog_migrate/889d38cd9de207959b27667ae586c864.png)
5、在ESM里设置MAILBOX STORE的属性为可被还原覆盖,这是非常重要的,否则不能还原成功!
![showimg.asp?ID=18454](https://i-blog.csdnimg.cn/blog_migrate/1b4e8b0270e43a43a11e3a7f471a7656.png)
并且把MAILBOX STORE手工DISMOUNT,这也是必需的。系统无法还原覆盖正在使用的数据库。
![showimg.asp?ID=18455](https://i-blog.csdnimg.cn/blog_migrate/dc62ba2fd5517085368c121a06b85fba.png)
6、进入NTBACKUP,找到刚才备份的文件,打开编录。你会看到其中写着“无数据项目”,别管它,能恢复就可以了。
![showimg.asp?ID=18456](https://i-blog.csdnimg.cn/blog_migrate/55aa6c848a5614b151332803546a5519.png)
7、开始恢复数据库了,注意在日志临时文件中应写一个有效的路径,该路径用于存储在备份文件中的数据库日志,另外,需要注意的是,“上次还原集”请大家慎重选择。如果选择该项目,系统将在还原完成后按日志内容重放操作,这将使你刚才的操作仍然有效,换句话说,我刚才的删除项目操作仍然有效。我不希望这样,因为我希望恢复我刚才删除的文件哦,所以我不选这个选项,实际操作中该项应该是选中的,因为备份的数据比当前服务器的数据要旧,因此只有REPLAY日志才能重新应用备份后的操作。这样恢复后的数据才是服务器的最新状态。
NOTE:只有选中了“上次还原集”,才能在还原后让系统自动将数据库MOUNT。
![showimg.asp?ID=18457](https://i-blog.csdnimg.cn/blog_migrate/ff7418fdde1d56fe14bb506d6956af17.png)
OK,还原进行中了。。一切顺利。。
![showimg.asp?ID=18458](https://i-blog.csdnimg.cn/blog_migrate/f7f84dbd0e26503d2ea2c4d4c1e21819.png)
还原终于完成了,没有错误,说明一切正常。
![showimg.asp?ID=18459](https://i-blog.csdnimg.cn/blog_migrate/259a9384561dca7fba0bfa49c84fa3fb.png)
8、进入ESM,MOUNT数据库,失败了。WHY?
![showimg.asp?ID=18460](https://i-blog.csdnimg.cn/blog_migrate/54e4ff5e1f9a2a032023282383fa2264.png)
看看日志。。
![showimg.asp?ID=18468](https://i-blog.csdnimg.cn/blog_migrate/8a2be1bc19406f027949d5050a1ebef2.png)
哦,原来系统告诉我说,数据库不是从硬恢复中恢复的,通俗点说,就是还有日志没有完全记录到数据库中,我们看看数据库状态来验证一下。
9、让我们来看看数据库的状态。(eseutil /mh)
![showimg.asp?ID=18461](https://i-blog.csdnimg.cn/blog_migrate/9bafeebf1885be38a7337e28c005e419.png)
哦,原来是DIRTY SHUTDOWN,这说明数据库当前是非正常关闭的,当然不能MOUNT啦。怎么办?当然你可以在还原时选择”上次还原集“这样系统会帮助你REPLAY日志,完成REPLAY后,数据库就正常关闭了。但我这里可不希望去REPLAY日志,相反的,我希望系统丢弃所有的日志,于是我只能手工处理了。
10、使用修复命令(eseutil /p)修复数据库,强制数据库关闭。
![showimg.asp?ID=18462](https://i-blog.csdnimg.cn/blog_migrate/72f1dc6c204456c32196978c45f0efed.png)
注意:只能在确定需要修复数据库时,才能使用该命令。
修复顺利完成了。呵呵。。
![showimg.asp?ID=18463](https://i-blog.csdnimg.cn/blog_migrate/127f71ef934d2f36367bb493544bdc11.png)
11、再来看看数据库状态。
![showimg.asp?ID=18464](https://i-blog.csdnimg.cn/blog_migrate/cc2eedbfb9115340df09e57808ce4ff5.png)
哦,现在的数据库状态是CLEAN SHUTDOWN了,就是正常关闭了。成功了。
12、再重新MOUNT数据库,成功了哦。
![showimg.asp?ID=18465](https://i-blog.csdnimg.cn/blog_migrate/ae8bdbc1464d6648c206bd64de71c1c4.png)
13、赶快来检查一下看看是否正常,哈哈,,你看又是31个项目了。恢复了
![showimg.asp?ID=18466](https://i-blog.csdnimg.cn/blog_migrate/2f3b0f1a522d59ed498ea4ff38bd5978.png)
14、进入OUTLOOK看看,哦,我的邮件终于回来了,上帝保佑。。
![showimg.asp?ID=18467](https://i-blog.csdnimg.cn/blog_migrate/3b8640ef35adb3d2d542c989156b9232.png)
三、后记
呵呵,,不知道从什么时候开始,我也喜欢在文章的最后加个说明了,权当做后记吧。
从这个实验中你可以看到NTBACKUP确实可以备份和恢复EXCHANGE的存储组数据哦。(MS没有骗我们,呵呵……)但是需要注意的地方还真不少。
1、首先,我们要明白备份只备份当前有效数据,已经被删除的数据不会被备份哦。
2、备份时不能DISMOUNT数据库,也不能停止任何的EXCHANGE服务。
3、备份时最好能使用VSS(卷影副本)或不要使用邮箱
4、还原前,一定要将数据库设置为可覆盖模式。注意:每次正常还原后,系统会自动把这个状态撤消掉,也就是说,你每次还原时都需要重律柚茫欢堑门丁?BR> 5、还原数据库时,要把数据库DISMOUNT哦。这和备份是不一样的。
6、备份的文件里有可能报说”找不到数据项目“别管它,只要你确认备份成功了就不会有问题的。
7、还原时的临时日志位置一定要写,且不能是原始日志目录,因为在备份时,有可能有的事务还没有完全写入数据库,因此系统也会把这部分未写入数据库的日志备份到介质中,当还原的时候,它先把这些日志释放到临时目录,恢复数据库后再按临时目录里的日志REPLAY操作哦,然后删除临时目录里的日志。
8、”上次还原集“按需要选择。如果选择,系统将REPLAY所有日志。但不选择,系统不会自动MOUNT数据库。而且有可能连手工MOUNT都不能。注意哦。
9、还原完成后,如果不能MOUNT,可以先看看日志和数据库的状态(ESEUTIL /MH)这是个有用的命令。
10、最后一点,只有正常关闭的数据库才能被MOUNT,呵呵。。原因,请看我的另一篇关于日志功能的文章。
最后说一下,如果你的服务器坏掉了,你一定要按顺序执行下列操作:
* 安装全新的操作系统和补丁
* 恢复系统状态数据(如果是DC)
* 以灾难恢复选项安装EXCHANGE,不要以正常方式安装,装不上的。不信你试试。
* 恢复数据库内容
* 修复或调整数据库
* MOUNT数据库
* 完成恢复过程。
更详细的过程可参考灾难恢复白皮书或MS网站资源,谢谢大家。。
补充:对备份和恢复原理不明白的朋友请仔细阅读以下白皮书:
《Exchange 2000 Server Database Recovery》,该书也适用于EX2003。
URL: http://www.microsoft.com/technet/prodtechnol/exchange/2000/support/dbrecovr.mspx