APP下载

基于RAC与DATAGUARD技术的数据库高可用性研究

2014-07-17亓微微

中国校外教育(下旬) 2014年4期
关键词:高可用性中断应用程序

亓微微

目前,国内外对数据库高可用性领域的研究,主要还是集中在双机集群、RAC、DATAGUARD这几种独立技术的研究上。而事实上,每一种单独的技术,都有其自身的弱点,仅仅依靠一种技术,是无法将数据库的高可用性演绎得淋漓尽致的。本文主要介绍RAC和DATAGUARD两种技术各自的特点,然后论证结合RAC与DATAGUARD技术在高可用性领域的可行性方案。然后分别从主机,存储等各方面模拟出数据库故障,来验证此高可用性方案的可靠性,证明此方案优于目前业内常用的一些数据库高可用性方案。

RAC技术DATAGUARD技术双机集群本文首先讲解RAC与DATAGUARD技术的各自原理,然后研究利用ORACLE数据库的RAC和DATAGUARD技术,实现在企业级数据库高可用性领域的应用。

要解决的关键技术问题:

(1)实现RAC技术的failover功能

Failover功能,是RAC技术的核心功能之一。即当RAC数据库的某一个节点出现故障后,这个故障节点上运行的所有应用会自动切换至其它节点上继续运行,整个切换过程对用户而言是透明的。

(2)实现RAC技术和DATAGUARD技术的完美结合

RAC技术,可以解决除了存储故障外的所有问题。如果不巧恰恰是存储出现故障,这时,就可以借用DATAGUARD技术,将数据库系统切换至备用主机,保持业务的正常运行。在这个物理架构中,DATAGUARD的主库是一套RAC数据库,而DATAGUARD备库却是一个单节点的数据库,如何将RAC数据库切换到单节点的备库是需要解决的关键技术难题。

1 Oracle RAC透明切换特性

TAF,英文全称:Transparent Application Failover,是net层透明故障转移,是一种被动的故障转移方式,它主要依赖于VIP。可以通过客户端和服务器端两种方式配置TAF的策略。

下面主要介绍客户端配置TAF的方式:

控制TAF策略的参数说明:

FAILOVER:

Failover控制开关(on/off),如果为off,不提供故障切换功能,但连接时会对address列表进行依次尝试,直到找到可用为止。它有两种类型:session/select。

Session:

提供session级别的故障切换。会话可以正常切换到其他节点,但查询没有继续完成,也就是说查询的结果没有全部出来,只出来数据库关闭前的数据。

Select:

提供select级别的故障切换。切换过程对查询语句透明,但事物类处理需要回滚操作。

RETRIES:

故障切换时重试次数。

DELAY:

故障切换时重试间隔时间。

2 DATAGUARD技术原理

Oracle dataguard是当前保护企业级核心数据最有效的解决方案,它能够在7*24的基础上可用,无论是否发生灾难或其他中断,oracle dataguard技术都是实现企业业务连续性基础架构中的一个关键因素。

Oracle dataguard使备用数据库保持为与生产数据库在事务上一致的副本。这些备用数据库可位于距生产数据中心数千里以外的远程灾难恢复[6]站点。当生产数据库由于计划中断或意外中断而变得不可用时,dataguard可以将任意备用数据库切换为生产角色,从而使用与中断相关的停机时间送到最小,并防止任何的数据丢失。

Dataguard技术支持两种不同的备用数据库,分别是物理备用数据库(也称重做日志应用备库)和逻辑备用数据库(也称SQL重用数备库)。无特殊说明,本文重点介绍物理备用数据库。

物理备用数据库通过接收,应用来自主数据库的重做日志,实现与主数据库的数据同步。它在物理上与主数据库具有相同的数据块,因而数据库模式都是相同的。

3 RAC+DATAGUARD方案的理论研究

在本方案中,我们的主数据库是一个RAC数据库,而基于方案成本的考虑,备用数据库是一个单节点的数据库。如果可能,备用数据库也可以是一个RAC数据库。

在正常情况下,如图3.1所示,所有的应用程序都分别连接到主RAC数据库的两个实例上,同时开启RAC的负载均衡和透明切换功能,应用程序必须使用VIP来连接数据库。应用程序的事务产生的任何数据变化,都会通过dataguard机制同步至备用数据库上,使备用数据库始终与主RAC数据库保持一致。

如果主RAC数据库的某个节点出现类似应用故障,主机故障,网络故障,此时,该节点上的VIP会自动漂移至该RAC数据库的其他节点上,已经连接在发生故障的节点上的会话,会通过透明切换的功能,将这些会话转移至其他安全的节点上继续运行。而这些错误的发生,对应用程序而言没有任何影响,不需要做任何修改,应用程序就可以继续在主RAC数据库上继续运行。

如果主RAC数据库的存储设备出现故障,此时,则主RAC数据库将完全停止,需要对主RAC数据库的存储设备进行恢复才可以继续使用,同时,应用程序也将全部中断,会影响到业务的继续运行。这时,我们可迅速激活备用数据库(因为备用数据库的数据与主RAC数据库的数据始终保持一致,所以激活备用数据库,即可以恢复业务。),然后修改应用程序的数据库连接串,将连接串地址从以前的主RAC数据库地址修改为现在的备用数据库地址,这样就可以在最短的时间内恢复业务。研究结论:

当主RAC数据库出现应用,主机,网络等方面的故障时,此方案可以做到0业务中断;而当主RAC数据库出现存储方面的故障时,此方案需要临时中断业务。业务中断时间=max(备用数据库激活时间,应用程序的数据库连接串修改时间)。

在极限情况下,此数据库高可用性方案也会业务中断,但此方案的业务中断时间远远低于以前的高可用性方案。

4测试RAC+DATAGUARD高可用性方案的容灾能力

4.1模拟主RAC库的主机故障测试方案的容灾能力

(1)问题提出

当主RAC数据库的某个节点主机出现故障,如:CPU,磁盘,内存等故障,导致该节点停机,此时,连接在这个节点上运行的会话是否会被中断?

(2)解决方案

在Oracle RAC环境下,在配置TAF(Transparent Application Failover)之后,如果一个节点上的实例出现了故障,Oracle会自动将会话漂移到另一个实例上,保持业务的正常运行。

前面已经介绍过,配置RAC的透明切换功能有两种方式,在客户端配置或在服务器配置。下面在客户端的tnsname.ora文件中配置TAF,内容如下:

ZYXDB =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.203.100.98)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.203.100.99)(PORT = 1521))

(LOAD_BALANCE = yes)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = zyxdb)

endprint

猜你喜欢

高可用性中断应用程序
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
超长公路隧桥高可用性监控平台方案分析
跟踪导练(二)(5)
千里移防,卫勤保障不中断
校园一卡通服务端高可用性改造实施方案
OpenStack云计算平台高可用性的研究
一种虚拟化集群心跳算法
AT89C51与中断有关的寄存器功能表解
FPGA内嵌PowerPC的中断响应分析