一种保持Oracle数据库服务高可用的实现方法和系统技术方案

技术编号:8046987 阅读:192 留言:0更新日期:2012-12-06 16:20
本发明专利技术涉及一种保持ORACLE数据库服务高可用的方法。公开了一种保持Oracle数据库服务高可用的实现方法,该方法包括:为各数据库节点分配虚拟IP;对数据库节点进行心跳检测,判断数据库主、从节点是否存活,当发现主节点不可访问时,自动将虚拟IP飘移至从节点,并切换从节点的身份为主节点。本发明专利技术进一步公开了一种保持Oracle数据库服务高可用的系统。本发明专利技术特别适用于ORACLE数据库的DATAGUARD特性,通过与开源软件DRBD和Keepalived的组合搭配,无论在switchover(计划内切换,无损切换)或者是failover(计划外切换,有损切换)时,均可以在不丢失数据的前提下实现数据库的主从切换,并保障数据库服务的高可用。

【技术实现步骤摘要】

本专利技术涉及一种保持ORACLE数据库服务高可用的方法,特别适用于ORACLE数据库的DATAGUARD特性,通过与开源软件DRBD和Keepalived的组合搭配,无论在switchover(计划内切换,无损切换)或者是failover (计划外切换,有损切换)时,均可以在不丢失数据的前提下实现数据库的主从切换,并保障数据库服务的高可用。
技术介绍
目前ORACLE数据库软件的Dataguard特性(以下简 称Dataguard)是应用较为普遍的数据库高可用解决方案,它通过一主(Primary)多从(Standby)的运行机制,当主库出现故障时,可以通过提升某个从库的角色为新主库的方式,实现数据库服务的高可用。Dataguard提供有两种故障切换机制,分别应用于不同的场景,操作步骤和实现原理也略有差异,下面对上述两种切换机制的操作步骤分别进行描述A>. SWITCHOVER(计划内切换,无损切换)的操作步骤如下I).检查Dataguard环境,验证归档文件、初始化参数等是否符合需求;2).查询主库端数据库状态,验证是否可执行角色切换;3).如状态允许,则切换主库身份为Standby ;4).关闭原主库;5).重新启动原主库到加载(mount)模式;6).查询从库端数据库状态,验证是否可执行角色切换;7).如状态允许,则切换从库身份为Primary ;8).打开新主库;9).原主库启动归档文件接收和应用。B〉. FAILOVER(计划外切换,有损切换)的操作步骤如下I).检查Dataguard环境,验证归档文件、初始化参数等是否符合需求;2).取消当前归档应用进程;3).执行完成归档应用操作;4).查询从库数据库状态,验证是否可执行角色切换;5).如状态允许,则切换从库身份为Primary ;6).打开新主库。但是,上述方式也有缺憾,主要表现在IX操作复杂度高,必须由专业的数据库管理员(DBA)经过培训后才能够处理;2〉.执行切换操作时,主库和从库之间需要有交互,无法实现自动无值守的切换;3〉.切换操作步骤多,停机时间较长,出现问题的机率大;4〉.切换对现有环境影响较大,如执行FAILOVER时,将破坏当前的Dataguard环境,导致操作后必须重建Dataguard环境;5〉.无法实现访问IP的统一,由于主从分别为不同的数据库节点,每个节点的物理IP均不相同,当执行过切换操作后,前端应用连接的数据库服务IP也必须同步变更。因此,需要提供一种快速、可靠、易于实施和维护、故障快速恢复的数据库服务高可性综合解决方案。
技术实现思路
本专利技术主要解决大型ORACLE数据库软件平台,服务中断导致业务长时间停顿的问题,针对传统的DataGuard灾备方案无法提供实时全面的高可用服务,故障切换时间长,并且一旦执行切换,前端的应用程序也必须同步进行修改等不足,通过在现有DataGuard环境中引入 DRBD (Distributed Replicated Block Device)和 Keepalived 软件的方式,提供一种快速、可靠、易于实施和维护、故障快速恢复的数据库服务高可性综合解决方案。 根据本专利技术,提供一种保持Oracle数据库服务高可用的实现方法,该方法包括为各数据库节点分配虚拟IP ;对数据库节点进行心跳检测,判断数据库主、从节点是否存活,当发现主节点不可访问时,自动将虚拟IP飘移至从节点,并切换从节点的身份为主节点。优选地,该方法进一步包括当启动数据库节点服务器时,检查该节点的数据库服务是否可用,若不可用,则启动当前节点为主节点或从节点。优选地,在各数据库节点中分别创建有两块DRBD共享盘,用于存储各数据库节点中的差异性数据,通过DRBD内置的C型完全同步协议保持主从节点的数据的一致性,所述两块DRBD共享盘分别定义为主共享盘和从共享盘,通过检测当前节点的DRBD主共享盘的角色,启动当前节点为主节点或从节点,从而实现数据库主从节点的切换或启动。优选地,通过检测当前节点的DRBD主共享盘的角色,启动当前节点为主节点或从节点包括检测当前节点的DRBD主共享盘的角色,若当前节点的DRBD磁盘状态中显示另一节点的身份为从节点,则启动当前节点为主节点,若当前节点的DRBD磁盘状态中显示另一节点的身份为主节点,则启动当前节点为从节点。优选地,启动当前节点为主节点包括以下步骤检查当前节点是否启动了数据库服务,如已启动则首先关闭;放弃从共享盘的主角色,将其改为从角色;持有主共享盘的主角色;映射DRBD共享盘至具有主角色的DRBD共享盘;创建软链接指向具有主角色的DRBD共享盘的数据文件目录;正常启动当前节点数据库。优选地,启动当前节点为从节点包括以下步骤检查当前节点是否启动了数据库服务,如已启动则首先关闭;放弃主共享盘的主角色,将其改为从角色;持有从共享盘的主角色;映射DRBD共享盘至具有从角色的DRBD共享盘;创建软链接指向具有从角色的DRBD共享盘的数据文件目录;启动当前节点数据库到只读打开模式;启动Dataguard的实时日志应用。根据本专利技术的另一个方面,提供一种保持Oracle数据库服务高可用的系统,该系统包括Dataguard模块,该模块与DRBD之间组织搭配,在各数据库节点中分别创建有两块DRBD共享盘,用于存储各数据库节点中的差异性数据,所述两块DRBD共享盘分别定义为主共享盘和从共享盘;DRBD数据保护模块,该模块利用DRBD内置的C型完全同步协议保持主从节点的数据的一致性; 角色控制模块,该模块通过检测当前节点的DRBD主共享盘的角色,启动当前节点为主节点或从节点,从而实现数据库主从节点的切换和启动。优选地,该系统进一步包括虚拟IP模块,该模块为各数据库节点分配虚拟IP ;对数据库节点进行心跳检测,判断数据库主、从节点是否存活,当发现主节点不可访问时,自动将虚拟IP飘移至从节点,并切换从节点的身份为主节点;当启动数据库节点服务器时,检查该节点的数据库服务是否可用,若不可用,则启动当前节点为主节点或从节点。优选地,所述差异性数据包括控制文件、联机日志文件。本专利技术为解决上述现有解决方案中的不足,在传统Dataguard在基础上引入了第三方开源软件DRBD和Keepalived,组合构建了一套易维护,实现数据库服务高可用性的全面解决方案。本方案在保留Oracle Dataguard特性在保护数据方面的所有功能的同时,有下列功能上的增强摆脱了原有Dataguard切换操作的专业性,基本避免了数据库层的操作,将角色切换的步骤转换为操作系统层的命令,进行一系列封装之后,使得普通SA人员也可以轻松执行,降低原有Dataguard环境的维护复杂度;完全规避了 Dataguard中failover切换对数据库环境的破坏,减少了后期的维护成本;提供了虚拟IP,使得前端的应用程序不会因后端数据库层服务的变动而进行修改,减少了维护操作、降低了耦合度;自动检测功能,自动角色切换,实现了数据库服务的高可用性。附图说明图I示出根据本专利技术实施例的一种保持Oracle数据库服务高可用的实现方法的流程图。图2示出根据本专利技术实施例的一种保持Oracle数据库服务高可用的系统的结构图。图3示出根据本专利技术实施例的一种保持O本文档来自技高网
...

【技术保护点】
一种保持Oracle数据库服务高可用的实现方法,其特征在于,该方法包括:为各数据库节点分配虚拟IP;对数据库节点进行心跳检测,判断数据库主、从节点是否存活,当发现主节点不可访问时,自动将虚拟IP飘移至从节点,并切换从节点的身份为主节点。

【技术特征摘要】

【专利技术属性】
技术研发人员:潘海东梅春李丙洋
申请(专利权)人:互动在线北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1