GoldenGate - Oracle's New Data Synchronization Tool- · Oracle/ HPUX迁移至SUN ... 操作系统...
Transcript of GoldenGate - Oracle's New Data Synchronization Tool- · Oracle/ HPUX迁移至SUN ... 操作系统...
Agenda
• GoldenGate主要应用场景介绍• GoldenGate简介• GoldenGate案例分析
GoldenGate 公司公司公司公司简介简介简介简介
• 创建于1995年,总部在美国旧金山。
• 数据复制领域的专业公司。
• 全球超过4,000个安装许可,分布在政府、银行、制造、
传媒、电信、证券、医疗和零售等各大行业,其中有多个全球财富500强企业。
• 与Oracle、IBM、HP、Microsoft、Sybase、Teradata等著名企业建立了紧密合作关系。
• 中科领新信息技术有限公司是GoldenGate公司中国区
总代理和技术支持中心。
• 2009年被Oracle收购。
数据复制的拓扑结构
单向复制单向复制单向复制单向复制
备份备份备份备份、、、、查询查询查询查询
双向复制双向复制双向复制双向复制
灾备灾备灾备灾备、、、、双业务中心双业务中心双业务中心双业务中心
点对点点对点点对点点对点
多业务中心多业务中心多业务中心多业务中心
广播复制广播复制广播复制广播复制
数据分发数据分发数据分发数据分发
集中复制集中复制集中复制集中复制
数据仓库数据仓库数据仓库数据仓库、、、、N+1灾备灾备灾备灾备
多级复制多级复制多级复制多级复制
层次化企业数据层次化企业数据层次化企业数据层次化企业数据
Oracle GoldenGate 使用场景企业级的实时数据解决方案
基于日志的实时变化数据捕捉
异构的多数据源系统
EDWODS
EDW
灾备,数据保护
应用或系统在线升级
操作型报表
实时商务智能
Standby(Open & Active)
ReportingDatabase
OGG
ETL
ETL
查询卸载
数据分发
• Standardize on Single Technology for Multiple Needs
• Deploy for Continuous Availability and Real-time Data Access for Reporting / BI
• Highly Flexible• Fast Deployments• Lower TCO & Improved ROI
6
Oracle GoldenGate主要应用场景分类
高可用性: 容灾与应急备份
实现实现实现实现:快速恢复和切换快速恢复和切换快速恢复和切换快速恢复和切换
最小化数据损失最小化数据损失最小化数据损失最小化数据损失
重新同步主备两端数据重新同步主备两端数据重新同步主备两端数据重新同步主备两端数据
用途用途用途用途:在非计划性停机时保持业务连续在非计划性停机时保持业务连续在非计划性停机时保持业务连续在非计划性停机时保持业务连续
案例:国家体育总局体彩中心
� N+1N+1N+1N+1模式容灾模式容灾模式容灾模式容灾
�各省市集中备份各省市集中备份各省市集中备份各省市集中备份
�远距离远距离远距离远距离
�低带宽低带宽低带宽低带宽
高可用性: 减少计划内停机
实现实现实现实现:保障业务零或者近似零停机保障业务零或者近似零停机保障业务零或者近似零停机保障业务零或者近似零停机
滚动升级滚动升级滚动升级滚动升级
降低业务中断带来的损失降低业务中断带来的损失降低业务中断带来的损失降低业务中断带来的损失
用途用途用途用途:保障系统保障系统保障系统保障系统/应用应用应用应用/数据库在升级数据库在升级数据库在升级数据库在升级、、、、移植和维护期间业务的可用性移植和维护期间业务的可用性移植和维护期间业务的可用性移植和维护期间业务的可用性
高可用性: 双业务中心(Active-Active)
实现:• 负载均衡,提高系统整体性能• 连续可用,快速的容灾接管• 冲突检测和处理
案例:美 国 银 行
超过五千八百家分行及一万六千多部自动
柜员机热 备 份 数 据 中 心从 贯 穿 北 美 的 四台 主 机 (HP NSK)
抓 取 数 据保 障 ATM 7X24小
时可用
热热热热 备备备备 份份份份 点点点点
主主主主 数数数数 据据据据 中中中中 心心心心
客客客客 户户户户
客客客客 户户户户
客客客客 户户户户
客客客客 户户户户
双向数据复制双向数据复制双向数据复制双向数据复制
GoldenGate has helped the Bank of America accommodate growth.
Michele Schwappach, Vice President and Senior Systems Manager
案例:中华人民共和国海关总署
�远距离容灾
�低带宽
�低延时
�可随时接管的双业务中心
�快速业务切换
Oracle 9i
RAC
Oracle 9i
RAC
Oracle 9i
RAC
决策支持库
GoldenGate单向复制
GoldenGate单向复制
H2000生产库
Oracle 9i
全国各地41个口岸H2000应用
GoldenGate双向复制
广州北京
H2000生产库
决策支持库
网络
数据仓库实时供给数据仓库实时供给数据仓库实时供给数据仓库实时供给((((和和和和ODI结合使用结合使用结合使用结合使用))))
实现实现实现实现:数据仓库数据实时得到更新数据仓库数据实时得到更新数据仓库数据实时得到更新数据仓库数据实时得到更新
对源系统低影响对源系统低影响对源系统低影响对源系统低影响
用途用途用途用途:提升商务智能和信息分析能力提升商务智能和信息分析能力提升商务智能和信息分析能力提升商务智能和信息分析能力
实时可用的数据仓库实时可用的数据仓库实时可用的数据仓库实时可用的数据仓库
Agenda
• GoldenGate主要应用场景介绍
• GoldenGate简介
• GoldenGate案例分析
�GoldenGate TDM 是基于日志的实时CDC软件平台,提供异构环境下大 量交易数据的实时捕捉、变换和投递,同时保持亚秒一级的数据延迟。
�基于GoldenGate TDM,我们提供高可用/容灾和实时数据集成的解决方案。
�GoldenGate TDM 采用高内聚低耦合的结构,能够支持多种拓扑结构, 包括一对一,一对多,多对一,多对多,层叠和双向复制。。。。
GoldenGate 介绍介绍介绍介绍
GoldenGate 工作原理工作原理工作原理工作原理
网络网络网络网络
源数据库 目的数据库
双向复制
队列文件队列文件队列文件队列文件: 暂存数据变化暂存数据变化暂存数据变化暂存数据变化.
传输传输传输传输: 数据经过压缩和加密传送到目的地数据经过压缩和加密传送到目的地数据经过压缩和加密传送到目的地数据经过压缩和加密传送到目的地.
Capture: 实时读取交易日志捕捉数据变化并可实现过滤实时读取交易日志捕捉数据变化并可实现过滤实时读取交易日志捕捉数据变化并可实现过滤实时读取交易日志捕捉数据变化并可实现过滤.
Delivery: 执行所需的数据变化执行所需的数据变化执行所需的数据变化执行所需的数据变化,,,,然后将然后将然后将然后将数据变化提交到目的库数据变化提交到目的库数据变化提交到目的库数据变化提交到目的库.
Capture Source Trail Target Trail
Source TrailTarget Trail
Delivery
Delivery Capture
交易数据管理交易数据管理交易数据管理交易数据管理
GoldenGate提供异构环境下交易数据的实时捕捉、变换、
投递。
特性特性特性特性:::: 收益收益收益收益:
�实时性实时性实时性实时性亚秒一级延迟
�高性能高性能高性能高性能能够以低资源消耗完成每秒数千交易的复制
�异构环境支持异构环境支持异构环境支持异构环境支持在不同平台和数据库环境下复制数据
�可扩展可扩展可扩展可扩展开放的结构使客户适应各种异构数据平台
�以交易为单位复制以交易为单位复制以交易为单位复制以交易为单位复制维护交易一致性
�可靠可靠可靠可靠保证数据的连续可用
�独立于数据库系统的复制技术独立于数据库系统的复制技术独立于数据库系统的复制技术独立于数据库系统的复制技术 �提供提供提供提供7777x24x24x24x24服务服务服务服务
不停机,保证业务的连续性,在线升级,迁移数据库系统及应用
GoldenGate 变化数据捕捉的优势变化数据捕捉的优势变化数据捕捉的优势变化数据捕捉的优势
�针对SQL SERVER,DB2都提供基于日志的CDC
�直接从数据库日志中通过自己的专有程序抽取数据。
�支持在备份系统上抓取变化数据。
�对一些数据类型如LONG,XML,BLOB都提供了支持。
基于日志的实时数据复制基于日志的实时数据复制基于日志的实时数据复制基于日志的实时数据复制
• 亚秒级复制
• 不依赖源数据库的触发器和规则,对源数据库影响小。
数据库日志
网络网络网络网络
CaptureSource Trail Target TrailDelivery
Data Pump
JMS Message Bus
GG在数据传输方面的优势在数据传输方面的优势在数据传输方面的优势在数据传输方面的优势
�GG有很好的机制来保证传输的交易一致性和断点续传。
�事务完整性-事务级粒度
�只复制成功提交的事务
�防止源和目标的不一致性
GoldenGate 支持支持支持支持异构环境任意组合异构环境任意组合异构环境任意组合异构环境任意组合
Databases O/S and Platforms
Capture:
Oracle DB2 Ingres Microsoft SQL Server Sybase ASE Teradata
Enscribe SQL/MP SQL/MXDelivery:
All listed above, MySQL, Netezza, Greenplum, HP Neoview And any ODBC compatible DBs
Windows 2000, 2003, XPLinuxSun SolarisHP NonStopHP-UXHP TRU64HP OpenVMSIBM AIXIBM z/OS
GoldenGate 10.4 支持的主流数据库版本支持的主流数据库版本支持的主流数据库版本支持的主流数据库版本
• Oracle 8i (DML only)• Oracle 9.1 and 9.2 (DML and DDL)• Oracle 10.1 and 10.2 (DML and DDL)• Oracle 11g (DML and DDL)• DB2 UDB 8.x and 9.5 on Windows and UNIX• 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• SQL Server 2000 and 2005 on MS-supported OS as a source or
target.• SQL Server 2008 on MS-supported OS as a target only.• Sybase 12.5.4 and 15 ASE• MySQL versions 4.0 and 4.1
GoldenGate is Strategic to Oracle
23
• Over 400 customers with 4,000+ implementations across Fortune 500 companies: Financial Services, Communications, Healthcare, Public Sector, Retail & Utilities industries
• Top 3 of 5 largest commercial banks
• Top 3 of 3 busiest ATM networks
• Top 7 of 10 financial data services companies
• Top 4 of 5 telecommunications providers• Top 3 of 5 largest food & drug stores
24
Active Data Guard
DirectMemory Access
Read On-Disk Logs
SQL
Direct Write to Logs
GG在在在在Oracle数据数据数据数据复复复复制制制制产产产产品中的定位品中的定位品中的定位品中的定位
Redo in Memory Buffer
GoldenGate
Data Integrator
Disaster Recovery & Data Protection
Real Time Data Integration & High Availability
SQL Query Multi-step, Complex SQL
Data Integration for Data Warehouse & SOA
Stream
GoldenGate 与与与与 Streams 的比较的比较的比较的比较
25
GoldenGate is Oracle’s strategicreplication solution
Lead with GoldenGate
• Highly customizable and flexible• Optimized for Oracle Database• Few large references
Oracle Streams
• Out-of-the-box solutions• Broad heterogeneous support• Excellent reference base
Oracle GoldenGate
Why buy GoldenGate?• Better ROI overall: GoldenGate is lower cost to implement and maintain• Enterprise-wide solution: GoldenGate easily expands to new use cases
• Support for Streams continues: Continue to use Streams where it’s deployed
Streams continues to be a supported Oracle Database feature
Agenda
• GoldenGate主要应用场景介绍• GoldenGate简介• GoldenGate案例分析
华南华南华南华南GoldenGateGoldenGateGoldenGateGoldenGate成功成功成功成功案例分析
基于日志的实时变化数据捕捉
异构的多数据源系统
EDWODS
EDW
灾备,数据保护
应用或系统在线升级
操作型报表
实时商务智能
OGG
ETL
ETL
查询卸载
数据分发
�安信证券CDC数据交换平台DB2 ORACLE
SQL Server ORACLE
�招商证券交易系统灾备DB2 --- DB2
DB2 --- Oracle
�平安保险EPCIS平台迁移Oracle/ HPUX迁移至SUN平台上
�平安保险ELIS客户系统数据同步SUN SOLARIS/Oracle 10.2.0.3
数据同步
平台Call center
前台营业系统
资讯系统
CRM 风险 人力 财务 会计 OA
网站
期货业务
安信CDC数据交换平台
交易系统
CDC数据交换平台
安信GG测试方案
1)环境问题
2)定制版本
招商证券灾备
设备名称/用途
数量
操作系统 IP地址(示意) 备注
IBM P590 1 AIX 5.3 04 172.30.60.91 SOURCE
IBM P590 1 AIX 5.3 04 172.30.60.210 TARGET
同步数据表273
初始测试
用户测试
第二次测试
招商证券灾备第一次测试
400W 交易数据: 源3400 transaction/sec, target 2700
530W报盘后: 源2200transaction/sec, target 1300
单表事务KS.entrust (300W record) : 源11000, target 6000
主要问题
1) GG版本 8
kill ER *
2) 性能优化
招商证券灾备第一次测试性能优化
Local trail
Remote trail
Tables:273
100
100
73
1000万
@range
源数据库目的数据库
启动GoldenGate数据复制进程,从备份时的SCN NO
开始抓取
网络网络网络网络Capture
Source Trail Target TrailDelivery
在线访问
平安EPCIS数据库平台迁移方案
GG数据同步
GG数据同步
GG数据同步中心库中心库中心库中心库
机构库
机构库
机构库
平安ELIS同步
ELT
GG数据同步
GG数据同步
GG数据同步中心库
机构库
机构库
机构库
平安ELIS数据同步POC
ELT
ZE
ZR_SH
ZR_QD
ZD
ZD_SH
ZD_QD
ZL
ZA
ZB
S1
Q1
Center db
org_dbshanghai
org_dbqingdao
2) Routing by query result 3) Conversion
1)Distributing by field value
FRAMEWORK
JE_SH
JE_QD
JR_SH JD_SH
JD_QD
SR
QR
SL
QL
Center db
org_dbshanghai
org_dbqingdao
JR_QD
ZLgg process gg train file
client_base client_extend
site_email
site_telephonesite_address
client_info
client_phone_info
SCENE 1: 多表同步到单表
client_base
Client_extend
Site_email client_info
Site_address
Site_telephone
Site_telephone client_phone_info
One to many
gg_pol_agt
POL_JNT_INSURED
pol_ben
POL_INSURED
SCENE 2: 单表同步到多表
ZE
ZR_SH
ZR_QD
ZD
ZD_SH
ZD_QD
ZL
ZA
ZB
S1
Q1
Center db
org_dbshanghai
org_dbqingdao
TABLE ELISDATA.SITE_EMAIL, &
SQLEXEC (ID lookup5, ON UPDATE, ON DELETE, &
QUERY "select CLIENTNO conflict from lifedata.client_info where CLIENTNO = :client", &
PARAMS (client = CLIENTNO), BEFOREFILTER, ERROR IGNORE, TRACE ALL), &
FILTER (@COLTEST(lookup5.conflict,PRESENT), ON UPDATE, ON DELETE),
SQLEXEC (ID lookup6, ON INSERT,&
QUERY "select CLIENTNO conflict from lifedata.client_info where CLIENTNO = :client", &
PARAMS (client = CLIENTNO), BEFOREFILTER, ERROR IGNORE, TRACE ALL), &
FILTER (@COLTEST(lookup6.conflict,PRESENT) , ON INSERT);
SCENE 3: 基于查询结果的路由
ZE
ZR_SH
ZR_QD
ZD
ZD_SH
ZD_QD
ZL
ZA
ZB
S1
Q1
Center db
org_dbshanghai
org_dbqingdao
MAP ELISDATA.CLIENT_EXTEND, TARGET LIFEDATA.client_info, &
colmap (usedefaults,
PHONETICIZE_LASTNAME = LASTNAME,
PHONETICIZE_FIRSTNAME = FIRSTNAME
);
SCENE 4: 不同字段名称
ZE
ZR_SH
ZR_QD
ZD
ZD_SH
ZD_QD
ZL
ZA
ZB
S1
Q1
Center db
org_dbshanghai
org_dbqingdao
MAP ELISDATA.SITE_TELEPHONE, TARGET LIFEDATA.client_phone_info, &
colmap (usedefaults,
PHONE_TYPE=@CASE (SITE_DETAIL_CD, "020001", "1", "020002", "2","020003", "3","020004", "4"),
PHONE_NUMBER=WHOLE_TEL_NO
);
SCENE 5: 条件判断
ZE
ZR_SH
ZR_QD
ZD
ZD_SH
ZD_QD
ZL
ZA
ZB
S1
Q1
Center db
org_dbshanghai
org_dbqingdao
MAP ELISDATA.SITE_ADDRESS, TARGET LIFEDATA.client_info, &
colmap (usedefaults,
CONTA_ADDR=@IF (@STREQ (SITE_DETAIL_CD,"030002"), WHOLE_ADDRESS_NO, @COLSTAT(MISSING)),
HOME_ADDR=@IF (@STREQ (SITE_DETAIL_CD,"030001"), WHOLE_ADDRESS_NO, @COLSTAT(MISSING)),
CONTA_POSTCODE=@IF (@STREQ (SITE_DETAIL_CD,"030002"), POST_CODE, @COLSTAT(MISSING)),
HOME_POSTCODE=@IF (@STREQ (SITE_DETAIL_CD,"030001"), POST_CODE, @COLSTAT(MISSING))
);
Clientno Detail_cd whole_address
0001 030001 上海
0001 030002 深圳
CLIENTNO CONTA_ADDR HOME_ADDR
0001 上海(030001) 深圳(030002)
SCENE 6: 合并远端多条记录到目标端一条记录
ZE
ZR_SH
ZR_QD
ZD
ZD_SH
ZD_QD
ZL
ZA
ZB
S1
Q1
Center db
org_dbshanghai
org_dbqingdao
For site_email,site_telephone,site_address, We need to transfer For site_email,site_telephone,site_address, We need to transfer For site_email,site_telephone,site_address, We need to transfer For site_email,site_telephone,site_address, We need to transfer insert operationinsert operationinsert operationinsert operation
On the source into update on the target dbOn the source into update on the target dbOn the source into update on the target dbOn the source into update on the target db .
(We use “updateinsert” parameter for this scene.)
Clientno Detail_cd whole_address
0001 030001 SHANGHAI
0001 030002 SHENZHEN
CLIENTNO CONTA_ADDR HOME_ADDR
0001 SHANGHAI(030001) SHENZHEN(030002)
SCENE 7: Insert TO Update