赖如勤
(福建省烟草公司南平市公司 信息中心,福建 南平 353000)
基于Redo log的复制技术实现跨平台的数据库容灾应用研究
赖如勤
(福建省烟草公司南平市公司 信息中心,福建 南平 353000)
文中针对Oracle数据库跨平台容灾的目的,通过了解各种数据库复制解决方案,对各种复制技术进行分析和对比。研究基于Redo log复制技术的数据库复制软件原理。结合模拟常用系统环境进行方案设计的试验,得出基于Redo log复制技术的数据库备份方式,不仅具有高效的资源利用、跨平台数据库同步、主备库双活、断点续传等功能,可以实现Oracle数据库的高可用、提高保护数据的安全性、降低业务系统中断时间、减少硬件设备投入成本等迫切需求。而且支持跨平台容灾,为将来核心生产数据库从小型机平台转型到X86架构平台奠定基础。
Oracle;数据库;Redo log;跨平台容灾
随着信息化技术的广泛应用,各行各业已经形成了“业务依赖信息化、管理依靠信息化、决策需要信息化”的格局。在这样的时代背景下,数据成为了企业宝贵的资源,重要性不言而喻。尤其在大型的商务系统中,要支持成千上万用户同时访问和7*24小时不间断的运行要求,如何保证业务连续性及数据的可靠性是一项重要的研究课题。
为了提供高性能、高可靠性的保护数据,以前大部分重要的生产数据库均采用小型机来保障业务的连续性和稳定性。而如今X86架构服务器的发展日新月异,其性能已经超越了传统小型机,稳定性也得到非常大的改善。而无论是硬件成本还是维护成本都远远低于小型机。在这种发展趋势下,使用X86架构的数据库替换原有小型机数据库是早晚且必然的。但是在各方面的压力和条件下,去小型机的道路却是困难重重。
1.1 基于存储层复制技术的解决方案
该解决方案是通过基于SAN的存储设备之间进行复制,复制针对每个IO进行,复制的数据量比较大。系统可以实现数据的同步或异步两种方式的复制。对大数据量的系统来说有很大的优势(每天日志量在60 G以上)但是对主机、操作系统、数据库版本等要求必须一致,没办法做到跨平台跨数据库的容灾需求。
1.2 基于数据库同步软件的解决方案
通过在生产中心和灾备中心的服务器上安装专用的数据复制软件,通过分析Redo log。两中心间使用TCP/IP网络连接作为数据通道。可以在服务器层增加应用远程切换功能软件,从而构成完整的应用级容灾方案。这种数据复制方式相对投入较少,主要是软件的采购成本,兼容性较好,可以兼容不同品牌的服务器和存储设备,较适合硬件组成复杂的用户。
1.3 解决方案应用现状分析
目前,国内外常用的数据容灾方案大致分为3种类型:一是通过跨数据中心的数据库集群,该方案优点是实现集群内多套数据库集合对外提供服务。但缺点是对链路的延迟和要求很高,基本需要多条裸光纤,远距离下能以实现,且成本非常高。一般更多用于同城双活数据中心,较少单纯用于容灾;二是通过存储同步,将底层存储数据复制到容灾中心,需要时再挂载。Veritas、EMC、DELL、HP等软硬件厂商有基于软件和硬件层的数据同步产品,优点是可以做到完全抛开数据库级的做到更为底层的一致性的数据传输。但是不能保证数据的可用性;三是通过数据库复制软件,将本地生产数据库异步或同步复制到容灾中心。该方案在目前数据库容灾中较为常用。市场上有许多相同或不同方式实现的软件产品,如Oracle针对自家数据库复制免费的Data guard和单独收费的Golden Gate、支持多平台复制的DSG公司的RealSync和DELL的SharePlex等。
目前常用基于数据库复制的软件均采用分析Redo Log日志的方式实现。只不过在设计上有的只能在小型机和X86架构之间,或是不同的数据库软件之间进行复制,有的却能同时实现;有的RPO较长,有的却能达到秒级甚至是同步。根据作者对多个复制软件的了解,最终选择了国产的Cyphy BDS软件进行仔细研究。该软件能够实现Oracle数据库在小型机和X86架构之间进行复制,且能保证秒级的RPO。
2.1 Cyphy BDS软件基本介绍
BDS软件通过在线分析Oracle redo log获得交易语句和数据,完成schema或table级别的数据复制以及full database级别的复制。区别于早期的以SQL语句为单位的日志处理、传输技术。使用DBS对日志的整合和传输以“交易”为单位,无需处理复杂的“回滚”机制。使用该技术,在拥有高性能的同时还能够更好的保证数据复制的一致性和完整性。
BDS的机制无需等待Oracle redo log文件归档之后再进行处理,而是在线读取其数据块内容。读取的间隔时间可以用参数设定,以秒为单位。不需要传输Oracle redo log的全部内容到目的端,除指定复制对象(数据表)相关的DML/DDL操作之外,其他的信息不做处理。配置时用户需要打开数据库的supplemental logging和force logging参数以获取完整的数据信息。
2.2 复制对象和数据定位
2.2.1 复制对象的级别
支持两种级别的复制:一种是基于用户(schema)级别;另一种是基于表(table)级别。数据复制时需要设定复制对象的映射关系、用户对用户、表对表。映射配置中源和目标对象的名称和结构都可以不同,例如将生产服务器A1用户下的数据复制到容灾服务器的B1用户下。所有的映射都在逻辑对象级别,不需要考虑表空间或存储参数。
2.2.2 复制的数据定位技术
支持两种数据定位技术,一种是Where字句定位技术,另一种是Rowid定位。所谓的数据定位技术是指源端表中(每)一行记录和目标端相对应记录之间的映射方法,或者说寻址方式。
Where方式通过子句条件查询的来定位DML操作的目标行。这种方法需要表带有主键索引,如果没有主键,则需要通过附加日志获取需要的信息,并检索记录的全部字段值,因此复制表中不能有完全重复的记录。在数据修改较多或者表内行数较多的应用环境,特别是Update操作频繁的情况下,该方式效率不高。
Rowid定位技术则以Oracle表中记录的rowid为参照进行复制数据定位。系统在数据初始化过程中会自动创建源端数据行和目标端数据行的rowid mapping映射文件,复制时通过检索该文件找到DML操作的目标行。Rowid定位技术在处理Update和Delete操作时具有一定的性能优势。
2.2.3 SQL语句的过滤和转换
SQL语句的过滤功能主要用于数据表的逻辑备份,能够识别Truncate和Drop等有一定风险的SQL操作,用户可以选择将这些语句屏蔽复制,也可以选择将目标端需要处理表通过rename的方式备份起来。这样可以有效地防止人为误操作造成的数据破坏。
SQL语句转换功能则有更多的用途。传统的复制软件要求源端和目标端数据库的表在功能和结构上完全相同。但是很多实际的应用环境下,例如CRM和交易系统、生产系统和统计系统、生产系统和数据仓库之间的数据交换无法做到结构完全相同的表对表复制。因此传统的复制技术除了容灾备份应用之外,很难解决不同应用系统之间数据实时“集成—交换”的问题。
2.2.4 源端和目的端缓存
缓存可以分为两级:第一级在复制源端,第二级在目的端。从Redo log里采集的交易的信息生成缓存文件后,首先被放到源端的缓存目录下;然后经过网络通讯进程处理被发送到目的端系统下的缓存目录保存;最后由装载进程负责装载到目的端数据库中。
2.2.5 文件的格式和大小
交易信息以文件为单位进行传输、缓存和装载,该文件为二进制格式,其内部的表达方式与Oracle内部处理方式相类似,避免了很多复杂的信息转换,因此具有较高的执行效率。
缓存文件的生产量大约是实际产生Redo log日志量的1/3~1/4。BDS不设置缓存空间控制机制,用户可以根据每天交易产生的Redo log日志量和以上比例计算需要预留的缓存空间。
2.3 多种复制模式
BDS软件支持一对一、一对多、多对一以及级联复制等多种复制模式。无论在哪种模式下,复制的源和目的系统都是独立的部分,可以单独使用、维护和优化,这也是该软件受到广大用户青睐的重要原因之一。
2.3.1 一对一的复制模式
生产数据库服务器和备份数据库服务器各需部署一个软件进程。生产端的软件进程捕捉数据库日志文件的状态,实时传到备份端的软件进程,备份端的数据库根据数据库日志不断重建数据库。当生产端不可用时,可以将连接切换到备份端。等到生产端恢复之后,软件进程可以反向恢复数据到生产端。
图1 一对一的复制模式
2.3.2 一对多的复制模式
生产数据库服务器只需部署一个软件进程,多个备份数据库服务器各需部署一个软件进程。生产端的软件进程捕捉数据库日志文件的状态,实时传到各个备份端的软件进程。各个备份端根据数据库日志重建各自的数据库。当生产端不可用时,可以将连接切换最近的备份端。等到生产端恢复之后,软件进程可以反向恢复数据到生产端。生产端再重新复制到其他的备份端。
图2 一对多的复制模式
2.3.3 多对一的复制模式
多个生产数据库服务器各需部署一个软件进程,备份数据库服务器只需部署一个软件进程。各个生产端的软件进程捕捉数据库日志文件的状态,实时传到同一个备份端的软件进程。备份端根据不同的数据库日志重建多个数据库。当某个生产端不可用时,可以将连接切换到备份端。等到这个生产端恢复之后,软件进程可以反向恢复数据到生产端。
图3 多对一的复制模式
2.3.4 级联的复制模式
生产数据库服务器和异地备份服务器各部署一个软件进程,本地备份数据库服务器需要部署两个软件进程。同时实现接收来自生产端的数据和推送数据到异地备份端。生产端可以接收来自本地备份端或是异地备份端的反向恢复数据。
图4 级联的复制模式
2.3.5 外挂的复制模式
外挂的复制模式不需要在生产数据库服务器部署软件进程,但是需要能被安装了软件进程的外挂服务器访问生产数据库的Redo log。需要额外一台服务器和异地备份端各部署一个软件进程。外挂服务器通过共享Redo log获取生成端的日志文件状态,实时传到同一个异地备份端的软件进程。异地备份端根据数据库日志重建数据库,当容灾应用系统启动时可以访问该备份的数据库。恢复时外挂服务器使用远程加载的方式,使生成端与异地备份端同步。
图5 外挂的复制模式
采用BDS的解决方案采用开放系统环境和存储设备、硬件设备、操作系统、兼容Oracle数据库9i和10 G版本。源数据库和目标数据库可以运行在不同类型的Unix/Linux/Windows操作系统和Oracle数据库的不同版本上。同时也能够支持不同类型的存储环境。正是在这种灵活的架构之下,使数据库在不同的平台下容灾成为了可能。
基于Redo log复制技术的数据库备份方式,实现了在AIX、HP小型机、X86服务器等异构平台之间实时在线数据同步,为将来数据库从Unix小型机平台迁移到X86架构平台奠定基础。通过软件复制的多个备份数据库可以进行数据报表查询和查询,为以后发展大数据应用奠定了基础。同时随着云计算的日益发展,软件的可靠性和多种复制的灵活性为搭建通灵活的云平台应用提供了有利的技术保障。
[1]华为公司.华为存储双活解决方案技术白皮书V3.1[EB/OL].http://support.huawei.com/enterprise/docinforeader.actioncontentId=DOC1000053005&idPath=7919749|7941815|19899195|19900222| 19900304|21114619,2014.28-32.
[2]迪思杰公司.RealSync技术白皮书-v3[EB/OL]. http://wenku.baidu.com/linkurl=0bgxOZ0DKgyaZCRIo5400XiBU4SOhHFULW5oxM1Meen1yRQHRm-Rw4Zn611z_U7aeTiqNssZgZbp7Sq79Rkp-lv_jM8LAL5lqB0FU4r947Gi,2012.78-85.
[3]戴尔公司.Using Data Replication to Upgrade Your Oracle Database with Minimal Downtime[EB/OL]. https://software.dell.com/docs/using-data-replication -to-upgrade-your-oracle-database-with-minimaldowntime-whitepaper-13735.pdf,2013:115-127.
[4]盖国强.循序渐进ORACLE数据库管理优化与备份恢复[M].北京:人民邮电出版社,2007.
[5]贾洪峰.Oracle Database 11g RAC手册[M].北京:清华大学出版社,2012.
[6]包光磊.临危不惧:Oracle 11g数据库恢复技术[M].北京:电子工业出版社,2012.
[7]弗里曼.Oracle Database 11g RMAN备份与恢复[M].北京:清华大学出版社,2011.
[8]张建勤.基于Oracle数据库安全策略的研究[J].计算机光盘软件与应用,2013(10):98-99.
[9]成雅.基于Oracle Streams的数据库实时备份与恢复技术研究[D].南京:南京航空航天大学,2012: 78-85.
[10]张晓明.大话ORACLE RAC集群高可用性备份与恢复[M].北京:人民邮电出版社,2009.
[11]苏燕强.Oracle分布式数据库及其应用研究[J].计算机应用与软件,2012(3):20-23.
[12]杨辛宝.刘玉.Oracle数据库重做日志文件的分析及其应用[J].信息技术,2011(29):45-47.
[13]贺亚茹.Oracle数据库日志文件损坏时修复方法的实验研究[J].计算机应用,2009(29):98-102.
[14]孙风栋,闫海珍.Oracle 10g数据库系统性能优化与调整[J].计算机技术与发展,2009(2):11-15.
[15]巢子杰.Oracle数据库优化探究[J].软件导刊,2010(2):34-37.
Research and implementation of database disaster cross platform application replication technology based on Redo log
LAI Ru-qin
(Fujian Tobacco Companies Nanping Company Information Center,Nanping 353000,China)
According to the purpose of the disaster based on Oracle database cross-platform and theunderstanding of various database replication solution,a variety of replication techniques are analyzed and compared The research is based on the Redo log database replication software principle of replication technology.Combined with simulation system environment for the experiment of scheme design,A database backup method based on log Redo replication technology is obtained.On one hand,this method has high efficiency of resource utilization,cross-platform database synchronization,advocate for library double live,breakpoint continuingly,and other functions,which can realize the high availability of Oracle database,improve the protection of data security,reduce business system outage time,reduce the hardware cost and other pressing needsOn the other hand,it can support Cross platform disaster recovery and lay the foundation for the future production of the core database from the minicomputer platform transition to X86 platform.
Oracle;database;Redo log;disaster cross-platform
TN915
:A
:1674-6236(2017)02-0005-04
2016-04-09稿件编号:201604088
国家自然科学基金(61202494);2015年度福建省科技计划项目(计算机软件开发及研究)
赖如勤(1969—),女,福建永定人,硕士研究生,工程师。研究方向:计算机技术与应用。