DSG RealSync技术白皮书-v3

DSG RealSync技术白皮书-v3
DSG RealSync技术白皮书-v3

DSG RealSync技术白皮书(数据复制应用)

迪思杰(北京)数码技术有限公司

目录

1为什么需要数据复制 (3)

1.1信息系统存在的问题及需求 (3)

1.1.1数据流通效率低下,企业信息孤岛现象严重 (3)

1.1.2数据报表、查询和数据共享效率低下 (3)

1.2企业需要新的信息架构 (3)

2DSG REALSYNC的技术概览 (4)

2.1采用数据库复制技术 (4)

2.2DSG R EAL S YNC的优势概览 (4)

3REALSYNC工作原理概述 (5)

4日志抓取(DATA CAPTURE) (6)

5日志分析(ANALYZE) (7)

6交易合成(SYNTHESIZE) (7)

7交易传输 (8)

8数据装载 (9)

8.1用DXF数据格式的装载: (10)

8.2R OWID MAPPING实现快速定位 (10)

9OPS/RAC的支持 (11)

10数据完整性保证 (12)

11数据初始化装载 (13)

12选择性复制支持.......................................................................................错误!未定义书签。13支持的复制结构.. (15)

14产品规格 (15)

15模块组成...................................................................................................错误!未定义书签。16典型的FAQ. (16)

1为什么需要数据复制

1.1 信息系统存在的问题及需求

随着计算机应用系统的爆炸式发展,业务量迅速增加,业务种类日益复杂,企业必须管理不断增长的信息流量;随着信息量的急剧增大,核心数据的管理变得日益困难。如何安全、可靠地存储业务数据及满足未来业务数据高速增长的需要;如何有效管理日益增长的业务数据;如何实现业务数据的共享并在现有业务数据之上建立新兴的增值应用,如数据仓库、客户关系管理(CRM)等,成为了各企业建立信息系统的关键所在。

目前,各企业信息系统在数据管理领域存在着普遍的问题:

1.1.1数据流通效率低下,企业信息孤岛现象严重

信息系统的建设主要是以应用为驱动的,是随着各种业务的逐渐建设的。当出现一类新的业务时,一般需要为该业务建设一套业务支撑系统,保存与该业务有关的主要数据。

而这些数据可能同时也需要被其他应用所访问。从而自然就形成了各子系统应用在不同的纵向,管理着不同的业务单元或对象,各个子系统又是相互独立运行,导致形成了一个个“信息孤岛”。这些系统相互之间没有畅通的信息交流与共享,阻碍了企业信息化建设的整体进程。

1.1.2数据报表、查询和数据共享效率低下

为了提高市场竞争力,提高客户满意度,企业需要更复杂的、更灵活的业务统计报告、需要深入的数据挖掘、需要实时的客户查询。而这些大量的统计、查询业务收到现有系统架构的制约,不得不降低效率标准、不得不推迟报告时间、从而导致客户服务质量降低、业务发展情况报告迟缓,业务发展情况不明等问题。

1.2 企业需要新的信息架构

因此,各企业比以往任何时候相比,管理和有效使用这些信息系统的能力高低都更能决定了长期生存和发展能力,因此比以往任何时候,企业都更关注于如下领域:

提高系统运行效率,提高业务报表、提高客户服务质量,并降低客户流失率。

加强企业信息流通、提高企业信息的附加值、进一步挖掘企业信息价值、迅速开发和推广新业务,创造更多收入并保持竞争能力。

提高信息系统业务连续运行能力,提高数据安全保护水平。

2DSG RealSync的技术概览

2.1 采用数据库复制技术

与传统的数据复制技术不同,DSG RealSync技术是针对数据库提供了基于逻辑的交易复制方式。该方式通过直接捕获源数据库的交易,将数据库的改变逻辑复制到目标系统数据库中,实现源系统和目标系统数据的一致性。

2.2 DSG RealSync的优势概览

该技术在复制上存在以下几个特点:

(1)按需复制

查询和统计系统往往不需要所有的原始数据,因此完全可以按需要复制数据。RealSync 系统支持对指定信息的按需复制,减少存储和网络带宽的成本。

(2)多种同步模式

DSG RealSync支持的数据复制模式包括:

a.实时复制:实时更新保证副本系统快速反映源系统的变化,提供账单查询、话单查询

等的及时性。

b.定时复制:包括每月复制、每周复制和每天复制;

c.手工复制:支持操作员指定时间对指定表进行一次完全复制;

(3)对生产系统的低干扰性

DSG实时数据复制技术不需要通过任何数据库的引擎来获取变更数据,而是通过数据库自身的信息获取源系统上的改变并传送给目的系统,不会对生产系统造成性能影响。

(4)系统异构,可提供更多的优化空间

源数据库系统和目的数据库系统的可异构,主要包括索引规则和存储参数(如数据块大小、回滚段等)。

因此可以在目标数据库上根据业务特点进行调整和优化,完全不受源系统的限制。

(5)支持的多种复制策略

RealSync 可以被灵活配置,以支持各种复制策略,支持各种增值应用,如:1:1单向复制;一对多复制;多对一复制等。

3 RealSync 工作原理概述

Source

System Analyze Synthesize Export Import

Load Transactions Application Active Active

如上图所示,RealSync 在Data Source 端和Data Target 端分别安装Agent 进程,Source 端的Agent 进程对ORACLE 日志进行监控,发现改变及时对目标数据库进行更新。 当应用系统在Data Source 端向数据库进行任何操作时时,这些信息都将在Redo Log 中保存,RealSync Agent 通过对实时获取的Log 日志进行分析,获得本次操作的交易指令和交易数据,然后将这些交易指令和交易数据经过格式转化生成DXF 数据格式,并实时通过网络传送到Data Target 系统。

Data Target 系统的RealSync Agent 接收数据库包,经过校验码检查,确认正确的数据库包后,调用Oracle 函数按照交易的先后顺序在Data Target 系统中执行该交易。

4 日志抓取(Data Capture )

RealSync 对数据的抓取是通过安装在Data Source 端的Agent 模块定时分析Oracle Redo Log 来获取Data Source 端的交易类型及数据的。

RealSync Agent 在判断Data Source 端的Oracle 系统是否有新的交易产生时是通过定期检查Oracle Controle file 中记录的当前SCN 号来判断的,这样避免每次检都通过读取log 文件来判断否有新的交易产生时造成的系统影响。

在Controle file 中确认有新的交易产生时,可以同时获得当前的Redo Log 组,以及最新日志在日志文件的最新位置。

RealSync Agent 模块根据这些信息将上次抓取时记录的日志位置与本次读取的最新位置之间的Log 读取并加以分析。然后将这些数据保存在Online Log Cache 文件中,等待下一步作交易合成处理。

RealSync 的优势:

与其他类似日志复制产品相比,RealSync 对日志进行分析,得到交易信息再进行传送;而其他类似产品不对日志作分析,传送全部日志,然后在目标端通过日志作Recover , 这样一来,不仅传送数据量大,而且目标端数据库不能打开。

时间间隔T (可任意设置)

Analyze

Module

Online Log Cache

5日志分析(Analyze)

Oracle数据库的所有更改都记录在日志中,其中记录了对数据库中的每一个变化。

当我们候需要需要了解数据库中所作的交易时,一个最有效实用而又低成本的方法就是分析Oracle数据库的日志文件。

RealSync Agent中集成了DSG的优秀日志分析功能,该功能完全不同于oracle提供的Logminer日志分析工具,在性能和功能上都大大提高,主要体现在系统性能的优化上,大幅度提高日志分析的速度,使得对于高并发业务系统的复制成为可能。

RealSync通过对日志的分析,得到该数据库中的每个SQL指令,并将这些SQL指令生成DXF(DSG Extend Format)格式的表达方式。

DXF格式是DSG公司的专有技术,该技术是DSG公司用来表达SQL指令的方式,该数据格式能够通过DSG的专有转换算法能够直接转换为ORACL的内部数据表达格式,从而在分析和转载时需要最小的转化,提高分析和装载速度,减少资源占用、丰富能够表达的各种数据类型。

6交易合成(Synthesize)

通过ORACLE REDO LOG分析的交易指令存在如下的几个特点:

(1)这些指令是交叉出现的,属于一个交易(Transaction)的多条SQL指令是非连续存储的,多个交易的SQL之间是相互穿插的;

(2)Redo log中记录了所有的commit的交易以及没有commit的交易;

所以,为了提高系统的可控制性、保证逻辑完整性、避免数据丢失,最好将复制的最小单位为一个交易(Transaction),而不是以单个SQL指令为复制单位,这样在Data Target 端的交易装载更加容易控制。

同时,对于复制的数据而言,只有那些Commit的数据对于Data Target端系统是有意义的,而对于那些Rollback的数据无需复制到Data target系统上。

所以RealSync在复制过程中不是复制每个SQL语句,而是对抓取的数据进行交易整合

后以交易(Transaction)为单位进行复制,同时只复制COMMIT的交易。

Online Log Cache

T1/SQL1

T1/SQL2

T1/SQL3 T1 COMMIT T1

T2/SQL1 T2/SQL2

T3/SQL1

传输T2

T2 COMMIT

T3 Rollback

丢弃

如上图所示,在Online Log Cache文件中,包括Commit的交易,没有Commit的交易和Rollback的交易。交易合成模块首先按照交易序号对SOL语句进行划分,每个交易包含多条SOL语句。然后,以交易为单位进行处理,将已经Commit的交易,传至传输处理模块;将未提交的交易保存在本地,一旦通过日志得知保存的未提交交易已提交,立即将该交易发送到传输处理模块;对Rollback的交易作丢弃处理。

RealSync的优势:

RealSync是以交易为单位进行传输的,而不是以SOL语句为单位进行传输的,更容易保证数据的一致性和完整性。

7交易传输

RealSync技术为了保证数据传输的安全、可靠,在传输处理上作了特殊的处理与支持: (1) 数据在传输之前首先存入Data Source端的Cache,传输进程(Export Process)从Cache中读取交易数据封装为TCP/IP数据包传送给Data target端的Import

进程。

(2)在data target端,Import进程在收到传输的交易数据包后,首先存入Queue,然后由Load进程从Queue中严格按照交易的顺序装载交易信息。

Header Body

如上图所示,负责传输的进程(Export Process)从本地队列中按照先进先出的原则抓取需要传输的交易,将交易数据封装成一个数据包后通过TCP/IP协议传递给对端系统。

在封装的数据包的包头部分描述了包的大小。

对端系统在接受到传来的数据包后,首先根据包头描述的包大小进行传输的合法性检查,判断是否传输完整。

8数据装载

在传统的复制技术中,常用的数据装载方式是采用Oracle 的SQL接口,通过Insert、Update、Delete等SQL语句实现数据的装载。这种方式在通用性上很好,但关键在于性能问题非常突出。

SQL语句的执行需要经过parse、plan、格式转换等过程,造成大量的系统开销。尤其是update和Delte操作的大量Where子句操作需要进行复杂的查询定位任务,从而导致装载性能低下,对处理能力的要求比生产系统的还高。

DSG RealSync在设计之初就定位于电信级大数据量系统的应用,因此在装载性能上进行了大幅度的改善,使得装载端的性能和处理能力需求降至最低。

在其中DSG RealSync采用了两个关键的技术提高了装载速度:

(1)采用DXF数据格式的装载;

(2)采用Rowid mapping的方式实现快速定位;

8.1 用DXF数据格式的装载:

DXF(DSG Extend Format)格式是DSG公司的专有技术,该技术是DSG公司用来表达SQL指令的方式,该数据格式能够通过DSG的专有转换算法能够直接转换为ORACL 的内部数据表达格式,从而在分析和转载时需要最小的转化,提高分析和装载速度,减少资源占用、丰富sql语句的表达方式。

Oracle数据库系统在设计上提供了4个层次的接口,其中包括User层,SQL层,Transformation层和I/O层。其结构为:

在这四层当中,当采用SQL接口进行数据装载时,调用的是User层,

而DSG RealSync通过DXF数据格式装载时,调用I/O层直接将数据通过Oracle的最底层函数写入系统中,所以DSG RealSync在装载层上有一定优势;

8.2 Row mapping实现快速定位

对于交易中的操作,存在着大量的Where子句操作,在采用标准SQL语句执行这些操作时,系统需要首先定位目标记录所在的数据文件的位置信息,这将带来大量的索引查询开销,当并发执行数千条指令时,系统的开销将变得非常庞大。

DSG RealSync工具不采用该方式实现装载数据的定位,而是通过ROW Mapping的方式实现记录的快速定位:

当RealSync从源端Log文件中读取交易数据时,将获得该交易对应记录的所在位置,用rowid表示为rowid_ds;

当该交易在目标端装载时,系统不翻译为Where子句,而是去通过保存在目标端的row mapping表获得对应目标端该记录的所在位置rowid,记录为rowid_dt。

从而在目标端装载时通过rowid能够直接定位于该数据需要写入的位置。避免了大量的索引查找时间。

每条记录的row mapping信息是在该记录执行insert操作、sql loader或首次批量同步时建立起来的。

RealSync的优势:

DSG扩展格式DXF(DSG Extend Format)是RealSync产品的一个核心技术,是一种最高效率表示ORACLE记录的数据格式,该格式只需要经过最小的转换过程就能够装载到ORACLE数据库中,并且装载效率非常高。

无需标准SQL语句执行的复杂过程

加快装载速度

对于Update,Delete等带Where子句的交易,可以大幅度提高装载速度

9OPS/RAC的支持

Oracle OPS/RAC是一种多实例同时打开同一个数据库的技术,每个实例共享同一份数据文件和控制文件(控制文件可能有多个,但是内容相同,为每个实例所共享)。一个例外是,每个实例的Redo Log都专属于该实例(如下图所示),但每个实例的所有Redo Log都必须能够被其他实例访问。所有实例的Redo Log一般都保存在共享磁盘中(裸设备或集群文件系统)。

在OPS/RAC的环境下,RealSync Agent需要安装在OPS/RAC一个节点上,RealSync Agent通过控制文件得到每个实例的Redo Log配置,并实时跟踪每个实例的Redo Thread产生的日志,分析日志并将提交的交易发送的目标系统。

在OPS/RAC环境下,多个实例共用一套SCN,每个实例对数据的修改都会引起SCN 的递增改变,RealSync通过SCN在目标端顺序提交交易,来保证数据库的一致。10数据完整性保证

RealSync复制软件保证数据的一致性和完整性的保证主要通过以下几个方面:

保证交易先后顺序:

保证交易的先后顺序:严格按照源端Transaction执行顺序在目标端加载,严格的I/O顺序是保证系统逻辑正确的关键因素,RealSync通过对Transaction的SCN号进行判断,

并严格保证源系统上先Commit的交易在目标端也是先装载。

检查日志跟踪的连续性:

检查日志跟踪的连续性:RealSync在每次log读取结束时,都将记录当前读取的日志的Sequence No,Block No和最后读取的Offset,当下次读取文件时,总是需要检查是否和上次读取的位置严格连续,从而保证对日志分析的完整性。

数据一致性检查:

数据一致性检查:RealSync提供数据一致性检查工具,用来比较源端的记录和目标端的记录是否完全一致。如果出现数据不一致,RealSync将对不一致的部分进行修复。

11数据初始化装载

当系统在初始化过程,或需要重新完成批量数据复制时,RealSync提供海量数据的高速复制功能:

DSG复制功能是对数据实行导出、导入的方式实现的,但该实现不是通过oracle export 和import工具,而是利用DSG RealSync中内置的XEXP/XIMP工具实现的。

其过程不是对数据库底层的存储数据块进行复制,而是将源系统上的已有数据记录从datafile中直接读取并解析成为DXF数据格式,在利用XIMP将DXF数据批量快速装载到Data target系统上。

RealSync调用Oracle的I/O层的API接口批量读取一张表(Table)的记录(每次读多少条是由操作员设定的RealSync系统的Buffer决定的,如果一次读不完,则分为多次读取),然后将读取的记录转化为DXF格式,再将DXF格式表示的一批记录传送到目标端的RealSync Agent进程,目标端进程再调用ORACLE的I/O层的API接口将数据批量写入目标系统中。

对于一个数据库而言,其中有许多张表(Table),RealSync依次将每张表的所有数据按照上述原理复制到目标系统中。

对于xexp 导出过程不是通过Oracle 的标准select 接口,所以其导出速度非常快。

同时,在采用DSG RealSync 实现批量数据装载时,还无需停止源系统上的业务流程。那么RealSync 是如何处理在导出过程中新改变的数据的复制呢?

因此,RealSync 还支持第二阶段的增量数据复制:

当上个步骤的大批量数据完成后,RealSync 再将步骤一过程中新增加的交易重新复制到目标系统。

在过程的工作原理是通过跟踪和分析从上个步骤开始时的所有redo.log 信息,从Log 文件中分析和翻译出这段时间内新增加的记录,然后再将记录在目标系统上插入。

如果在该过程中复制的数据在目标表中已经存在,则RealSync 将首先删除目标系统中的该记录,同时插入新复制的记录。

在这两个过程执行过程中,生产系统的业务可以保持运行状态。无需中断业务。

1011121314151617DXF

Oracle Log

12支持的复制结构

alS

Re ync可以被灵活配置,以支持各种复制策略,支持各种增值应用。如:

单向复制:

从一个数据库向另一个数据库复制;

双向复制:

两个数据库进行互相复制;

广播复制:

由一个数据库向多个数据库复制;

集中复制:

由多个数据库向一个数据库复制;

级联复制:

由A数据库向B数据库复制,同时又

C数据库进行复制。

由B数据库向

产品规格

13

特性描述

工作方式Transaction-Based数据复制

目标系统支持的操作目标系统支持Read-Write操作

支持数据库版本 Oracle

8.0.6

~ Oracle 11g版本

支持数据类型支持Oracle 7 Data Type

支持复制操作类型 DML 语句

可选择性复制

选择整库、user 、表为复制单位 支持的硬件平台

Sun, HP , IBM, x86 支持的操作系统 Solaris, AIX, HP-UX, Linux

支持的存储系统 EMC,IBM,HDS 、HP 、SUN 以及其它通用的SCSI/FC 存

储系统

支持多种复制结构

双向,一对多,多对一 一对一,复制时间间隔

可灵活设置 最大距离

没有限制 对系统性能的影响

占用率<5%。

对主系统CPU 14 典型的FAQ

支持,如将HP-UX 上的Oracle 恢复到IBM AIX 上。传统复制技术,无论是EMC SRDF, IBM PPRC 、H 、VERIT 或者Oracle DataGuard 支持的Oracle 版本?

支持Oracle 8.0.6 Oracle 版本间复制。

持哪些复制模式?

支持一对一,双向,一对多,多对一,和级联复制。

对网络带宽的占用,对源系统资源的占用如何?

使用基于Log 的复制,复制操作集中于对数据的改变。因此,对源数据库系

是否支持异构平台恢复?

P Business Copy XP AS VVR 等都不能支持异构平台的复制。

以上版本,并支持不同 RealSync

统、 RealSync 支持源系统和目标系统间的最大距离?

技术,距离没有限制。

RealSync 正常工作要求的最小网络带宽?

Log ,复制操作集中于数据的改变,对网络源系统和网络的影响较小。根据Oracle 在比较其DataGuard 与EMC SRDF 之间的差别时,提出EMC SRDF 的数据复制量为DataGuard 的7倍。而RealSync 的复制数据量比DataGuard 更小。

RealSync 是基于TCP/IP 的复制系统,借助现有的网络

由于RealSync 直接读取Oracle 的Online Redo 带宽要求较低,对网络带宽的最小要求也根据源系统的数据更新频率而不同。

相关主题
相关文档
最新文档