You are on page 1of 117

Oracle GoldenGate技术交流

XX公司技术沙龙第二期
XXX 2017年3月
Oracle GoldenGate介绍
前GoldenGate公司简介

• 创建于1995年,总部在美国旧金山。
• 数据复制领域的专业公司。
• 全球超过4,000个安装许可,分布在政府、银行、制造、传媒、电信、
证券、医疗和零售等各大行业,其中有多个全球财富500强企业。
• Oracle、IBM、HP、Microsoft、Sybase、Teradata等著名企业建立了
紧密合作关系。
• 中科领新信息技术有限公司是GoldenGate公司中国区总代理和技术
支持中心。
• 2009年被Oracle收购。
GoldenGate是什么?

Oracle GoldenGate 提供异构环境间事务数据的实时、低影响的捕获、


路由、转换和交付

• 实时数据整合市场的领导者
• GoldenGate 给Oracle的数据整合方案带来了在异构平台的快速的,可
扩展的,实时数据整合能力
• GoldenGate 为应用或数据库的提供了在线升级,迁移的能力
GoldenGate产品组件

GoldenGate产品组件 功能
Oracle GoldenGate TDM 主要功能组件
(Transactional Data Management-交易数据管理)
Oracle GoldenGate for Mainframe 使用于主机及大型机(HP Non-Stop
databases and IBM Mainframe)
Oracle GoldenGate Veridata 验证及监控复制两端数据库的数据差异性
Management Pack for Oracle 图形化的配置,管理及监控工具
GoldenGate
Oracle GoldenGate Application 为Base24, Logger for Enscribe, and JMS
Adapters and Flat File 提供的实时数据同步适配器

GoldenGate Studio 图形化配置复制过程的套件


•Management Pack for Oracle GoldenGate 需要安装Oracle Weblogic标准版,需要购买相关的License
GoldenGate TDM介绍

• GoldenGate TDM 是基于日志的实时CDC软件平台,提供异构环境下


大量交易数据的实时捕捉、变换和投递,同时保持亚秒一级的数据延
迟。
• 基于GoldenGate TDM,我们提供高可用/容灾和实时数据集成的解决
方案。
• GoldenGate TDM 采用高内聚低耦合的结构,能够支持多种拓扑结构,
包括一对一,一对多,多对一,多对多,层叠和双向复制。

CDC:Change Data Capture,就是我们通常提到的变化数据捕获


GoldenGate 工作原理
交易数据管理
Transactional Data Management(TDM)
GoldenGate提供异构环境下交易数据的实时捕捉、变换、投递,
主要是支持异构数据库环境下的变化数据同步。
特性: 收益:
实时性 高性能
亚秒一级延迟 能够以低资源消耗完成每秒数千交易的复制

异构环境支持 可扩展
在不同平台和数据库环境下复制数据 开放的结构使客户适应各种异构数据平台

以交易为单位复制 可靠
维护交易一致性 保证数据的连续可用

独立于数据库系统的复制技术 提供7x24服务
不停机,保证业务的连续性,在线升级,迁移数据库系统及
应用
GoldenGate变化数据捕捉的优势

针对SQL SERVER,DB2都提供基于日志的CDC
直接从数据库日志中通过自己的专有程序抽取数据。
支持在备份系统上抓取变化数据。
对一些数据类型如LONG,XML,BLOB都提供了支持。
基于日志的实时数据复制

• 亚秒级复制
• 不依赖源数据库的触发器和规则,对源数据库影响小。
OGG在数据传输方面的优势

• OGG有很好的机制来保证传输的交易一致性和断点续传。
• 事务完整性-事务级粒度
• 只复制成功提交的事务
• 防止源和目标的不一致性
Oracle GoldenGate 架构
Oracle GoldenGate


Oracle GoldenGate


Oracle GoldenGate


Oracle GoldenGate 架构的优势

降低开销和总拥有成本
• 捕获一次即可交付给多个目标做不同用途
• 基于日志的非侵入式捕获
• 只移动提交的数据,降低了带宽要求

高性能和高可靠性
• 即使在大数据量情况下也能实现亚秒级延迟
• 保持事务完整性
• 确保数据可恢复性

灵活性和易用性
• 提供分离的模块化架构
• 支持异构源和目标,可满足不同的延迟需求
• 与ELT/ETL 和消息处理解决方案共存且集成
GoldenGate的工作特点

• 实时数据复制 • 事件标记基础架构(Event marker


infrastructure)
• 支持异构环境
• 路由和压缩:TCP/IP,LAN,WAN
• 可靠性:断点续传,不影响系统连续
运行。 • 加密:128-位,SSL
• 高性能,对生产系统影响小 • 自定义延时应用修改
• 事务完整性 • 根据事务大小和数量自动管理内存
• 整合:ETL tools, Message Service
• 灵活拓扑结构
• 复制冲突检测和解决
事务完整性-事务级粒度

• 只复制成功提交的事务
• 防止源和目标的不一致性
GoldenGate支持异构环境任意组合

Databases O/S and Platforms


Capture: Delivery:
• Oracle • All listed above, plus: Windows 2000, 2003, XP
• DB2 • HP Neoview, Netezza, Linux
• Microsoft SQL Greenplum, and any Sun Solaris
Server ODBC compatible HP NonStop
• Sybase ASE databases HP-UX
• Teradata • ETL products HP TRU64
• Enscribe • JMS message queues HP OpenVMS
• SQL/MP • MySQL IBM AIX
• SQL/MX • TimesTen IBM z/OS
GoldenGate 10.4支持的主流数据库版本

• Oracle 8i (DML only) • SQL Server 2000 and 2005 on MS-


• Oracle 9.1 and 9.2 (DML and DDL) supported OS as a source or target.
• SQL Server 2008 on MS-supported
• Oracle 10.1 and 10.2 (DML and DDL)
OS as a target only.
• Oracle 11g (DML and DDL)

• Sybase 12.5.4 and 15 ASE


• DB2 UDB 8.x and 9.5 on Windows
and UNIX
• MySQL versions 4.0 and 4.1
• DB2 UDB for OS/390 and z/OS 7.1
(until IBM end of service date)
• DB2 UDB for z/OS Version 8.1 and
9.1
GoldenGate架构中关键的技术

• 分布式松散耦合的进程架构
• 初始化装载时不影响数据库使用
• 可以在异构平台之间进行数据初始化装载
• 可扩展性: 变化数据捕获API (VAM)
• 客户化定制: User Exits, SQL callouts, Macros
• 异步的数据变化传输
• 只传输提交的数据
• DML, Metadata, DDL
• 统一的 Trail 文件格式
• 在异构平台之间交换数据
• 可以设定数据转换规则,设置数据和操作过滤条件(table, row, column)
• 基于的事务的批量操作
GoldenGate架构中关键的技术-续

• 归档和审计功能
• Trail 文件备份
• 审计 – 保存所有变化 (Insert all records)
• 数据冲突的检测和解决机制: 用于双向数据传输(双活)的系统
• 在目标数据库延迟应用目标端的数据
• 基于事件驱动的基本架构
• e.g., 自动的主备机切换
• 进程的自动定位
• 支持动态回滚和基于时间点的数据恢复
• 支持并行操作
• 批量数据抽取和批量数据入库
• 恢复
GoldenGate的核心竞争点

• Active-Active • 可靠的数据传输
• 避免了资源浪费,提高系统利用率 • Checkpoint机制,以便于发生错误
• 即时接管 时恢复
• 在线迁移 • 基于TCP/IP网络,对网络连接要
求低

• 基于事务日志的数据抽取
• 处理量大,负载小
• 强大的异构支持
• 过滤 • 无需停机的数据比较方案
• 配置并行
• 图形化的集中管理
Oracle GoldenGate 使用场景
很多客户需要连续的实时数据
降低IT系统的成本赢得业务系统运行的效率

Real-Time
Business
关键的应用和数据的连续可用性 降低IT系统的成本& 提高效率
Operations
• 在灾难发生时系统的可用性 • 根据需求选择最好的系统
• 在计划宕机期间的系统仍然可以使 • 现代化老式的主机系统
用 • 报表业务分担
• 负载均衡和数据分担

商业智能和决策支持的实时信息访问
• 报表系统可以即时获得生产数据
• 分析系统可以访问到关键的生产信息
• 异构平台的数据交换









Oracle GoldenGate









降低成本 业
降低风险 级

实现卓越的运营 决用
方例

GoldenGate 解决方案
高可用性: 容灾与应急备份

实现:
• 快速恢复和切换
• 最小化数据损失
• 重新同步主备两端数据

用途:
• 在非计划性停机时保持业务连

高可用性: 减少计划内停机

实现:
• 保障业务零或者近似零停机
• 滚动升级
• 降低业务中断带来的损失

用途:
• 保障系统/应用/数据库在升级、
移植和维护期间业务的可用性
高可用性: 双业务中心(Active-Active)

实现:
• 负载均衡,提高系统整体性能
• 连续可用,快速的容灾接管
• 冲突检测和处理
数据仓库实时供给(和ODI结合使用)

实现:
• 数据仓库数据实时得到更新
• 对源系统低影响

用途:
• 提升商务智能和信息分析能力
• 实时可用的数据仓库
实时报表

实现:
• 将实时报表从主系统剥离,可
根据客户需求定制
• 显著提高主系统性能

用途:
• 实时报表
• 提高系统性能和可用性
OGG与Oracle其他数据复制产品
OGG在oracle数据复制产品中的定位

Lantency
延迟

Transformation
转换
Oracle Active Data Guard(ADG)
Oracle GoldenGate
Oracle Data Integrator
GoldenGate与Streams的比较
Oracle Streams

• Oracle从9i开始推出streams,用于提供灵活的复制和容灾解决方案。
但是9i的streams配置相当的麻烦,少说也有十几个步骤,还容易出
错。10gR2则将整个配置过程封装在几个简单的PL/SQL过程中,使
得配置过程大大的简化。但是实际的配置步骤还是一样的,Oracle只
是利用这些PL/SQL过程先生成对应的脚本,然后再执行脚本进行配
置。这个过程可以全自动完成,也可以先将脚本生成到某个指定的目
录,我们根据需要修改脚本,然后再执行脚本进行配置,这样就灵活
又方便。
• Streams的原理其实很简单,通过logmnr技术从oracle的log中解析出
数据,然后传递到目标库并应用,从而将源库的数据复制到目标库。
当然,复制可以是双向的,也可以是单向的。双向复制还需要考虑数
据冲突的问题。而多源复制其实是双向复制的基础上衍生而来的。
Oracle Streams

• 整个的复制过程可以分成三个步骤:捕获(capture),传播
(propagation)和应用(apply),利用高级队列(advance queue)来将这
三个步骤的数据串起来,通过在步骤中定义不同的规则(rule)来控制
需要复制的数据。复制可以基于全库,基于表空间,基于用户或者基
于表,提供了相当大的灵活性。
• 捕获进程可以直接在源库捕获日志,也可以先将日志(归档日志或者
联机日志)传递另外的库中进行捕获,这就是本地捕获(local capture)
和异地捕获(downstream capture)。对于异地捕获,根据是传递归档
日志还是联机日志,可以分为普通的异地捕获和实时异地捕获。日志
的传递其实和DataGuard中是一样的机制。Oracle11g的streams还提
供了同步捕获。
Oracle 数据集成平台
Oracle Enterprise Data Quality
Oracle Metadata Management
相关产品网站快速链接

• Oracle ADG主页面 • ODI主页面


• http://www.oracle.com/cn/database/active- • http://www.oracle.com/technetwork/middlewar
data-guard/overview/index.html e/data-integrator/overview/index.html

• OGG主页面 • ODI下载
• http://www.oracle.com/technetwork/middlewar • http://www.oracle.com/technetwork/middlewar
e/goldengate/overview/index.html e/data-integrator/downloads/index.html

• OGG下载 • ODI文档
• http://www.oracle.com/technetwork/middlewar • http://www.oracle.com/technetwork/middlewar
e/goldengate/downloads/index.html e/data-integrator/documentation/index.html

• OGG文档
• http://www.oracle.com/technetwork/middlewar
e/goldengate/documentation/index.html
Oracle GoldenGate实施架构
Oracle GoldenGate 实施步骤
实施流程

Oracle GoldenGate 项目实施大致流程


• 检查操作系统和数据库是否满足Oracle GoldenGate 要求
• 配置数据库及要复制的表, 使其满足Oracle GoldenGate要求
• 启动Oracle GoldenGate Extract 进程捕获增量数据
• 获取和记录数据库SCN,使用数据库工具完成到目标数据库的数据初
始加载
• 启动Oracle GoldenGate Replicat 进程,从记录的SCN号起开始同步
增量数据
Step 1. Prepare the Environment(准备环境)
Step 1. Prepare the Environment(准备环境)

Set up each system:


• Install Oracle GoldenGate software on source and target(安装软件)
• Configure and start GoldenGate Manager on source and target(配
置并启动ogg管理器)
• If heterogeneous source/target, generate source definitions and
copy to target(如果异构,生成源端定义并复制到目标端)
• Prepare the database. For example:
• Ensure database access by GoldenGate(确保数据库可被ogg访问)
• Enable transaction logging(启用事务日志)
准备工作

Oracle GoldenGate 检查操作系统及数据库


• 如果操作系统是AIX 5.3,须确保xlC/C++ 的版本是9.0或者以上.
• 如果源数据库的版本是9iR1或者9iR2,确保参数_log_parallelism 或
者 log_parallelism 的值为1.
• 确认源数据库处于归档模式, 可用命令archive log list查看.
• 确认源数据库undo_retention的值足够大,undo tablespace的空间足
够多.
• 确认源及目标数据库的open_cursors值足够大.
• 检查源库redo log的Thread 数目.
• 支持DDL:如果数据库的版本是10gR1,将_recyclebin设置为false;
如果数据库的版本是10gR2或者以上,将recyclebin设置为off.
准备工作

Oracle GoldenGate 数据库及表的设置


• 在源和目标数据库为Oracle GoldenGate 创建数据库用户:
create user goldengate identified by oracle default tablespace users temporary tablespace
temp;
grant dba, connect, resource to goldengate;
• 打开源数据库的supplemental log 开关:
alter database add supplemental log data;
alter system switch logfile;
alter system archive log current;
• 在源端,对于要复制的表(样例):
ggsci> dblogin userid goldengate, password oracle add trandata dbaccadm.dconmsg
• 如果复制表没有主键也没有唯一索引,且字段数目超过32个, 则需要手动将表所
有的字段都加入supplemental log.
• 在目标端, disable 复制表的触发器及cascade constraints.
准备环境: 安装 - GoldenGate 目录

Directory Contents
dirchk GoldenGate checkpoint files(检查点文件)
dirdat GoldenGate trail and extract files(trail和抓取文件)
dirdef Data definitions produced by DEFGEN and used to translate
heterogeneous data(由DEFGEN生成的,用于解释异构数据的数据定义)
dirpcs Process status files(进程状态)
dirprm Parameter files(参数文件)
dirrpt Process report files(进程报告)
dirsql SQL scripts(SQL脚本)
dirtmp Temporary storage for transactions that exceed allocated memory
(临时存储超过分配内存的事务)
Step 2. Change Capture(变化捕获)
Change Capture - Extract Overview

Extract can be configured to:


• Capture changed data from database logs(根据数据库日志捕获变
化的数据)
• Distribute data from local trails to remote systems (data pump)(根
据本地trail文件把数据分发到远程主机)
• Capture data directly from source tables for initial data load(直接从
源端数据库表中捕获数据)
捕获增量

Oracle GoldenGate 捕获增量

• 在数据初始化之前,在源端启动Extract来捕获增量数据

• Add extract … Threads …:


将Threads设置为当前数据库真实的redo log Thread 数目, 不论其是否是RAC
环境.
Step 3. Initial Load
初始化

Oracle GoldenGate 数据初始化(SCN的意义)


• 数据初始化手段:
EXP/IMP
DATA PUMP
Transportable Tablespace (TTS)
RMAN
• 以上方法均可以指定SCN
• 以上方法均可以不中断业务系统
初始化

方法 优点/缺点
EXP/IMP • 优点:这种方法的好处是, 可以通过管道直接将数据导入到目
标数据库, 这样做不需要额外的磁盘空间来存放导出文件。
• 缺点:比较慢。
DATA PUMP • 优点:导出与导入速度都非常快。
• 缺点: 在源端及目标端都要有足够的空间来容纳导出文件,且
需要将导出文件传送到目标端。
Transportable Tablespace • 优点:导出速度快, 使用RMAN TRANSPORT TABLESPACE并不
(TTS) 需要将表空间置为read only.
• 缺点:目标端的数据文件大小需要与与源端一致。
RMAN • 优点:导出速度快, 适合整库导出.
• 缺点:如果数据库的版本是10g一下, 不支持跨平台;源端与
目标端数据库版本一致,目标端只能通过数据库升级来升到高
版本。
Step 4. Change Delivery(变化交付)
Change Delivery - Replicat Overview

Replicat can:
• Read data out of GoldenGate trails(从trail文件中读取数据)
• Perform data filtering(执行数据过滤)
• Table, row, operation
• Perform data transformation(执行数据转换)
• Perform database operations just as your application performed
them(执行数据库操作,以应用程序的执行模式)
加载

Oracle GoldenGate Data Pump 和Replicat


• Oracle GoldenGate Data Pump 进程也是一个Extract进程.
• Data Pump 将Trail 文件送到远端(远端可以不是目标端)
• 由于Data Pump 的任务较轻,从性能的角度出发, 可以考虑在Data
Pump这一侧做过滤和转换
• Replicat: 使用start replicat ..., afterscn ….
• 可以对同一个Trail file启用多个Replicat,但最好别超过四个.




(10G)






(10G)


各模块介绍
各模块结构
Extract(Capture)‐ Extract的两个功能
Extract(Capture)DB变更信息的获取(1)
Extract(Capture)DB变更信息的获取(2)
Extract(Capture) ‐双向复制

双向复制场合的注意事项
• 为避免重复应用、应设置不捕获GoldenGate(Replicat)的SQL语句

通过Extract(Capture)的参数可指定

• GETAPPLOPS / IGNOREAPPLOPS
指定捕获/忽略Replicat以外的更新数据库进程的动作
• GETREPLICATES / IGNOREREPLICATES
指定捕获/忽略Replicat对数据库的更新动作
各组件的结构
Collector ‐变更信息的收发‐
Data Pump‐变更信息的发送(两种方式)

方式1: 另外起动发送专用的Extract(即Data Pump)


• 先保存到本地的Trail文件然后发送
方式2:一个Extract兼Capture和Data Pump之职
• 从REDO日志取得信息然后直接向远端发送
Data Pump ‐多个目标发送 (两种方式)‐
各部件的结构
Replicat ‐Replicat的功能

Replicat的功能
• 从Trail文件生成SQL语句在目标DB执行
• 以变更的行为单位生成SQL语句、执行
• 基于主键(或唯一键)和变更前的值(可选)更新
(主键或唯一键的值是在源端通过附加日志方式从日志中获得)
各部件结构
Manager ‐GoldenGate整体的监控/管理

• Manager的作用
• 定期监控进程
• Trail文件的管理
• 进程的启动/停止、再启动
• Trail文件的生成/删除
• GoldenGate整体的监控/报表
• 进程的监控/管理
• 执行用户的命令
Manager ‐ GoldenGate整体的监控/管理

• Manager与各部件之间通信
• UI ⇔ Manager : TCP/IP
• Extract/Replicat ⇔ Manager(本地) :共享内存
• 各进程状况(如处理完的检查点等等)都保存在共享内存,Manager查询后产生相关报表
• Extract(Data Pump)⇔ Manager(远端):TCP/IP
Oracle GoldenGate
Capture
Oracle GoldenGate
Delivery
Filter/Map&转换
Filter/Map&变换

• 可以配置Filter/Map以及变换的部件
• Capture(推荐)
• Data Pump
• Replicat
Filter/Map&变换

• 可配置的Filter/Map&变换(1)
• 表:以表为单位指定
例:MAP scott.emp TARGET james.emp
MAP scott.* TARGET james.* (支持通配符)

• 列:仅指定特定的列
例:MAP scott.emp TARGET james.emp COLS (empno, ename)
MAP scott.emp TARGET james.emp COLEXCEPT (salgrade)

• 行:指定满足特定条件的行
Filter/Map&变换

• 可配置的Filter/Map&变换(2)
• 可以在特定操作(UPDATE或者INSERT等等)时来应用Filter
• 条件中可指定GoldenGate的函数和宏
例:MAP scott.emp TARGET james.emp WHERE (sal > 100000);
MAP scott.emp TARGET james.emp
FILTER(ON UPDATE, @COMPUTE (sal * 100) > 100000);
• 数据变换:可以对列进行映射和列值的变换
• 数据变换可以利用GoldenGate的函数和宏
例:MAP hr.contact, TARGET hr.phone,
COLMAP (USEDEFAULTS,
name = cust_name,
phone_number= @STRCAT( “(”, area_code, “)”,
ph_prefix, “-”, ph_number) );
• 注意:不支持多字节的列名或文字串作为条件
函数

• 主要函数
• 条件判断函数
IF, CASE, EVAL, VALONEOF 等
例:FILTER (@IF (sal > 100, sal, 0) >100);

• 文字列/数値操作函数
COMPUTE, STRCAT, STRCMP, STRLEN, STRFIND等
注意:不支持对多字节文字列进行操作
例:FILTER (@STRLEN(ename ) > 40);

• 日期函数
DATE, DATENOW等
例:FILTER (hiredate > @DATENOW);
GoldenGate Veridata
什么是 GoldenGate Veridata?

“GoldenGate Veridata 是一个快速、低影响的数据比较解决方案,它


用于鉴别和报告两个数据库之间的数据差异,而不需要中断这些系统
或他们的业务流程支持.”
为什么需要 Veridata?

数据之间的差距是现
实存在的
移植确认 应用错误
用户错误 - 数据库升级 - 逻辑故障
- 输入错误 - 数据库移植 - 升级失败
- 无意识的使用 - 操作系统升级 - 潜在缺陷
- 恶意的企图 - 应用升级 配置错误
基础架构错误 实时数据集成验证 - 应用
- 系统故障 - 数据仓库 - 复制
- 磁盘损坏 - 查询分载 - 网络
- 网络故障 - 营销数据库
Veridata – 数据库比较工具

• 支持异构数据库
• 生成直观比较报告
• 系统消耗小
GoldenGate Veridata™

• 高速的数据比对解决方案
• 在正在使用的数据库直接审计,识别
和报告数据的差异性
• 优点:
• 能快速地减少风险和对数据差异采取行动
• 加快和简化数据比较
• 不破坏业务系统
• 关键特性:
• 支持大数据量 比对
• 当数据库在线的时候运行比对
• 选择性数据比对
• 无干扰的运行
• 灵活的报表机制
GoldenGate Management Pack
GoldenGate
Management Pack
GoldenGate
Management Pack
GoldenGate
Management Pack
GoldenGate
Management Pack
GoldenGate
Management Pack
GoldenGate
Management Pack
GoldenGate Studio
GoldenGate Studio
GoldenGate Studio
设计理念 通过图形化配置复制过程,可以一键下发到其他的主机中
GoldenGate Studio
界面展示 逻辑设计跟物理设计是分开的
GoldenGate Studio
界面展示 逻辑设计跟物理设计是分开的
GoldenGate Studio
可以通过模板配置逻辑模型,提供3个典型模板,基本涵盖全部的
情况,设计的时候选择模板即可
GoldenGate Studio
通过拖拽资源操作,完成设计
GoldenGate Studio
对象的映射
GoldenGate Studio
通过拖拽配置,避免一些写作错误
GoldenGate Studio
然后可以下发到不同的物理环境
GoldenGate Studio
对类型的支持
GoldenGate Studio
下发操作
GoldenGate Studio
Anget说明
GoldenGate Studio
产品定位,目前只支持oracle的源和目标
GoldenGate Studio
许可说明,OGGstudio不单卖的,是一个套件
GoldenGate Studio
冲突解决的案列,具体使用什么规则,还是需要通过与业务沟通配
置,最好在业务上就隔断。
GoldenGate Studio
总结
演示
谢谢!

You might also like