一种保持ORACLE数据库服务高可用的实现方法和系统.pdf

上传人:r7 文档编号:4422779 上传时间:2018-10-01 格式:PDF 页数:12 大小:2.03MB
返回 下载 相关 举报
一种保持ORACLE数据库服务高可用的实现方法和系统.pdf_第1页
第1页 / 共12页
一种保持ORACLE数据库服务高可用的实现方法和系统.pdf_第2页
第2页 / 共12页
一种保持ORACLE数据库服务高可用的实现方法和系统.pdf_第3页
第3页 / 共12页
点击查看更多>>
资源描述

《一种保持ORACLE数据库服务高可用的实现方法和系统.pdf》由会员分享,可在线阅读,更多相关《一种保持ORACLE数据库服务高可用的实现方法和系统.pdf(12页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102810111 A (43)申请公布日 2012.12.05 C N 1 0 2 8 1 0 1 1 1 A *CN102810111A* (21)申请号 201210139205.9 (22)申请日 2012.05.07 G06F 17/30(2006.01) (71)申请人互动在线(北京)科技有限公司 地址 100029 北京市朝阳区安定门外安苑里 1号奇迹财富广场互动百科大厦 (72)发明人潘海东 梅春 李丙洋 (74)专利代理机构北京正理专利代理有限公司 11257 代理人张雪梅 (54) 发明名称 一种保持Oracle数据库服务高可用的实现 方法和系统 。

2、(57) 摘要 本发明涉及一种保持ORACLE数据库服务高 可用的方法。公开了一种保持Oracle数据库服务 高可用的实现方法,该方法包括:为各数据库节 点分配虚拟IP;对数据库节点进行心跳检测,判 断数据库主、从节点是否存活,当发现主节点不可 访问时,自动将虚拟IP飘移至从节点,并切换从 节点的身份为主节点。本发明进一步公开了一种 保持Oracle数据库服务高可用的系统。本发明 特别适用于ORACLE数据库的DATAGUARD特性,通 过与开源软件DRBD和Keepalived的组合搭配,无 论在switchover(计划内切换,无损切换)或者是 failover(计划外切换,有损切换)时,。

3、均可以在不 丢失数据的前提下实现数据库的主从切换,并保 障数据库服务的高可用。 (51)Int.Cl. 权利要求书2页 说明书7页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 7 页 附图 2 页 1/2页 2 1.一种保持Oracle数据库服务高可用的实现方法,其特征在于,该方法包括: 为各数据库节点分配虚拟IP; 对数据库节点进行心跳检测,判断数据库主、从节点是否存活,当发现主节点不可访问 时,自动将虚拟IP飘移至从节点,并切换从节点的身份为主节点。 2.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 当启动数据库节点服务器时。

4、,检查该节点的数据库服务是否可用,若不可用,则启动当 前节点为主节点或从节点。 3.根据权利要求1或2所述的方法,其特征在于,在各数据库节点中分别创建有两块 DRBD共享盘,用于存储各数据库节点中的差异性数据,通过DRBD内置的C型完全同步协议 保持主从节点的数据的一致性,所述两块DRBD共享盘分别定义为主共享盘和从共享盘,通 过检测当前节点的DRBD主共享盘的角色,启动当前节点为主节点或从节点,从而实现数据 库主从节点的切换或启动。 4.根据权利要求3所述的方法,其特征在于,通过检测当前节点的DRBD主共享盘的角 色,启动当前节点为主节点或从节点包括: 检测当前节点的DRBD主共享盘的角色,。

5、若当前节点的DRBD磁盘状态中显示另一节点 的身份为从节点,则启动当前节点为主节点,若当前节点的DRBD磁盘状态中显示另一节点 的身份为主节点,则启动当前节点为从节点。 5.根据权利要求4所述的方法,其特征在于,启动当前节点为主节点包括以下步骤: 检查当前节点是否启动了数据库服务,如已启动则首先关闭; 放弃从共享盘的主角色,将其改为从角色; 持有主共享盘的主角色; 映射DRBD共享盘至具有主角色的DRBD共享盘; 创建软链接指向具有主角色的DRBD共享盘的数据文件目录; 正常启动当前节点数据库。 6.根据权利要求4所述的方法,其特征在于,启动当前节点为从节点包括以下步骤: 检查当前节点是否启动。

6、了数据库服务,如已启动则首先关闭; 放弃主共享盘的主角色,将其改为从角色; 持有从共享盘的主角色; 映射DRBD共享盘至具有从角色的DRBD共享盘; 创建软链接指向具有从角色的DRBD共享盘的数据文件目录; 启动当前节点数据库到只读打开模式; 启动Dataguard的实时日志应用。 7.一种保持Oracle数据库服务高可用的系统,其特征在于,该系统包括: Dataguard模块,该模块与DRBD之间组织搭配,在各数据库节点中分别创建有两块 DRBD共享盘,用于存储各数据库节点中的差异性数据,所述两块DRBD共享盘分别定义为主 共享盘和从共享盘; DRBD数据保护模块,该模块利用DRBD内置的C。

7、型完全同步协议保持主从节点的数据的 一致性; 角色控制模块,该模块通过检测当前节点的DRBD主共享盘的角色,启动当前节点为主 权 利 要 求 书CN 102810111 A 2/2页 3 节点或从节点,从而实现数据库主从节点的切换和启动。 8.根据权利要求7所述的系统,其特征在于,该系统进一步包括: 虚拟IP模块,该模块为各数据库节点分配虚拟IP;对数据库节点进行心跳检测,判断 数据库主、从节点是否存活,当发现主节点不可访问时,自动将虚拟IP飘移至从节点,并切 换从节点的身份为主节点;当启动数据库节点服务器时,检查该节点的数据库服务是否可 用,若不可用,则启动当前节点为主节点或从节点。 9.根。

8、据权利要求7所述的系统,其特征在于,所述差异性数据包括控制文件、联机日志 文件。 权 利 要 求 书CN 102810111 A 1/7页 4 一种保持 Oracle 数据库服务高可用的实现方法和系统 技术领域 0001 本发明涉及一种保持ORACLE数据库服务高可用的方法,特别适用于ORACLE数据 库的DATAGUARD特性,通过与开源软件DRBD和Keepalived的组合搭配,无论在switchover (计划内切换,无损切换)或者是failover(计划外切换,有损切换)时,均可以在不丢失数 据的前提下实现数据库的主从切换,并保障数据库服务的高可用。 背景技术 0002 目前ORAC。

9、LE数据库软件的Dataguard特性(以下简称Dataguard)是应用较为普 遍的数据库高可用解决方案,它通过一主(Primary)多从(Standby)的运行机制,当主库出 现故障时,可以通过提升某个从库的角色为新主库的方式,实现数据库服务的高可用。 0003 Dataguard提供有两种故障切换机制,分别应用于不同的场景,操作步骤和实现原 理也略有差异,下面对上述两种切换机制的操作步骤分别进行描述: 0004 A.SWITCHOVER(计划内切换,无损切换)的操作步骤如下: 0005 1).检查Dataguard环境,验证归档文件、初始化参数等是否符合需求; 0006 2).查询主库端。

10、数据库状态,验证是否可执行角色切换; 0007 3).如状态允许,则切换主库身份为Standby; 0008 4).关闭原主库; 0009 5).重新启动原主库到加载(mount)模式; 0010 6).查询从库端数据库状态,验证是否可执行角色切换; 0011 7).如状态允许,则切换从库身份为Primary; 0012 8).打开新主库; 0013 9).原主库启动归档文件接收和应用。 0014 B.FAILOVER(计划外切换,有损切换)的操作步骤如下: 0015 1).检查Dataguard环境,验证归档文件、初始化参数等是否符合需求; 0016 2).取消当前归档应用进程; 0017 。

11、3).执行完成归档应用操作; 0018 4).查询从库数据库状态,验证是否可执行角色切换; 0019 5).如状态允许,则切换从库身份为Primary; 0020 6).打开新主库。 0021 但是,上述方式也有缺憾,主要表现在: 0022 1.操作复杂度高,必须由专业的数据库管理员(DBA)经过培训后才能够处理; 0023 2.执行切换操作时,主库和从库之间需要有交互,无法实现自动无值守的切换; 0024 3.切换操作步骤多,停机时间较长,出现问题的机率大; 0025 4.切换对现有环境影响较大,如执行FAILOVER时,将破坏当前的Dataguard环 境,导致操作后必须重建Datagua。

12、rd环境; 0026 5.无法实现访问IP的统一,由于主从分别为不同的数据库节点,每个节点的物 说 明 书CN 102810111 A 2/7页 5 理IP均不相同,当执行过切换操作后,前端应用连接的数据库服务IP也必须同步变更。 0027 因此,需要提供一种快速、可靠、易于实施和维护、故障快速恢复的数据库服务高 可性综合解决方案。 发明内容 0028 本发明主要解决大型ORACLE数据库软件平台,服务中断导致业务长时间停顿的 问题,针对传统的DataGuard灾备方案无法提供实时全面的高可用服务,故障切换时间长, 并且一旦执行切换,前端的应用程序也必须同步进行修改等不足,通过在现有DataG。

13、uard 环境中引入DRBD(Distributed Replicated Block Device)和Keepalived软件的方式,提 供一种快速、可靠、易于实施和维护、故障快速恢复的数据库服务高可性综合解决方案。 0029 根据本发明,提供一种保持Oracle数据库服务高可用的实现方法,该方法包括: 0030 为各数据库节点分配虚拟IP; 0031 对数据库节点进行心跳检测,判断数据库主、从节点是否存活,当发现主节点不可 访问时,自动将虚拟IP飘移至从节点,并切换从节点的身份为主节点。 0032 优选地,该方法进一步包括: 0033 当启动数据库节点服务器时,检查该节点的数据库服务是否可。

14、用,若不可用,则启 动当前节点为主节点或从节点。 0034 优选地,在各数据库节点中分别创建有两块DRBD共享盘,用于存储各数据库节点 中的差异性数据,通过DRBD内置的C型完全同步协议保持主从节点的数据的一致性,所述 两块DRBD共享盘分别定义为主共享盘和从共享盘,通过检测当前节点的DRBD主共享盘的 角色,启动当前节点为主节点或从节点,从而实现数据库主从节点的切换或启动。 0035 优选地,通过检测当前节点的DRBD主共享盘的角色,启动当前节点为主节点或从 节点包括: 0036 检测当前节点的DRBD主共享盘的角色,若当前节点的DRBD磁盘状态中显示另一 节点的身份为从节点,则启动当前节点。

15、为主节点,若当前节点的DRBD磁盘状态中显示另一 节点的身份为主节点,则启动当前节点为从节点。 0037 优选地,启动当前节点为主节点包括以下步骤: 0038 检查当前节点是否启动了数据库服务,如已启动则首先关闭; 0039 放弃从共享盘的主角色,将其改为从角色; 0040 持有主共享盘的主角色; 0041 映射DRBD共享盘至具有主角色的DRBD共享盘; 0042 创建软链接指向具有主角色的DRBD共享盘的数据文件目录; 0043 正常启动当前节点数据库。 0044 优选地,启动当前节点为从节点包括以下步骤: 0045 检查当前节点是否启动了数据库服务,如已启动则首先关闭; 0046 放弃主。

16、共享盘的主角色,将其改为从角色; 0047 持有从共享盘的主角色; 0048 映射DRBD共享盘至具有从角色的DRBD共享盘; 0049 创建软链接指向具有从角色的DRBD共享盘的数据文件目录; 说 明 书CN 102810111 A 3/7页 6 0050 启动当前节点数据库到只读打开模式; 0051 启动Dataguard的实时日志应用。 0052 根据本发明的另一个方面,提供一种保持Oracle数据库服务高可用的系统,该系 统包括: 0053 Dataguard模块,该模块与DRBD之间组织搭配,在各数据库节点中分别创建有两 块DRBD共享盘,用于存储各数据库节点中的差异性数据,所述两块。

17、DRBD共享盘分别定义为 主共享盘和从共享盘; 0054 DRBD数据保护模块,该模块利用DRBD内置的C型完全同步协议保持主从节点的数 据的一致性; 0055 角色控制模块,该模块通过检测当前节点的DRBD主共享盘的角色,启动当前节点 为主节点或从节点,从而实现数据库主从节点的切换和启动。 0056 优选地,该系统进一步包括: 0057 虚拟IP模块,该模块为各数据库节点分配虚拟IP;对数据库节点进行心跳检测, 判断数据库主、从节点是否存活,当发现主节点不可访问时,自动将虚拟IP飘移至从节点, 并切换从节点的身份为主节点;当启动数据库节点服务器时,检查该节点的数据库服务是 否可用,若不可用,。

18、则启动当前节点为主节点或从节点。 0058 优选地,所述差异性数据包括控制文件、联机日志文件。 0059 本发明为解决上述现有解决方案中的不足,在传统Dataguard在基础上引入了第 三方开源软件DRBD和Keepalived,组合构建了一套易维护,实现数据库服务高可用性的全 面解决方案。本方案在保留Oracle Dataguard特性在保护数据方面的所有功能的同时,有 下列功能上的增强: 0060 摆脱了原有Dataguard切换操作的专业性,基本避免了数据库层的操作,将角色 切换的步骤转换为操作系统层的命令,进行一系列封装之后,使得普通SA人员也可以轻松 执行,降低原有Dataguard。

19、环境的维护复杂度; 0061 完全规避了Dataguard中failover切换对数据库环境的破坏,减少了后期的维护 成本; 0062 提供了虚拟IP,使得前端的应用程序不会因后端数据库层服务的变动而进行修 改,减少了维护操作、降低了耦合度; 0063 自动检测功能,自动角色切换,实现了数据库服务的高可用性。 附图说明 0064 图1示出根据本发明实施例的一种保持Oracle数据库服务高可用的实现方法的 流程图。 0065 图2示出根据本发明实施例的一种保持Oracle数据库服务高可用的系统的结构 图。 0066 图3示出根据本发明实施例的一种保持Oracle数据库服务高可用的实现方法的 基础。

20、架构图。 具体实施方式 说 明 书CN 102810111 A 4/7页 7 0067 下面结合附图和具体实施方式对本发明作进一步描述。 0068 图1示出根据本发明实施例的一种保持Oracle数据库服务高可用的实现方法的 流程图。 0069 在步骤S11中,为各数据库节点分配虚拟IP。 0070 在步骤S12中,对数据库节点进行心跳检测,判断数据库主、从节点是否存活,当 发现主节点不可访问时,自动将虚拟IP飘移至从节点,并切换从节点的身份为主节点。 0071 根据本发明实施例,当启动数据库节点服务器时,检查该节点的数据库服务是否 可用,若不可用,则启动当前节点为主节点或从节点。 0072 具。

21、体地,在各数据库节点中分别创建有两块DRBD共享盘,用于存储各数据库节点 中的差异性数据,通过DRBD内置的C型完全同步协议保持主从节点的数据的一致性,所述 两块DRBD共享盘分别定义为主共享盘和从共享盘,通过检测当前节点的DRBD主共享盘的 角色,启动当前节点为主节点或从节点,从而实现数据库主从节点的切换或启动。 0073 通过检测当前节点的DRBD主共享盘的角色,启动当前节点为主节点或从节点包 括:检测当前节点的DRBD主共享盘的角色,若当前节点的DRBD磁盘状态中显示另一节点的 身份为从节点,则启动当前节点为主节点,若当前节点的DRBD磁盘状态中显示另一节点的 身份为主节点,则启动当前节。

22、点为从节点。 0074 启动当前节点为主节点包括以下步骤:检查当前节点是否启动了数据库服务,如 已启动则首先关闭;放弃从共享盘的主角色,将其改为从角色;持有主共享盘的主角色;映 射DRBD共享盘至具有主角色的DRBD共享盘;创建软链接指向具有主角色的DRBD共享盘的 数据文件目录;正常启动当前节点数据库。 0075 启动当前节点为从节点包括以下步骤:检查当前节点是否启动了数据库服务,如 已启动则首先关闭;放弃主共享盘的主角色,将其改为从角色;持有从共享盘的主角色;映 射DRBD共享盘至具有从角色的DRBD共享盘;创建软链接指向具有从角色的DRBD共享盘的 数据文件目录;启动当前节点数据库到只读。

23、打开模式;启动Dataguard的实时日志应用。 0076 图2示出根据本发明实施例的一种保持Oracle数据库服务高可用的系统的结构 图。 0077 该系统包括:Dataguard模块,该模块与DRBD之间组织搭配,在各数据库节点中分 别创建有两块DRBD共享盘,用于存储各数据库节点中的差异性数据,所述两块DRBD共享盘 分别定义为主共享盘和从共享盘。DataGuard模块以传统的ORACLE DataGuard特性为基 础,需要首先部署一套Dataguard环境,为了与DRBD之间组织搭配,数据库的相关文件应放 置于DRBD共享盘中,考虑到大型数据库平台的数据规模较大,如将所有文件均放置于。

24、DRBD 共享盘,则DRBD共享盘之间的交互将会非常的频繁,这可能会对磁盘I/O能力和网络带宽 均带来考验,为了降低DRBD共享盘上保存的数据量,通过对Dataguard环境中各类文件的 抽象处理,可以发现Dataguard环境中主从两端差异主要是在控制文件、联机日志文件两 种类型。 0078 DRBD数据保护模块,该模块利用DRBD内置的C型完全同步协议保持主从节点的数 据的一致性。确保即使主端意外宕机也不会丢失数据。通过DRBD确保Dataguard环境中 的主(primary)角色永远固定存在(相当于避免了failover的情形),实现了无论何时、何 种情况下执行切换操作,均不会对Dat。

25、aguard环境造成影响。 说 明 书CN 102810111 A 5/7页 8 0079 角色控制模块,该模块通过检测当前节点的DRBD主共享盘的角色,启动当前节点 为主节点或从节点,从而实现数据库主从节点的切换和启动。通过Bash Shell实现一系列 功能。 0080 根据本发明实施例,该系统进一步包括:虚拟IP模块,该模块通过Keepalived实 现三项功能: 0081 虚拟IP:为各数据库节点分配虚拟I,P前端应用只要连接虚拟IP即可,而不用关 心该IP究竟在哪个数据库节点; 0082 心跳检测:判断数据库的主和从节点是否存活,当发现主节点不可访问时,自动将 虚拟IP飘移至从节点,。

26、并切换从节点的身份为主节点; 0083 启动数据库服务:当启动数据库节点服务器时,检查该节点的数据库服务是否可 用,若不可用,则启动当前节点为主节点或从节点。 0084 图3示出根据本发明实施例的一种保持Oracle数据库服务高可用的实现方法的 基础架构图。具体实施方式如下: 0085 1、创建DRBD共享磁盘 0086 DRBD数据保护模块使用DRBD内置的c型完全同步协议,保持主端和从端数据的一 致性,确保即使主端意外宕机也不会丢失数据。通过DRBD确保Dataguard环境中的primary 角色永远固定存在,相当于避免了failover的情形,实现了无论何时、何种情况下执行切 换操作,。

27、均不会对Dataguard环境造成影响。 0087 根据上述的DRBD数据保护模块的功能,由DRBD提供主从节点间数据的一致性保 护,考虑到ORACLE数据库作为大型数据库软件,通常提供大量数据的存储服务,如果将所 有ORACLE数据库的相关文件均放置于DRBD共享磁盘,那么不仅需要超大的DRBD共享磁 盘,而且由于主从之间相互同步的需要,对网络层的要求也会比较高。 0088 通过对数据文件类型的分析,我们注意到ORACLE Dataguard的主节点和从节点之 间,文件的差异主要体现在下列三种文件: 0089 主节点 从节点 Redolog Files 没有或有却未使用 没有或有却未使用 S。

28、tandby Redolog Files Control Files Standby Control Files 0090 这两类文件数量很少而且文件大小一般都不大(规模以Gb计),其它如 datafile、spfile、archivelog files,密钥文件等在主从两端均相同(spfile小有差 异但不影响主从身份),基于它的这个特点,我们可以设计每个数据库节点中均创建两块 DRBD共享磁盘,并将这两块DRBD共享磁盘分别定义为主共享盘(pridata)和从共享盘 (stddata),仅用于保存主节点和从节点上的这几种不同类型的文件,这样设计的优点在于 能够大大降低DRBD盘同步的数据量。

29、,进而提高性能。 0091 2、配置Dataguard环境 0092 按照ORACLE的标准步骤配置Dataguard环境,唯一需要注意的是,在存储相关数 说 明 书CN 102810111 A 6/7页 9 据文件时,除主从节点中的Redolog Files、Control Files、Standby Redolog Files和 Standby Control Files几类文件保存在DRBD的共享盘外,其它文件则保存在本地存储设 备中,如图3所示。 0093 3、创建控制模块 0094 主从节点中的控制模块完全相同,该控制模块由Bash Shell编写,主要实现下列 功能: 0095 A。

30、.检测当前服务器是否启动了数据库服务,如已启动则首先关闭; 0096 B.检测当前节点DRBD主共享盘pridata的角色,如果另一节点的角色是从 (secondary),则执行启动当前节点为主(primary)节点的操作,后续步骤如下: 0097 1).放弃DRBD从共享盘stddata的主角色,改为从角色; 0098 2).持有DRBD主共享盘pridata的主角色; 0099 3).映射DRBD共享盘至具有主角色的DRBD共享盘; 0100 4).创建软链接指向具有主角色的DRBD共享盘的数据文件目录; 0101 5).正常启动当前节点数据库。 0102 C.如果当前节点DRBD主共享盘。

31、pridata的角色状态显示另一节点的角色为主角 色,则执行启动当前节点为从节点的操作,后续步骤如下: 0103 1).放弃DRBD主共享盘pridata的主角色,改为从角色; 0104 2).持有DRBD从共享盘stddata的主角色; 0105 3).映射DRBD共享盘至具有从角色的DRBD共享盘; 0106 4).创建软链接指向具有从角色的DRBD共享盘的数据文件目录; 0107 5).启动当前节点数据库到只读打开模式; 0108 6).启动Dataguard的实时日志应用; 0109 4、配置虚拟IP模块:安装和配置Keepalived,通过Keepalived实现三项功能: 0110。

32、 虚拟IP:前端应用只要连接虚拟IP即可,而不用关心该IP究竟在哪个数据库 节点; 0111 心跳检测:判断数据库的主和从节点是否存活,当发现主节点不可访问时,自动 将虚拟IP飘移至从节点,并切换从节点的身份为主节点。 0112 启动数据库服务:当操作系统启动时调用keepalived,由keepalived调用角色 控制模块中的功能,启动数据库服务。 0113 虽然keepalived是最后配置,但实现上对于整个解决方案来说,却是先调用 keepalived,再由keepalived调用其它模块。 0114 虚拟IP的配置和启动数据库服务均是在keepalived软件的配置文件haresou。

33、rce 中进行配置,注意上述两项功能对应的脚本程序应该位于keepalived能够访问到的路径 下。本发明使ORACLE Dataguard故障切换(角色切换)环节避开了主/从两节点数据库 层面的交互,并尽可能的减化了DB层的操作,将切换的主要工序前置到OS层,提高了切换 的响应速度,同时降低了操作门槛,使得具有系统操作权限的普通操作人员,也可以通过调 用角色控制模块中的脚本,执行数据库主从身份的切换。 0115 通过与开源软件DRBD+Keepalived的组合搭配,可以在不丢失数据(无论是角色 切换switchover或者是故障切换failover)的前提下实现数据库的主从切换,并能够保障。

34、 说 明 书CN 102810111 A 7/7页 10 数据库服务的高可用,无须前端应用程序进行同步修改,提供一种快速、可靠、易于实施和 维护、故障快速恢复的数据库服务高可性综合解决方案。 0116 应当理解,以上借助本发明的优选实施例对本发明的技术方案进行了详细说明。 本领域的普通技术人员在阅读本发明说明书的基础上可以对实施例所记载的技术方案进 行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方 案的本质脱离本发明各实施例技术方案的精神和范围。本发明的保护范围仅由随附权利要 求书限定。 说 明 书CN 102810111 A 10 1/2页 11 图1 图2 说 明 书 附 图CN 102810111 A 11 2/2页 12 图3 说 明 书 附 图CN 102810111 A 12 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1