很多企业在投入巨资构建服务器之后,自然而言地需要相应的灾难恢复解决方案和高可用性支持,那么是否购买最好的备份恢复硬件和软件就可以解决问题?答案是否定的,盲目投资于事无补,投入时间研究学习才是成功之道。
再没有比当您需要从备份磁带中恢复数据,却发现备份磁带无法恢复那样更加糟糕的事情了。那种感觉完全可以用万念俱灰来形容。但是很多使用计算机多年的用户大抵都有过这样的经历;事实上,对此感触最深的要算企业中的系统管理员们,因为他们的职责就是保护和捍卫企业的重要数据,对此他们重任在肩。虽然在过去的几年,数据备份和恢复技术又有了长足的进步,但事实上从磁带恢复数据仍然只是企业最万不得已的办法。在所有的尝试都证明无效之后,您才会选择从备份恢复。为了让这个最后的措施在需要的时候能够真正发挥作用,您可以通过一些事前练习和研究分析提高备份恢复机制的可用性。本文将要为大家讲述的就是,在Exchange系统的备份恢复过程中常见的几个错误,希望广大读者能够从中所有收获,让您对Exchange的备份和恢复未雨绸缪、信心十足。
使用了不恰当的备份方法
众所周知,备份Exchange数据有联机和脱机两种基本方法。联机在线备份方法使用了微软提供的应用程序调用接口(例如:扩展存储引擎——ESE、备份APIs或者微软的卷影复制服务——VSS),在Exchange服务正常运行,目标数据库正在活动,提供服务的同时对Exchange数据进行备份。在备份过程中Exchange内置的APIs会根据需要将事件日志进行备份或者截断。
脱机离线备份是在Exchange数据库没有挂接的时候,对数据库和日志文件进行备份的方法。一些备份方案提供商声称在没有挂接数据库的时候,不需要使用微软的APIs即可进行Exchange数据的复制。微软知识库文章“XADM:热拆分快照对 Exchange 备份”(http://support.microsoft.com/kb/311898/zh-cn)解释了离线数据备份的问题。
对于大多数的生产服务器而言,进行联机在线备份的优势是显而易见的,因为在线备份会连续捕捉Exchange数据库的副本,并且此过程不会造成用户使用的中断。虽然如此,离线备份在有些情况下仍然非常有用。例如,在安装Windows或者Exchange服务包或者补丁之前;在对数据库进行服务器间迁移之前,进行一次完整的离线备份绝对是一个很好的主意。即使通常创建一个离线备份相比在线备份所花费时间要长很多,但很多管理员都愿意在每日在线备份的基础上定期创建生产服务器的离线备份。
没有定期验证备份的可靠性
如果备份任务失败了而且没有人发现,通常而言这不会引起问题。但是,假设有一天您无法为企业的重要用户恢复邮件数据,那么可以想象您的麻烦大了。我最近为一家因为管理员的错误,不小心损坏了邮箱数据库的公司提供咨询服务。当Exchange管理员决定从备份中恢复数据时,他才突然发现对该数据库的备份任务失败已经长达4个月之久,失败的原因是忘记安装公司购买的第三方备份软件中专用于Exchange打开文件的代理程序。每天的备份程序都因为Exchange的信息存储(IS)中有打开的文件,致使备份不成功。在备份软件的每日报表中,以及系统的事件日志中每天都显示了备份软件对Exchange数据库备份失败的记录。不幸的是,公司内没有一个人真正履行了监控备份任务的职责。
要避免上述问题,其实只需每日检查备份软件的日志记录。您应当对下列项目进行检查:
- 企业所需的数据是否都得到了备份。确认备份的类型、时间和内容是否正确。
- 备份任务是否成功完成。验证指定目录和内容是否包含在内,检查备份过程中出现的错误。
- 所备份的数据能够被恢复和使用。如果企业使用的是磁带,有条件的最好在另一台磁带机上读取验证。定期检查备份磁带恢复数据的可靠性。
任何一个上述项目失败,您都应该尽快寻找问题原因和解决办法,越快越好。例如,在一个在线备份过程中,Exchange将计算每页的Checksum并与磁盘上的进行比较。如果二者不一致,您将会收到一条标记为1018的错误,同时备份任务将会停止。每天对上述项目进行检查,能够帮助您尽快发现存在的错误,在该错误引起更大范围的负面影响之前,尽快的修复和解决它。
即使目前每日的备份任务成功完成,也不要盲目的放松警惕。任何的环境变化、备份软件更新、Windows配置或者Exchange配置发生变化都可能引起未来的备份失败。定期检查备份软件总是最保险的办法。最快速、最简单检查备份任务的办法就是察看应用程序日志和备份软件生成的报表。通过应用程序日志能够保证在备份过程中Exchange没有发生错误。通过备份软件报表能够验证备份任务没有跳过任何文件并且没有错误产生。
谨慎对待事务日志文件
能否成功恢复一个Exchange数据库,很大程度上取决于它关联的事务日志文件是否完整。如果拥有数据库完整的事务日志文件,那么成功恢复数据库的机会将会很大。反之亦然,如果事务日志文件丢失或者损坏,要想恢复数据库可谓难上加难。当系统在执行恢复指令时,Exchange会需要依次重演日志文件,从数据库所需的第一个日志文件开始(低序号的日志文件),直到最后一个。在此之间任何一个日志文件的丢失都会造成日志重演失败。当然,恢复进程也将停止,直到您找回缺失的事务日志文件。如果采用在线备份的方法,所备份数据库的相关事务日志文件将自动包含在内。在Exchange的持续工作中,每当有事务发生系统将不断创建新的日志文件。这些事务日志文件将一直驻留在磁盘上,直到下一次对Exchange系统执行完整或者增量备份,在备份的同时Exchange的信息存储(IS)将截断或者删除这些日志文件。千万不要自行删除这些事务日志文件。在有些情况下,您有可能需要将这些事务日志文件复制到一个特殊位置进行安全保存。在微软文章“Exchange 的脱机备份和还原过程”(http://support.microsoft.com/kb/296788/zh-cn)中,微软建议如果计划将系统从离线备份中恢复,那么最好事先将事务日志文件专门保存起来。
当您使用NTBackup执行一次恢复时,如果没有选中Last restore set选项,相应的日志文件是不会自动重演的(在其它备份软件中也有相应的可选项);而且恢复之后的数据库也不会自动加载,除非您使用Eseutil /r命令手动的进行事务日志重演过程。
如果事务日志文件的确丢失或者损坏了,微软提供了一个免费工具Exchange Server Disaster Recovery Analyzer(ExDRA)或许能够有所帮助。该工具能够对一个无法加载的数据库进行分析,告诉用户哪些事务日志可用,哪些已经丢失,并且根据存在的问题提供可能修复的建议。ExDRA工具在您遇到一些无法预料的系统困难时能够提供十分宝贵的信息,但是与此同时,在进行系统排错和恢复之前,向微软客户技术支持部门或者Exchange专家进行咨询总是能够有所帮助的。
低估了备份和恢复所需的时间
备份过程是相当花费时间的。每种备份方案都明确告知了它们支持的备份和恢复速度。一个常见的错误就是低估了恢复系统所需的时间。当系统恢复时间超出了用户的预期和签署的服务级别,恐怕您将很难实现在服务级别协议(Service Level Agreements,SLAs)当中承诺的条款,自然用户的满意度也就可想而知了。
微软的建议是在测量了相同数据量的备份所需时间之后,该时间的两倍将大概是恢复这些数据所需花费的时间。您一定会对为什么数据恢复时间是备份时间的两倍而感到疑惑。假设系统中有60GB的数据需要备份,而备份系统的速度是每小时12GB。因此,计划5小时的备份时间是合理的。但是当您需要将这些数据进行恢复时,除了读取上述这些数据需要5个小时之外,整个系统恢复过程还有很多工作需要完成:- 获取正确的备份介质(如果采用的是类似磁带一类的备份方案)或者找到正确的磁盘卷(如果采用的是基于VSS或者SAN的备份方案)。
- 将备份介质送达具体进行恢复的服务器所在站点。
- 根据需要,安装一台恢复服务器或者恢复存储组(Recovery Storage Group,RSG)。
- 从备份介质读取数据,并且修正可能出现的错误。
- 重演事务日志文件。
- 将数据从恢复服务器或者RSG转移到生产服务器。
- 尝试加载数据库是否成功。
- 随时准备解决出乎预料的各种问题。
不要小看了上述列表中的项目;其中任何一个步骤出现问题都会导致数据恢复的失败。此外,您所经历的恢复次数越多,您也将会越熟练,把握也会更大。对数据库恢复的时间预计也将更为准确,对很多数据恢复过程中出现的问题和如何解决都更加有信心。
忽视细节问题
很多时候对Exchange备份和恢复的讨论似乎仅仅局限在如何备份和恢复Exchange数据的领域,而忽视了很多在实际备份和恢复中出现的问题。例如,假设您的Exchange服务器由于硬件出现灾难性的损坏需要更换,当然您首先需要在新的服务器上安装Windows Server和Exchange,之后才有可能开始使用Exchange数据库的备份和事务日志。因此,记得定期对Exchange服务器的系统状态进行备份,以及将Windows Server、Exchange等产品的安装光盘和序列号有组织的存放,都对您是否能够快速恢复邮件服务起到十分重要的作用。如果您的Exchange环境还安装了防病毒软件、垃圾邮件过滤器、X.509证书中心(Cas)、传真连接器或者其它任何附件,记得将它们的配置和数据一并备份,尽量使您恢复的系统与原先生产服务器上的功能和服务一致。当您使用NTBackup对系统状态进行备份的时候,NTBackup将捕捉本地系统上的所有系统数据,包括注册表、域控制器上AD目录信息文件(DIT)、Windows证书服务的数据、DHCP和DNS服务器数据库、以及其它系统恢复所需要的重要信息。绝大多数第三方备份工具都提供了这样的功能,但您无需额外购买这些软件;使用NTBackup的计划任务功能,每天对系统状态备份到磁盘指定位置,然后在随后启动的每日备份任务中包含这些目录即可。这种办法保证您总是拥有最新更新的系统状态。最后,不要忘记定期更新系统自动恢复(Automated System Recovery,ASR)磁盘。使用ASR磁盘能够修复损坏的Windows安装文件,而无需完全重装整个系统。很多第三方备份软件都有此功能。
缺乏实战训练
学习如何恢复系统的最佳时间一定是在灾难真正发生之前。要知道只有通过具体动手才能检验计划的可行性。即使在您的环境中只有一台服务器或者一个数据库,您还是能够创造实战训练的机会的。只需购买一套微软的Virtual PC 2004或Vmware Workstation,在虚拟机中搭建服务器,对恢复数据进行测试。如果使用的是Exchange Server 2003,那么您最好对RSGs进行熟悉,了解如何使用。学习如何使用您的备份软件将服务器恢复到另一台服务器上。将安装光盘、序列号保存在安全的位置(而不是保存在可能会当机的服务器上)。定期从备份介质中尝试恢复某些文件,确保备份介质的数据可读和可恢复;根据您的环境可以是对一个邮箱、一封电子邮件、一个数据库、一个存储组(SGs)甚至整个服务器。事前花费足够多的时间训练,对未来顺利进行灾难恢复是绝对值得的投资。盲目投资于事无补,投入时间研究学习才是成功之道
很多公司在投入巨资购置复杂的灾难恢复解决方案和高可用性解决方案之后,才发现仅仅购买最好的硬件和软件并没有真正解决问题。实际上,结合使用NTBackup和普通的基于磁带或者磁盘的备份软件,已经能够建立起相对比较完备的灾难恢复方案。投入更多的时间对备份和恢复进行研究学习,避免本文上面提到常见错误,切实进行实战训练,不断优化和提高技术和防灾能力。这样即使有一天灾难不期而至,您也将有机会将平时积累的知识和技能派上用场了。
- 获取正确的备份介质(如果采用的是类似磁带一类的备份方案)或者找到正确的磁盘卷(如果采用的是基于VSS或者SAN的备份方案)。