陶 佩
(民航西南空管局飞服中心 四川 610200)
众所周知,数据对于很多大型企事业来说是非常重要的,尤其是对数据信息依赖程度很高的企事业更是如此 。数据信息一旦不慎丢失或者生产系统不能正常运行,都会造成不可估量的损失。为了保障生产系统的正常运行,应当采取先进、有效的灾备系统,实现系统主备份设施的快速切换与灾难性恢复,防范于未然。
现下在航空情报领域,由于航空情报数据重要性的提升,数据库的灾备能力越来越引起重视,灾备系统建设将成为航空情报行业保障数据安全的重要措施。Oracle中的DataGuard技术正是一种高可用性的容灾备份技术,可以解决Oracle数据库的数据丢失或破坏的问题。
本文所涉及的航行情报信息管理系统(简称CNMS)是民航近年来航空情报工作的主要业务系统,主要用于向机场、航空公司、空中交通管制部门和其它用户提供航空数据信息服务。
近年来,随着CNMS数据量的不断增加、用户数量和需求的不断发展,CNMS虽然运行效率依然良好,但在高可用性和高可靠性方面还存在不足,因此本单位一直沿用的传统灾备方式已经不能满足及时、准确恢复数据的需求。为了使CNMS在遇到数据灾难性损失等重大事件时,数据库系统能够在限定时间内成功恢复系统,甚至能够达到瞬时切换至备份系统,本单位决定采用甲骨文公司推出的DataGuard技术为基础用来帮助完善本单位的容灾备份系统,提出了建设新的灾备系统以提高CNMS数据抵御灾害能力的方案并进行具体实施。
通过查询大量相关资料,根据航空情报业务的要求及其提供的原始资料,结合民航航空业务标准,参考一些同类的灾备系统进行分析和研究。
因在数据高可用性、数据保护、系统资源利用和自动化管理方面具有优势,最终决定采用Oracle DataGuard技术来进行CNMS灾备系统的设计与实现 。
现阶段CNMS灾备策略的不足之处:数据库数据备份方式单一和复杂;数据库系统受灾后恢复时间长;数据库数据保护力度不足,备份和恢复过程易丢失数据;备份方式可能会影响主数据库性能;现阶段数据库恢复方式复杂,无法满足数据高可靠性的需求,人为因素较多,备份和恢复过程容易产生差错。
根据分析出的现阶段灾备策略的不足,提出新搭建的CNMS灾备系统需要解决的重要问题和基本要求。
CNMS灾备方式设计主要包括数据库灾备方式、应用系统灾备方式和存储灾备方式。其中数据库灾备方式采用Oracle DataGuard技术,实现主用、灾备系统数据库信息实时同步,即是将生产系统数据库操作日志实时或周期性的复制到灾备系统数据库中,实现二者之间的数据一致性。
DataGuard架构通常由多台(至少两台)位于不同位置的数据库服务器组成。其中以CNMS主用服务器为主数据库角色,其它备份数据库为standby数据库,基本原理是将主数据产生的联机日志随时传送给各个standby数据库,standby数据库再重做这些日志。当CNMS主数据库发生重大故障或当地发生火灾、地震等灾难事件时,任意一个standby数据可以快速转换为主数据库角色,主数据库是大部分应用访问的生产数据库,产生修改操作并将这些操作传输到其他服务器上的数据库上备份数据库是主数据库上的某个时间点的备份,它们事务上是一致的。主数据库和备份数据库之间的数据传输、日志应用和角色切换等都是通过DataGuard完善的后台机制来确保完成的。在DataGuard环境下,当主数据库出现故障时,这时我们就需要对备份数据库进行角色切换,让备份数据库转变为主数据库,确保数据不会丢失。
主库和备库切换方法:
当主库出现故障、需将从主库切换到备库时,用以下sql语句进行切换
SQL>alter database comit to switchover to physical standby with session shutdown;
SQL>shutdown immediate;
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>recover managed standby database disconnect;
当主库出现故障,需将备库切换为主库时,用以下sql语句进行切换
SQL>alter database commit to switchover to primary;
SQL>alter database open;
应用系统方面,本课题涉及的CNMS软件在应用层方面都是基于Oracle数据库中提取数据的方式,因此在灾备方面只需考虑增加灾备所用的客户端设备;存储灾备方式采用磁盘拷贝技术,利用光纤直连,异地备份时可以实现数据的远程复制与同步。
对CNMS灾备系统具体处置能力进行设计。可分为三种情况:当CNMS系统正常运行时,灾备系统处于何种运行情况;当CNMS主用系统发生灾难而不可用时,如何切换至灾备系统 ,这种情况可分为本地灾备与异地灾备两种方式;当生产系统主用数据库恢复正常后,灾备系统与主用系统的角色互换是何种情况的设计。
利用Oracle数据库软件创建数据库环境,根据生产系统数据库创建一个或多个灾备数据库(根据实际应用需求);在主用和灾备数据库之间利用Oracle DataGuard技术建立联系,从而保证数据库之间的数据的一致性;最终根据设计阶段的具体灾备流程对主用和灾备系统、存储和应用终端进行部署调试。
搭建好CNMS灾备系统后,对需求分析阶段提出的建设目标一一进行测试,并对测试后的结果进行系统性的分析,将测试结果比对传统灾备系统,重点讨论新的CNMS灾备系统的建立与实现相对于传统系统的提升与优化性。
在实施新的灾备系统后,CNMS系统在数据信息的安全保障方面有较明显的提升,对业务发展提供了有力的支撑。通过验证新灾备系统建设后的测试成果,能够证明本文所采用的灾备系统分析方法是切实可行的。随着民航的发展,航行情报服务业务的需求量也会越来越大,这些新的业务系统因工作特点和CNMS系统类似,所以也很有可能遭遇和CNMS系统一样的数据库灾备问题。对本文涉及的CNMS灾备系统的建设工作,今后也会给其他新的业务系统的数据保障提供思路和经验,而且本文涉及的CNMS灾备系统的建设工作,也会对今后航空情报业务系统的数据保障产生积极的影响。