oracle+GoldenGate学习笔记
ORACLE GoldenGate 内部培训
低带宽
Oracle 9i RAC
Oracl
H2000生产库 GoldenGate 单向复制 决策支持库 GoldenGate 单向复制
决策支持库
可随时接管的双业务 中心 快速业务切换
Oracle 9i RAC
Oracle 9i
实现:
数据仓库数据实时得到更新 对源系统低影响
用途:
提升商务智能和信息分析能力 实时可用的数据仓库
实时报表+GRC应用
实现:
将实时报表从主系统剥离,可根据客户 需求定制 显著提高主系统性能
用途:
实时报表 提高系统性能和可用性
部门内部的多层数据同步
中央
省
地/县
主数据管理
Database CRM
ERP Data Warehouse
O/S and Platforms
Windows 2000, 2003, XP Linux Sun Solaris HP NonStop HP-UX HP TRU64 IBM AIX IBM z/OS
灵活的拓扑结构
单向复制 备份、查询 双向复制 灾备、双业务中心 点对点 多业务中心
广播复制 数据分发
• 容灾与应急备份
• 数据仓库实时供给
• 消除计划内停机
• 双业务中心
• 实时报表
• GRC类应用
• OLTP和OLAP分开
• 数据库移植、升级
• 政府、企业垂直部门级数据同步
• 主数据
高可用性: 容灾与应急备份
实现:
快速恢复和切换 最小化数据损失 重新同步主备两端数据
用途:
在非计划性停机时保持业务连续
其强项是E(Extract) 2.从技术实现讲,ODI是基于Java技术的数 据集成技术,属于应用层技术,可以和 SOA实现无缝集成,GG是纯数据库层的应 用,完全基于C实现,相对封闭。 3.ODI一般用于局域网内的数据整合传输, 如果网络状况不好的广域网则不太适合数据 传输,GG有非常好的数据传输机制,可以 保证数据的传输。
Oracle GoldenGate技术详解
Oracle GoldenGate技术详解<Insert Picture Here>Agenda •Oracle GoldenGate 整体架构•各模块的作用和结构•Filter/Map &转换•初始装载•高可用性结构•使用方法(Oracle Database to Oracle Database )•注意事项Manager源端Trail 文件: 保存变更信息的中间文件Extract (Capture ): 从REDO 日志文件获取变更信息,以最小10ms 间隔读取Redo 日志,将变更信息输出到Trail 文件Extract (Data Pump ): 变更信息的传输读取Trail 文件,将变更信息传输到远端REDO (Archive )日志文件Trail TrailExtract (Data Pump )Replicat端DB源DBNetwork(TCP/IP)Collector ManagerManager:管理GoldenGate 整体各进程的起动/停止、监视/管理Capture (Capture )Collector:接收Extract 传输过来的数据存为Trail 文件远程Trail 文件:保存变更信息的中间文件Replicat: 从Trail 文件获得变更信息,转换成目标DB 的SQL 语句在目标DB 上运行(以行为单位)TrailTrailExtractExtractReplicat端DB源DB Network (TCP/IP)Collector双向可同等配置,实现双向复制TrailTrailExtractExtractReplicat源DBNetwork (TCP/IP)CollectorTrailTrailCollectorExtractNetwork (TCP/IP)Oracle GoldenGate 的部署通过Capture/Data Pump、Replicat的各种组合灵活配置多主复制单向双向(Active-Active)分发集中多层分发<Insert Picture Here>Agenda •Oracle GoldenGate 整体架构•各模块的作用和结构•Filter/Map &转换•初始装载•高可用性结构•使用方法(Oracle Database to Oracle Database )•注意事项各模块结构TrailTrailExtract (主)Extract (Data Pump )Replicat端DB源DBNetwork(TCP/IP)Collector ManagerManagerExtract (Capture )-获取DB 的变更信息的变更信息--Extract (Capture )Extract (Capture )‐Extract 的两个功能的两个功能‐‐Extract(Capture)源DBREDO归档日志Trail 文件(本地本地))Extract (data Pump )Trail 文件(远程远程))Trail 文件(远程远程))Network (TCP/IP)Network (TCP/IP)•Extract 的功能•Capture从REDO/归档日志取得DB 的变更信息输出到Trail 文件•Data Pump将Trail 文件传输到远端机器Extract (Capture )‐DB 变更信息的获取变更信息的获取((1)-Extract源DBREDO归档日志•变更信息的来源在线REDO 日志(缺省)归档日志(Windows 环境的缺省)•取得的信息主键(或唯一键)的值 变更前后的值•注意:数据库并不要求必须是归档模式附加日志模式下主键和变更值输出到REDO 日志将DB 设为附加日志模式(将主键的值输出到REDO 日志日志))変更変更值值+主键值Extract (Capture )‐DB 变更信息的获取变更信息的获取((2)-Extract (Capture )源DBREDO归档日志•获取方法•以一定间隔读取REDO 日志,获取变更信息•间隔:用参数(EOFDELAY or EOFDELAYCSECS )设置•缺省:1秒、最小:10 毫秒•变更信息的输出•输出位置:本地或者远程的Trail 文件•输出时机:满足以下任一条件•Extract 的缓冲区(内存)写满的话•设置参数(FLUSHSECS or FLUSHCSECS )来指定间隔•缺省:1秒、最小:10毫秒最小最小以以10毫秒间隔定期获取变更信息缓冲缓冲((内存内存))写满or最小最小以以10毫秒间隔输出Trail 文件Extract(Capture)‐双向复制双向复制•双向复制场合的注意事项•为避免重复应用、应设置不捕获GoldenGate(Replicat)的SQL语句通过Extract(Capture)的参数可指定GETAPPLOPS /IGNOREAPPLOPS指定捕获/忽略Replicat以外的更新数据库进程的动作GETREPLICATES /IGNOREREPLICATES指定捕获/忽略Replicat对数据库的更新动作各组件的结构Trail Trail Replicat端DB源DBNetwork (TCP/IP)Collector (Server)Manager ManagerExtract (Data Pump )→ Collector-数据库变更信息的收发-Data Pump &CollectorExtract (Capture )Extract (Data Pump )Collector‐变更信息的收发变更信息的收发‐‐Extract(Data Pump )Trail 文件Network (TCP/IP)从Extract 向Collector 发送、输出Trail 文件•发送间隔:满足以下任一条件•缓存写满的时候Extract 的RMHOST 参数(TCPBUFSIZE 选项)可指定缓存尺寸缺省:30,000Byte•参数(FLUSHSECS or FLUSHCSECS )的指定间隔缺省:1秒、最小:10毫秒数据•发送时数据可压缩CollectorManager①请求②起动(动态分配端口动态分配端口,,起动进程起动进程))Data Pump‐变更信息的发送变更信息的发送((两种方式两种方式))‐Extract(Capture )Trail 文件(本地本地))Extract (data Pump )Trail 文件(远程远程))Trail 文件(远程远程))Network(TCP/IP)Network (TCP/IP)方式1:另外起动发送专用的Extract (即Data Pump )•先保存到本地的Trail 文件然后发送方式2:一个Extract 兼Capture 和Data Pump 之职•从REDO 日志取得信息然后直接向远端发送REDO方式2方式1CollectorCollectorData Pump‐多个目标发送(两种方式两种方式))‐ExtractTrail文件(本地本地))Extract(data Pump)Trail文件(远程远程))Trail文件(远程远程))Network(TCP/IP)方式2:采用一个Data Pump向多个目标发送的方式有一个进程停止的话就整体停止Extract Trail文件(本地本地))Extract(data Pump)Trail文件(远程远程))Trail文件(远程远程))Network(TCP/IP)推荐方式1:每个目标起动一个Data Pump的方式一个进程停止的话也不会影响整体CollectorCollectorCollectorCollector各部件的结构Trail TrailReplicat端DB源DBNetwork(TCP/IP)Collector Manager ManagerReplicat-应用到数据库-ReplicatExtract (Capture )Extract (Data Pump )Replicat ‐Replicat 的功能‐•Replicat 的功能•从Trail 文件生成SQL 语句在目标DB 执行•以变更的行为单位生成SQL 语句、执行•基于主键(或唯一键)和变更前的值(可选)更新(主键或唯一键的值是在源端通过附加日志方式从日志中获得)TrailReplicat端DB各部件结构Trail TrailReplicat端DB源DBNetwork(TCP/IP)CollectorManagerManagerManager-GoldenGate 整体的监控/管理-ManagerExtract (Capture )Extract (Data Pump )ManagerManager ‐GoldenGate 整体的监控/管理‐•Manager 的作用Trail 文件的管理•Trail 文件的生成/删除 进程的监控/管理•定期监控进程•进程的启动/停止、再启动 GoldenGate 整体的监控/报表执行用户的命令TrailTrailReplicat端DBNetwork (TCP/IP)CollectorExtract (Capture )Extract (Data Pump )源DBManagerManagerManager整体的监控/管理 ‐ GoldenGate整体的监控 管理 ‐ 整体的监控• Manager与各部件之间通信 • UI ⇔ Manager : TCP/IP • Extract/Replicat ⇔ Manager(本地) :共享内存• 各进程状况(如处理完的检查点等等)都保存在共享内存, Manager查询后产生相关报表• Extract(Data Pump)⇔ Manager(远端):TCP/IPGGSCI(命令行) or GUI (命令行)TCP/IP参考处理状況生成报表 参考处理状況生成报表 状況 共享内存 ・进程状况状况随时更新ManagerExtract/Replicat21Agenda • • • • • • • Oracle GoldenGate 整体架构 各模块的作用和结构 <Insert Picture Here> Filter/Map & 转换 初始装载 高可用性结构 使用方法(Oracle Database to Oracle Database) 注意事项22Filter/Map&变换 &• 可以配置Filter/Map以及变换的部件 Capture(推荐) Data Pump ReplicatFilter/Map & Transform Filter/Map & Transform Filter/Map & TransformNetwork (TCP/IP) DB Extract Trail Extract (Capture) ) (Data Pump) ) Collector Trail Replicat 端DB23Filter/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)24Filter/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) );注意: 注意:不支持多字节的列名或文字串作为条件25函数 • 主要函数 • 条件判断函数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);26Agenda • • • • • • • Oracle GoldenGate 整体架构 各模块的作用和结构 <Insert Picture Here> Filter/Map & 转换 初始装载 高可用性结构 使用方法(Oracle Database to Oracle Database) 注意事项27初始装载( 初始装载(Init Load) ) • 初始装载的方法 • 利用数据库的功能• 传输表空间、备份/恢复、exp/imp等• 利用GoldenGate的功能GoldenGate的功能 的功能 File to Replicat File to Database Utility Direct load Direct bulk load Extract 的输出 Trail (GoldenGate格式) 文本文件 向Replicat直接传输 向Replicat直接传输 装载的方法 Replicat (SQL) Database utility Replicat(SQL) Replicat (SQL*Loader API)28在线初始化装载举例 • GoldenGate内部是按CSN(Change Sequence Number) 来管理事务的顺序的 • 指定CSN将特定时间的变更应用到目标端,以使源和目 标实现同步 • Step1. 在源端开始Capture时的CSN是222当前的CSN= 222CSN=222源DBCaptureTrailPumpTrail端DB29在线初始化装载举例 • Step2. 取得所有的事务的静止点 • Step3. 取得源DB的备份(RMAN Backup/传输表空间等等...) •当前的CSN= 245此时的CSN是245CSN=222开始源DBCaptureTrailPumpTrail 源DBCSN=245时的备份恢复CSN=245时的备份30在线初始化装载举例 • Step4. 通过Replicat从CSN=245开始应用Trail文件 • 与源DB同步到相同的状态,初始化装载结束当前的CSN= 300 CSN=222开始 应用CSN=245~300 部分源DBCaptureTrailPumpTrail 端DBTake Backup as of CSN 245Apply Backup as of CSN 24531Agenda • • • • • • • Oracle GoldenGate 整体架构 各模块的作用和结构 <Insert Picture Here> Filter/Map & 转换 初始装载 高可用性结构 使用方法(Oracle Database to Oracle Database) 注意事项32可用性‐故障解决‐ 故障解决‐• 各种故障的解决方法• GoldeGate的故障 • 进程故障 -> 进程自动重启 • Trail文件故障 -> Checkpoint • GoldenGate以外的故障 • 服务器/DB/网络的故障 -> Checkpoint自動重启 自動重启 自動重启 自動重启源DBExtract Trail Extract (Capture) (Data Pump) ) ) CheckpointNetwork (TCP/IP)Collector TrailReplicat端DBCheckpointCheckpoint33可用性‐进程故障的解决‐ 进程故障的解决‐• 由Manager重启GoldenGate的进程 • 対象进程Extract(Capture/Data Pump) Replicat 注意:Manager进程本身不会重启• 相关配置参数重试次数(缺省=2次) 等待时间(缺省= 20分) 等待重试次数清零的时间(缺省=20分)Manager 重启 重启Network (TCP/IP)Manager 重启源DBExtract Trail Extract (Capture) (Data Pump) ) )Collector TrailReplicat端DB34可用性文件/其他故障的解决 ‐Trail文件 其他故障的解决‐ 文件 其他故障的解决‐ 为解决Trail文件/服务器/网络故障、 GoldenGate使用Checkpoint机制• Checkpoint记录各进程处理到哪个位置的信息• Extract(Capture)最早未提交的事务的位置(SCN) 当前读取的更新位置(SCN) 已写到Trail文件的更新位置(SCN)• Extract(Data Pump)从Trail文件已读到的事务位置(SCN) 记录已写到远程Trail文件的位置• Replicat从Trail文件已读到的事务位置(SCN) 已反映到目标DB的位置• 故障恢复时,会参考Checkpoint从最后的处理位置重新开始35可用性‐Checkpoint‐ ‐最早Open的事务 的事务 最早 (未Commit)的开始点 )Begin, TX 1 Insert, TX 1 Begin, TX 2 Update, TX 1 Insert, TX 2 Commit, TX 2 Begin, TX 3 Insert, TX 3 Begin, TX 4 Commit, TX 3 Delete, TX 4Begin, TX 2 Insert, TX 2 Commit, TX 2Capture CheckpointBegin, TX 3 Insert, TX 3 Commit, TX 3当前Trail File的写 当前 的写 入点 当前的日志读 取点源DBCaptureTrail File36可用性Begin, TX 1 Insert, TX 1 Begin, TX 2 Update, TX 1 Insert, TX 2 Commit, TX 2 Begin, TX 3 Insert, TX 3 Begin, TX 4 Commit, TX 3 Delete, TX 4‐Checkpoint‐ ‐最早Open的事务 的事务 最早 (未Commit)的开始点 ) Pump CheckpointBegin, TX 2 Insert, TX 2 Commit, TX 2Begin, TX 2 Insert, TX 2 Commit, TX 2Capture CheckpointBegin, TX 3 Insert, TX 3 Commit, TX 3当前的Trail 当前的 File的读取点 的读取点当前的Trail 当前的 File的Write 点 的当前Trail File 当前 的写入点 当前的日志读 取点源DBCaptureTrail FilePumpTrail File37可用性‐Checkpoint‐ ‐Begin, TX 1 Insert, TX 1 Begin, TX 2 Update, TX 1 Insert, TX 2 Commit, TX 2 Begin, TX 3 Insert, TX 3 Begin, TX 4 Commit, TX 3 Delete, TX 4最早Open的事务 的事务 最早 (未Commit)的开始点 )Begin, TX 2 Insert, TX 2Pump CheckpointBegin, TX 2 Insert, TX 2 Commit, TX 2Delivery CheckpointCapture CheckpointCommit, TX 2 Begin, TX 3 Insert, TX 3 Commit, TX 3当前的Trail 当前的 File的读取点 的读取点当前的Trail File的 当前的 的 写入点当前的Trail File 当前的 的读取点当前Trail File 当前 的写入点 当前的日志读 取点Capture 源DBTrail FilePumpTrail FileReplicat 端DB38Agenda • • • • • • • Oracle GoldenGate 整体架构 各模块的作用和结构 <Insert Picture Here> Filter/Map & 转换 初始装载 高可用性结构 使用方法(Oracle Database to Oracle Database) 注意事项39安装步骤 • 安装 ① 介质下载包含在Fusion Middleware的Pack中 根据不同平台以及DB安装媒质也不同 源/端的服务器各自都要安装GoldenGate软件② 在安装的机器上解压• 解压到GoldenGate的安装目录 gzip -dc V18159-01.zip | tar -xvo③ 相关目录的生成• 在GoldenGate的安装目录下执行以下脚本 (利用GoldenGate的GGSCI)$ ./ggsci GGSCI () 1> CREATE SUBDIRS EXIT40备注页用GoldenGate 配置复制的例子以下环境下配置GoldenGate 复制•OS :Oracle Enterprise Linux 5、DB :11g R2•源/端主机名:ggdemo01a/ •源/端DB 名:db1 / db2•复制Schema :SCOTT (仅复制DML 操作)•GoldenGate 的DB 用户:用户名=“gg”、密码=”gg”•Capture 名:capdb1、Data Pump 名:pumpdb12、Replicat 名:repdb2•GoldenGate 安装目录:“/oracle/ggs/”Trail Trail Replicat Capture Pump SCOTT 用户源DB (db1)SCOTT 用户端DB(db2)配置步骤Step1.Manager的配置(源/端都要配置)•编辑参数文件•在GGSCI中执行以下命令编辑参数文件GGSCI> EDIT PARAM mgr参数文件例子:PORT 7809 <-Manager使用的端口号(必须)AUTORESTART ER*, WAITMINUTES 1, RETRIES 3<-指定Extract/Replicat进程的自动重启源端配置步骤Step2.源DB 的配置①指定需要复制的对象(在源端)(需要打开表级的附加日志方式)•在GGSCI 中对SCOTT 用户执行以下命令(预先配置ORACLE_HOME 和SID 等环境变量)②附加日志模式的设置(在源端)•用Sqlplus 登录到源DB 执行以下命令(需要用有ALTER SYSTEM 权限的用户登录)GGSCI> DBLOGIN USERID gg, PASSWORD ggGGSCI> ADD TRANDATA scott.*SQL>ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;SQL>ALTER SYSTEM SWITCH LOGFILE;Capture配置步骤Step3.Capture的配置(GGSCI中执行)①启动ManagerGGSCI> START MGR②增加Capture任务(capdb1)GGSCI> ADD EXTRACT capdb1, TRANLOG, BEGIN NOW③本地Trail文件的位置指定GGSCI> ADD EXTTRAIL /oracle/ggs/dirdat/lt, EXTRACT capdb1Capture 配置步骤配置步骤((续)④配置参数文件参数文件例-EXTRACT :Extract (Capture )名-SETENV :环境参数的配置(指定ORACLE_HOME 和SID )-USERID gg, PASSWORD gg :GoldenGate 使用的DB 用户名密码-EXTTRAIL /oracle/ggs/dirdat/lt :本地Trail 文件目录以及Prefix-TABLE :复制对象(用Schema.Table 名指定。
goldengate capture default value
goldengate capture default value GoldenGate是一款用于实时数据复制和数据集成的软件平台,现在主要由Oracle公司开发和维护。
在对GoldenGate进行配置和部署时,我们经常遇到为Captured过滤条件指定默认值的需求。
这篇文章将逐步解释GoldenGate捕获默认值的概念,并提供一些实际场景中的示例。
第一步:理解GoldenGate捕获和复制概念在开始之前,让我们回顾一下GoldenGate的基本概念。
GoldenGate是一种异构数据库之间实时数据复制的解决方案。
它基于事务复制技术,实现了数据在源数据库和目标数据库之间的同步。
通过捕获、转换和传输数据,GoldenGate可以实现在不同数据库之间的数据一致性。
GoldenGate捕获过程基于事务日志(或称为事务日志、事务记录或事务纪录)。
GoldenGate可以通过读取事务日志来捕获源数据库中发生的数据修改。
捕获的数据可以直接传输到目标数据库,以实现实时数据复制。
第二步:了解默认值的概念默认值是在插入或更新操作中当没有明确指定数值时为数据库字段提供的预设值。
通常情况下,如果在插入或更新语句中没有指定字段的值,则数据库会将默认值应用于该字段。
默认值在GoldenGate捕获过程中也起到重要的作用。
当源数据库中的更新操作不包含某些字段的值时,捕获的事务日志可能不包括这些字段。
如果目标数据库中的表定义了默认值,则GoldenGate可以将这些默认值应用于复制的数据。
第三步:配置GoldenGate捕获默认值要为GoldenGate配置捕获默认值,我们需要进行以下步骤:1. 在GoldenGate的参数文件中指定“HANDLECOLLISIONS”选项为“reperror”。
HANDLECOLLISIONS的默认值是“exception”,但我们需要将其设置为“reperror”以便在默认值冲突时生成一个错误。
(完整版)oracleGoldenGate学习笔记
Oracle GoldenGate测试文档1.Oracle GoldenGate介绍GoldenGate TDM(交易数据管理)软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。
GoldenGate TDM 软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,其复制过程简图如下:如上图所示,GoldenGate TDM的数据复制过程如下:利用捕捉进程(Capture Process)在源系统端读取Online Redo Log或Archive Log,然后进行解析,只提取其中数据的变化如增、删、改操作,并将相关信息转换为GoldenGate TDM自定义的中间格式存放在队列文件中。
再利用传送进程将队列文件通过TCP/IP传送到目标系统。
捕捉进程在每次读完log中的数据变化并在数据传送到目标系统后,会写检查点,记录当前完成捕捉的log位置,检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续复制;目标系统接受数据变化并缓存到GoldenGate TDM队列当中,队列为一系列临时存储数据变化的文件,等待投递进程读取数据;GoldenGate TDM投递进程从队列中读取数据变化并创建对应的SQL语句,通过数据库的本地接口执行,提交到数据库成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。
由此可见,GoldenGate TDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。
GoldenGate TDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达9:1的压缩率对数据进行压缩,可以大大降低带宽需求。
在目标端,GoldenGate TDM可以通过交易重组,分批加载等技术手段大大加快数据投递的速度和效率,降低目标系统的资源占用,可以在亚秒级实现大量数据的复制,并且目标端数据库是活动的GoldenGate TDM提供了灵活的应用方案,基于其先进、灵活的技术架构可以根据用户需求组成各种拓扑结构,如图所示:GoldenGate TDM 可以提供可靠的数据复制,主要体现在下面三点:保证事务一致性GoldenGate TDM 在灾备数据库应用复制数据库交易的顺序与在生产中心数据库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上数据的完整性和读一致性,为实时查询和事务处理创造了条件。
GoldenGate oracle
GoldenGate原理及体系结构
Parameters, Process Groups and GGSCI
• extract 和replicat是以进程组出线的,server collector默 认情况下是自动生成的 • 一个进程组由如下几部分组成,并由GoldenGate系统中 唯一的group name所标识,由用户指定: 1. An extract or Replicat process 2. 相应的参数文件(ASCII file,由用户生成,编辑,维 护,控制相应的进程的行为,功能) 3. 相应的checkpoint文件 4. 其他相应的文件(如trail) • Process的添加,启动等,都是由GoldenGate Software Command Interface(GGSCI)完成,GGSCI还可以添加trail, 察看process状态等。
GoldenGate原理及体系结构
• 了解capture和delivery模块概念后,可以进一步了解GG的 使用平台:
GoldenGate原理及体系结构
• GoldenGate两种主要用法: 1. 主要用于change data capture and delivery from database transaction logs (online) 2. Initial load directly from database tables.(special run, batch)只执行一次
GoldenGate原理及体系结构
Checkpoint
GoldenGate原理及体系结构
Checkpoint(续)
Capture, Pump and Delivery save positions to a checkpoint file so they can recover in case of failure. 作用:保存相应进程当前的读取和写入的位置信息, 防止进程因某些原因重启后的重复读取或数据丢失
Goldengate从入门到精通
DATAGURU专业数据分析社区 Goldengate从入门到精通 讲师 顾铁军
安装步骤描述 – 源库的准备
建立OGG数据库用户 – OGG需要从数据字典读取表结构 – 如Oracle日志中没有足够信息,则需通过flash back或者直接读取数据库记录(例如, CLOB/BLOG/BINARY等) OGG数据库用户权限 – CREATE USER goldengate IDENTIFIED BY goldengate DEFAULT TABLESPACE USERS ; – GRANT CONNECT TO goldengate; – GRANT CREATE SESSION TO goldengate; – GRANT ALTER SESSION TO goldengate; – GRANT RESOURCE TO goldengate; – GRANT SELECT ANY DICTIONARY TO goldengate; – GRANT SELECT ANY TABLE TO goldengate; – GRANT FLASHBACK ANY TABLE TO goldengate; – GRANT ALTER ANY TABLE TO goldengate;
Goldengate从入门到精通 第1课
Goldengate概述
DATAGURU专业数据分析社区 Goldengate从入门到精通 讲师 顾铁军
Agenda
Goldengate是什么? Goldengate适用的场景 Goldengate基本原理
Goldengate复制拓扑和异构
Goldengate产品线介绍 Goldengate产品的下载
非侵入
低影响
直接部署和运行在源端数据服务 器时,CPU使用率<3%,内存 和网络带宽要求极低
GoldenGate基本原理、安装过程和基本维护知识讲解
G o l d e n G a t e基本原理、安装过程和基本维护目录一、GoldenGate介绍 (4)二、GoldenGate安装实施 (6)2.1创建GoldenGate软件安装目录 (6)2.2 GoldenGate的管理用户 (6)2.3安装GoldenGate软件 (7)2.4设置数据库归档模式 (7)2.5打开数据库的附加日志 (8)2.6开启数据库强制日志模式 (8)2.7创建GoldenGate管理用户 (8)2.8编辑GLOBALS参数文件 (9)2.9管理进程MGR参数配置 (9)2.10抽取进程EXTN参数配置 (10)2.11 传输进程DPEN参数配置 (10)2.12建立OGG的DDL对象 (12)2.13 数据初始化 (14)2.14 容灾端管理进程MGR参数配置 (16)2.15编辑GLOBALS参数文件 (17)2.16 容灾端复制进程REPN参数配置 (17)2.17创建复制进程repn (18)2.18启动生产端传输进程和容灾端复制进程 (18)2.19测试场景 (19)三.GoldenGate基本运维命令 (19)四、常见故障排除 (20)一、GoldenGate介绍GoldenGate软件是一种基于日志的结构化数据复制软件。
GoldenGate 能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。
GoldenGate能够支持多种拓扑结构,包括一对一,一对多,多对一,层叠和双向复制等等。
GoldenGate基本架构Oracle GoldenGate主要由如下组件组成● Extract● Data pump● Trails● Collector● Replicat● ManagerOracle GoldenGate 数据复制过程如下:利用抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作,将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中。
oracle ogg详解
oracle ogg详解Oracle GoldenGate (OGG) 是Oracle公司开发的一款高性能的实时数据复制与数据同步工具。
它能够在不同的数据库之间实现数据的实时复制与同步,确保数据的一致性和可靠性。
本文将详细介绍Oracle GoldenGate的原理、特点、使用场景以及一些常见的问题和解决方案。
一、Oracle GoldenGate的原理Oracle GoldenGate的原理可以简单概括为:先抓取源数据库中的数据变更,将其记录为日志,然后通过网络传输这些日志,最后在目标数据库中重新应用这些变更,实现数据的实时复制与同步。
具体的步骤如下:1. 捕获源数据库中的数据变更:Oracle GoldenGate通过挂载在源数据库上的提供商或通过数据库日志挖掘技术,捕获所有的数据变更操作,例如插入、更新、删除等。
2. 将数据变更记录为日志:GoldenGate将源数据库中的数据变更操作记录为一组序列化的日志记录,以便在接下来的步骤中进行传输与应用。
3. 传输日志:GoldenGate使用高效的网络传输协议,将记录的日志从源数据库传输到目标数据库。
4. 应用数据变更:在目标数据库中,GoldenGate根据日志记录的顺序重新应用这些数据变更,确保目标数据库与源数据库的数据保持一致。
二、Oracle GoldenGate的特点1. 高性能:Oracle GoldenGate具有高度优化的数据捕获、传输和应用机制,能够实现实时数据的传输与同步,保证数据的实时性和准确性。
它采用基于日志的增量复制方式,避免了全量数据复制的高开销。
2. 异构性:Oracle GoldenGate支持在不同的数据库平台之间实现数据的实时复制与同步,如Oracle、DB2、SQL Server等。
这使得企业可以根据实际需求选择最适合自己的数据库平台,而不用担心数据的迁移和同步问题。
3. 灵活性:Oracle GoldenGate支持灵活的数据过滤和转换功能,可以根据需求选择复制和同步的特定表、特定列或特定行。
ORACLE-技术文档-goldengate快速入门oracletooracleworkshop
ORACLE-技术文档-goldengate快速入门 oracle tooracle workshopORACLE GOLDENGAT快速入门-goldengate oracle to oracle workshopv 20120410 ()1 本文学习内容本文主要介绍:, 准备数据库和goldengate环境, 配置和执行initial data load, 配置和启动capture进程, 配置和启动delivery进程《技术文档模板》第 1页共4页2 实验场景操作系统:linuxOracle软件:oracle 11.2.0.13 实验内容1. 实验过程步骤首先我们来配置goldengate,完成本文oracle to oracle复制,共需要下面5步:, 准备环境, Initial load, 配置capture, 配置delivery, 验证结果本实验构架图:《技术文档模板》第 2页共4页2. 准备环境如果要进行本实验,需要进行下面的准备:, Goldengate软件必须在源和目标端上进行安装, 需要准备数据库,以及数据库初始化脚本, 源和目标数据库上要加载初始数据, Goldengate manager进程要进行配置和启动3. 实验测试环境准备1. 启动oracle数据库,源和目标都要启动2. 在源数据库上创建用户ggSql>create user ggusr identified by ggusr default tablespace example;3. 在目标库上创建gg用户Sql>create user ggusr identified by ggusr default tablespace example;4. 在源和目标上对gg用户进行授权《技术文档模板》第 3页共4页Grant connect,resource to ggusr; 5. 在源库和目标库上创建一些表(在gg的目录下,下有一些实验脚本) Conn ggusr/ggusr@demo_ora_create.sql运行完这个脚本会在ggusr用户下创建两个表:tcustmer ,tcustord 这两个表的定义如下:CREATE TABLE tcustmer(cust_code VARCHAR2(4),name VARCHAR2(30),city VARCHAR2(20),state CHAR(2),PRIMARY KEY (cust_code)USING INDEX);CREATE TABLE tcustord(cust_code VARCHAR2(4),order_date DATE,product_code VARCHAR2(8),order_id NUMBER,product_price NUMBER(8,2),product_amount NUMBER(6),transaction_id NUMBER,PRIMARY KEY (cust_code, order_date, product_code, order_id) USING INDEX);6. 在源库上往两个测试表中插入一些数据,ogg也提供了一个脚本《技术文档模板》第 4页共4页Conn ggusr/ggusr@demo_ora_insert.sql7. 在源上配置manager进程Ggsci:Edit params mgr=========This is a minimal configuration of manager processPORT 7809=========可以到gg home的dirprm下看到这个文件mgr.prm启动managerStart mgr查看manager进程状态Info mgr也可以通过ps –ef|grep ora查看mgr在操作系统上的进程,此进程信息带有参数文件和report文件地址信息查看mgr的report命令:view mgr report8. 在目标数据库上配置mgr,和源库操作完全相同的配置。
部分GoldenGate安装配置、常用命令与目标初始化
同步延迟
检查网络状况和数据库性能, 确保数据能够实时同步。
日志异常
检查日志文件,查找异常信息 ,并根据异常信息进行相应的
பைடு நூலகம்处理。
03 Goldengate常用命令
数据采集命令
DG_COMMAND
用于执行数据采集命令,如启动数据采集进程、停止数据采 集进程等。
DG_INFO
用于获取数据采集的详细信息,如数据采集状态、数据采集 进度等。
安装Goldengate服务器
按照安装向导的指示,完成Goldengate服务器的安装。
安装Goldengate客户端
在需要使用Goldengate的客户端计算机上安装Goldengate客户端。
配置Goldengate环境变量
设置Goldengate的环境变量,以便在命令行中调用Goldengate命令。
用于获取数据校验的详细信息,如数据校验状态、数据校验结果等。
其他常用命令
DG_CONFIG
用于配置Goldengate的相关参数,如设置数据采集频率、设置数据同步目标等 。
DG_STATUS
用于获取Goldengate的运行状态,如Goldengate的启动状态、运行日志等。
04 Goldengate目标初始化
无法连接到Goldengate目标数据库 。
解决方案
检查目标数据库的配置是否正确, 包括数据库连接字符串、用户名和 密码等。
02 Goldengate配置
数据源配置
数据源类型
支持多种数据源类型,如Oracle、MySQL、SQL Server等。
连接参数
需要提供数据库的地址、端口、用户名和密码等 连接参数。
集群版部署案例
GoldenGate学习小结
GoldenGate学习小结(1)章节目录GoldenGate architectureGoldenGate for Oracle1.支持的平台2.操作系统需求3.数据库需求4.对数据类型的支持5.对DML & DDL的支持6.安装GoldenGate For OracleInstalling GoldenGate DDL support for an Oracle databasePreparing tables for processingUninstalling GoldenGateGoldenGate数据复制初始化GoldenGate配置实例(Ora to Ora)实例1:使用Direct Load方法初始化数据同步实例2:配置一个Data Change Capture进程实例3:配置一个Data Change Delivery进程示例4.管理参数文件示例5:用户密码加密和传输数据加密(Using Encryption)示例6:配置Data Pump实现一对多拓扑方案示例7:使用SQL Query/存储过程实现不同字段的映射示例8:如何跳过特定的交易记录示例9:丢失Redo Log或Archived Log怎么办?示例10.配置GoldenGate read Archived Logs Only示例11.GoldenGate双向复制解决方案GoldenGate Active-Passive①配置从Active Source 到Standby环境②配置从Stanby 到Active Source环境③启动相应的进程④SwitchOver from Active Source to standby⑤FailOver from Active Source to standbyGoldenGate Active-Active①配置要求②Active-Active拓扑的一些限制③Active-Active拓扑下防止循环复制④配置步骤(1).Configuration from primary system to secondary system(2).Configuration from secondary system to primary system(3).管理冲突GoldenGate学习小结(2)_ArchitectureOracle GoldenGate主要由如下一些组件组成● Extract● Data pump● Replicat● Trails or extract files● Checkpoints● Manager● Collector如下图是一个最基本的GoldenGate配置逻辑体系结构示意图注,1)Extract抽取事务变化日志可以有如下两种方式● The database transaction logs (such as the Oracle redo logs or SQL/MX audit trails).This method is known aslog-based extraction.When Extract is installed as a log-based implementation, it can read the transactionlogs directly.● A GoldenGate Vendor Access Module (VAM). The VAM is a communication layer that passes data changes andtransaction metadata to the Extract process. The database vendor provides the components that extract thedata changes and pass it to Extract. This method is known as VAM-based extraction.2)Data Pump是一个次级的Extract Group,如果你的GG环境中不使用Data Pump的话,那么Primary Extract Group必须直接将trail通过网络写到Target系统上.参见后面的示例6:配置Data Pump实现一对多拓扑方案.3)默认情况下,Replicat是实时复制的,如果因为某种需要需要延迟复制的话,那么可以通过Replicat Group的如下DEFERAPPLYINTERVAL参数来控制.该参数允许delay的最大时间是7天.GoldenGate学习小结(3)_For Oracle1.支持的平台支持的Oracle Database 版本在当前的Oracle GoldenGate 10.4版本中,支持如下Oracle Database版本√Oracle 8i (DML support only)√Oracle 9.1 and 9.2 (DML and DDL support)√Oracle 10.1 and 10.2 (DML and DDL support)√Oracle 11g (DML and DDL support)支持的操作系统平台几乎所有主流的操作系统,GoldenGate都支持√Windows 2000, 2003, XP√Linux√Sun Solaris√HP NonStop√HP-UX√HP TRU64√IBM AIX√IBM z/OS2.操作系统需求内存要求按照Oracle GoldenGate的工作原理和体系结构,在每个复制数据源和目标端都需要安装一套GoldenGate软件,同时需要分别启动一个GoldenGate实例,一个GoldenGate实例就是一个管理进程(Manager process),这个管理进程也是整个GoldenGate实例运行时最主要的控制进程. GoldenGate是操作系统内存的使用是通过操作系统来控制的,而不是通过GoldenGate程序控制的,GoldenGate进程会根据需要从OS那里分配相应的virtual memory.√GoldenGate GGSCI命令接口工具对于每个GoldenGate实例可以支持并发300个Extract和Replicat进程.√每个Extract和Replicat进程需要大约25-55 MB内存,这主要取决于transaction的大小和并发的transaction数量.所以,根据上面2个条件,GoldenGate对操作系统内存的需求主要取决于Extract和Replicat进程数.DISK空间需求安装文件从Oracle 官方网站上download下来的GoldenGate 压缩软件包大约是50M,所以在分配磁盘空间前你需要提高考虑到这些额外的资源开销,当然了,安装完毕后,你就可以把这个压缩软件包删除了.工作目录每个GoldenGate实例的工作目录(working directories and binaries),大约需要40M的空间,如果你要同一台Server安装多个GoldenGate实例到不同的目录/文件系统下话,那么就需要多倍的空间分配,在考虑空间分配的时候,也需要考虑这个因数.辅助空间这部分空间主要用于存放GoldenGate Trails,它包含了工作数据。
GoldenGate基本原理、安装过程和基本维护
目录一、GoldenGate介绍 (3)二、GoldenGate安装实施 (5)2.1创建GoldenGate软件安装目录 (5)2.2 GoldenGate的管理用户 (5)2.3安装GoldenGate软件 (6)2.4设置数据库归档模式 (6)2.5打开数据库的附加日志 (7)2.6开启数据库强制日志模式 (7)2.7创建GoldenGate管理用户 (7)2.8编辑GLOBALS参数文件 (8)2.9管理进程MGR参数配置 (8)2.10抽取进程EXTN参数配置 (9)2.11 传输进程DPEN参数配置 (10)2.12建立OGG的DDL对象 (11)2.13 数据初始化 (12)2.14 容灾端管理进程MGR参数配置 (14)2.15编辑GLOBALS参数文件 (15)2.16 容灾端复制进程REPN参数配置 (15)2.17创建复制进程repn (17)2.18启动生产端传输进程和容灾端复制进程 (17)2.19测试场景 (17)三.GoldenGate基本运维命令 (17)四、常见故障排除 (18)一、GoldenGate介绍GoldenGate软件是一种基于日志的结构化数据复制软件。
GoldenGate 能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。
GoldenGate能够支持多种拓扑结构,包括一对一,一对多,多对一,层叠和双向复制等等。
GoldenGate基本架构Oracle GoldenGate主要由如下组件组成●Extract●Data pump●Trails●Collector●Replicat●ManagerOracle GoldenGate 数据复制过程如下:利用抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作,将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中。
GOLDENGATE 9.50关于DDL复制读书笔记.
GOLDENGATE 9.50关于DDL复制读书笔记1、DDL marker table该表的缺省名称为:GGS_MARKER,用来存储数据库表中的DDL变化,该表只能插入INSERT;2、Sequence on marker table用以标识表GGS_MARKER的列数据,类似于数据库的sequence数据;3、DDL history tableDDL 历史记录表;4、Object ID history table用以记录DDL语句操作的数据库对象;5、DDL triggerDDL操作引发的操作,把DDL语句写入GGS_MARKER、以及history表;6、DDL SHEMA需要用来复制DDL操作的数据库用户名,必须在参数文件GLOBALS中声明;7、USER ROLE用户用以复制DDL操作的规则8、Internal setup table;内部安装表,用以记录内部数据使用;9、DUMPDLL TABLES代表一系列表,用以存储DUMPDLL命令查询的数据库状态数据—元数据;10、DDL_PIN用以跟踪DDL操作的标记,以及性能提高的参数;11、ddl_cleartrace.sql清空DDL跟踪文件脚本;12、ddl_status.sql用来查询DDL安装包的安装情况;13、Marker_status.sql用以查询MARKER表的安装情况;14、Ddl_tracelevel.sql设置DDL跟踪文件的等级;15、Object ID history table用以记录DDL语句操作的数据库对象;二、安装DDL的顺序1、首先确认安装使用的数据库用户,必须有SYSDBA权限;2、编写全局参数文件GLOBALSGGSSCHEMA DA TABASE_SYSDBA;3、一些参数和对象的名称改变必须在安装过程中修改,在运行过程中修改必须使用固定的脚本文件;并且参数名称的修改必须在GLOBALS文件中声明;4、关闭ORACLE RECYCLE—9I中没有,否则将无法安装;5、安装目录必须和GOLDENGATE是同一个目录;6、三、数据库与DDL同步相关的指南1、GOLDENGA TE 支持DDL复制的目标和操作范围Clusters----集群Functions---函数Indexes---索引Packages---数据包Procedures—过程Roles---规则Sequences---序列号Synonyms---同义词--- GOLDENGA TE关于Synonyms复制,不复制Synonyms里面的数据;Tables---数据表Tablespaces---表空间Triggers---触发器Types---类型Views—视图materialized views (also known as--snapshots)物化视图users---用户2、ORACLE有些保留的SCHEMA是不允许使用的(注意)四、TABLE DEFINE---表的定义;当DDL数据被复制的时候,相关的表的数据转换,GOLDENGATE是不允许一些特殊的数据类型的转换的;参考详细可以支持的数据类型转换;DDL数据复制时候,目标和源数据库操作的对象必须是一致的;ASSUMETARGETDEFS参数在REPLICAT参数文件的使用,而SOURCEDEFS参数在源端使用,一旦数据库对象产生了DDL操作那必然,REP进程会ABEND;五、TRUNCATE操作GOLDENGATE支持TRUNCATE操作是独立与DDL同步的一部分内容;在9。
GOLDENGATE 9.50关于DDL复制读书笔记
GOLDENGATE 9.50关于DDL复制读书笔记1、DDL marker table该表的缺省名称为:GGS_MARKER,用来存储数据库表中的DDL变化,该表只能插入INSERT;2、Sequence on marker table用以标识表GGS_MARKER的列数据,类似于数据库的sequence数据;3、DDL history tableDDL 历史记录表;4、Object ID history table用以记录DDL语句操作的数据库对象;5、DDL triggerDDL操作引发的操作,把DDL语句写入GGS_MARKER、以及history表;6、DDL SHEMA需要用来复制DDL操作的数据库用户名,必须在参数文件GLOBALS中声明;7、USER ROLE用户用以复制DDL操作的规则8、Internal setup table;内部安装表,用以记录内部数据使用;9、DUMPDLL TABLES代表一系列表,用以存储DUMPDLL命令查询的数据库状态数据—元数据;10、DDL_PIN用以跟踪DDL操作的标记,以及性能提高的参数;11、ddl_cleartrace.sql清空DDL跟踪文件脚本;12、ddl_status.sql用来查询DDL安装包的安装情况;13、Marker_status.sql用以查询MARKER表的安装情况;14、Ddl_tracelevel.sql设置DDL跟踪文件的等级;15、Object ID history table用以记录DDL语句操作的数据库对象;二、安装DDL的顺序1、首先确认安装使用的数据库用户,必须有SYSDBA权限;2、编写全局参数文件GLOBALSGGSSCHEMA DA TABASE_SYSDBA;3、一些参数和对象的名称改变必须在安装过程中修改,在运行过程中修改必须使用固定的脚本文件;并且参数名称的修改必须在GLOBALS文件中声明;4、关闭ORACLE RECYCLE—9I中没有,否则将无法安装;5、安装目录必须和GOLDENGATE是同一个目录;6、三、数据库与DDL同步相关的指南1、GOLDENGA TE 支持DDL复制的目标和操作范围Clusters----集群Functions---函数Indexes---索引Packages---数据包Procedures—过程Roles---规则Sequences---序列号Synonyms---同义词--- GOLDENGA TE关于Synonyms复制,不复制Synonyms里面的数据;Tables---数据表Tablespaces---表空间Triggers---触发器Types---类型Views—视图materialized views (also known as--snapshots)物化视图users---用户2、ORACLE有些保留的SCHEMA是不允许使用的(注意)四、TABLE DEFINE---表的定义;当DDL数据被复制的时候,相关的表的数据转换,GOLDENGATE是不允许一些特殊的数据类型的转换的;参考详细可以支持的数据类型转换;DDL数据复制时候,目标和源数据库操作的对象必须是一致的;ASSUMETARGETDEFS参数在REPLICAT参数文件的使用,而SOURCEDEFS参数在源端使用,一旦数据库对象产生了DDL操作那必然,REP进程会ABEND;五、TRUNCATE操作GOLDENGATE支持TRUNCATE操作是独立与DDL同步的一部分内容;在9。
Oracle GoldenGate技术培训(公司内部培训)
商业智能和决策支持的实时信息访问
• 报表系统可以即时获得生产数据 • 分析系统可以访问到关键的生产信息 • 异构平台的数据交换
数 据 复 制 的 拓 扑 结 构
降低成本 降低风险 实现卓越的运营
满 足 实 时 数 据 需 求 的 企 业 级 解 决用 方例 案
• •
Server Sybase ASE Teradata Enscribe SQL/MP SQL/MX
• •
• •
ODBC compatible databases ETL products JMS message queues MySQL TimesTen
HP NonStop HP-UX HP TRU64 HP OpenVMS IBM AIX IBM z/OS
Oracle GoldenGate技术交流
XX公司技术沙龙第二期 XXX 2017年3月
Oracle GoldenGate介绍
前GoldenGate公司简介
• 创建于1995年,总部在美国旧金山。 • 数据复制领域的专业公司。 • 全球超过4,000个安装许可,分布在政府、银行、制造、传媒、电信、 证券、医疗和零售等各大行业,其中有多个全球财富500强企业。 • Oracle、IBM、HP、Microsoft、Sybase、Teradata等著名企业建立了 紧密合作关系。 • 中科领新信息技术有限公司是GoldenGate公司中国区总代理和技术 支持中心。 • 2009年被Oracle收购。
高可用性: 双业务中心(Active-Active)
实现: • 负载均衡,提高系统整体性能 • 连续可用,快速的容灾接管 • 冲突检测和处理
Oracle GoldenGate 官方学习文档
Oracle GoldenGate for Oracle to OracleObjectiveUpon completion of this lesson, you will be able to keep two Oracle databases synchronized.During this lesson, you will:⏹Prepare the database and the Oracle GoldenGate environment.⏹Configure and execute the initial data load process⏹Configure and start the change capture of database operations.⏹Configure and start the change delivery process.Oracle to Oracle configurationThe following diagram illustrates Oracle GoldenGate installed on two systems connected by TCP/IP– one containing the source data and the other the replicated data.Overview of tasksPrepare the EnvironmentIn order to execute this lesson, the GoldenGate application must be installed on both the source and target systems. The installation includes a sample database and scripts to generate initial data as well as subsequent update operations. The source and target tables are createdand loaded with initial data. The GoldenGate Manager processes are also started so that other processes may be configured and started.Configure Initial Data LoadTo initially load data, there are techniques such as Backup/Restore or Export/Import, both of which have pros and cons. Or you may use the GoldenGate application to perform your initial data load while the application remains active. This lesson demonstrates using Extract to pull data from the source tables and sending the data directly to the Replicat on the target system.Configure Change CaptureFor log-based Oracle capture, the capture process is configured to capture change data directly from the Oracle online redo logs or archive logs and store the changes in queues known as GoldenGate remote trails.Configure Change DeliveryOnce the tables have been initially loaded with data, the delivery process is configured to deliver the captured change data into the target database.Exercise 1.Prepare the EnvironmentObjectiveThe goals of this exercise are to:⏹Configure and start the Manager processes⏹Create and load practice data to Oracle tables⏹Add supplemental loggingPrepare your Oracle source environment1. Configure the Manager process on the sourceOn the <source> system, create the Manager parameter file and specify the port it should use.❍Create the Manager parameter file.Shell> cd <install location>Shell> ggsciGGSCI> EDIT PARAMS MGR❍Use the editor to assign a port.❍Start the Manager.GGSCI> START MGR❍Verify that the Manager has started.GGSCI> INFO MGR2. Create the source tables and load the initial data.Using SQL*Plus, create and populate the TCUSTMER and TCUSTORD tables by running the demo_ora_create.sql and demo_ora_insert.sql files found in the install directory.Execute the following commands on the <source> system.Shell> cd <install location>Shell> sqlplus <login>/<password>SQL> @demo_ora_createSQL> @demo_ora_insertVerify the results:SQL> select * from tcustmer;SQL> select * from tcustord;SQL> exit3. Add supplemental loggingUsing GGSCI, log in to the database on the <source> and turn on supplemental logging for the TCUSTMER and TCUSTORD tables.Shell> ggsciGGSCI> DBLOGIN USERID <login>, PASSWORD <password>GGSCI> ADD TRANDATA <owner/schema>.TCUSTMERGGSCI> ADD TRANDATA <owner/schema>.TCUSTORDVerify that supplemental logging has been turned on for these tables.GGSCI> INFO TRANDATA <owner/schema>.TCUST*Prepare your target Oracle environmentConfigure the Manager1. Configure the Manager process on the target systemExecute the following commands on the <target> system.❍Start the command interfaceShell> cd <install location>Shell> ggsci❍Specify the port that the Manager should use.GGSCI> EDIT PARAMS MGR❍Start ManagerGGSCI> START MANAGERVerify the results:GGSCI> INFO MANAGERCreate the tables2. Create target Oracle tablesExecute the following commands on the <target> system to run the script that creates the tables.Shell> cd <install location>Shell> sqlplus <login>/<password>SQL> @demo_ora_createVerify the results:SQL> desc tcustmer;SQL> desc tcustord;SQL> exitExercise 2.Initial Data Load using Direct Load MethodObjectiveThe goals of this exercise are to:⏹Configure a task to load the initial data from a source table⏹Configure the delivery of the data to the target⏹Execute the initial load of data.Initial data capture1. Add the initial load capture batch task groupExecute the following commands on the <source> system to create an Extract named EINI<unique id>1.GGSCI> ADD EXTRACT EINI<unique id>, SOURCEISTABLEVerify the result:GGSCI> INFO EXTRACT *, TASKS2. Configure the initial load capture parameter fileExecute the following commands on the <source> system.GGSCI> EDIT PARAMS EINI<unique id>1 The process names used in lab exercises, for example EINIBD, are made up of 1) one character for the GoldenGate process (E for Extract, R for Replicat); 2) three or four to describe the process type (INI for initial data load, ORA for capture from or delivery to an Oracle database, etc.) and 3) two characters to create a unique identifier (usually your initials)..Initial data delivery3. Add the initial load delivery batch taskExecute the following commands on the <target> system.GGSCI> ADD REPLICAT RINI<unique id>, SPECIALRUN Verify the results:GGSCI> INFO REPLICAT *, TASKS4. Configure the initial load delivery parameter fileExecute the following commands on the <target> system.GGSCI> EDIT PARAMS RINI<unique id>5. Execute the initial load processExecute the following commands on the <source> system.GGSCI> START EXTRACT EINI<unique id>Verify the results on the <source> system:GGSCI> VIEW REPORT EINI<unique id>Verify the results on the <target> system:GGSCI> VIEW REPORT RINI<unique id>Exercise 3.Configure Change CaptureObjectiveThe goals of this exercise are to:⏹Configure and add the Extract process that will capture changes.⏹Add the trail that will store the changes.⏹Start the Extract process.Configure change capture1. Add the Extract groupExecute the following command on the <source> system to add an Extract group named EORA<unique id>.GGSCI> ADD EXTRACT EORA<unique id>, TRANLOG, BEGIN NOW, THREADS <instances>Verify the results:GGSCI> INFO EXTRACT EORA<unique id>2. Create the Extract parameter fileExecute the following commands on the <source> system.GGSCI> EDIT PARAM EORA<unique id>Note: Record the two characters selected for your <trail id>: ______. You will need this in the next step and when you set up the Replicat.Note: When Oracle Automatic Storage Management (ASM) is in use, the TRANLOGOPTIONS ASMUSER and ASMPASSWORD must be set in the Extract parameter file. For more information refer to the GoldenGate for Windows & UNIX Administrator and Reference manuals.3. Define the GoldenGate trailExecute the following command on the <source> to add the trail that will store the changes on the target.GGSCI> ADD RMTTRAIL ./dirdat/<trail id>, EXTRACT EORA<unique id>, MEGABYTES 5Verify the results:GGSCI> INFO RMTTRAIL *4. Start the capture processGGSCI> START EXTRACT EORA<unique id>Verify the results:GGSCI> INFO EXTRACT EORA<unique id>, DETAILGGSCI> VIEW REPORT EORA<unique id>Discussion points1. Identifying a remote systemWhat parameter is used to identify the remote target system?_________________________________________________________________________ 2. Sizing the GoldenGate trailWhere do you set how large a GoldenGate trail file may get before it rolls to the next file?What option do you use?_________________________________________________________________________ _________________________________________________________________________Exercise 4.Configure Change DeliveryObjectiveThe goals of this exercise are to:⏹Set up the checkpoint table on the target system.⏹Create a named group that includes the Replicat process and the checkpoint tables.⏹Configure the Replicat group by adding parameters.⏹Start the Replicat group.Set up the checkpoint table1. Create a GLOBALS file on the target systemExecute the following commands on the <target> system.❍Create and edit the GLOBALS parameter file to add the checkpoint table.Shell> cd <install location>Shell> ggsciGGSCI> EDIT PARAMS ./GLOBALSIn the text editor, type:❍Record the checkpoint table owner and name, then save and close the file.Table owner ____________________ name ___________________Note: You could name the table anything you want, but for training purposes we areusing ggschkpt.❍Verify that the GLOBALS file was created in the root GoldenGate directory, and remove any file extension that was added.2. Activate the GLOBALS parametersFor the GLOBALS configuration to take effect, you must exit the session in which the changes were made. Execute the following command to exit GGSCI.GGSCI> EXIT3. Add a Replicat checkpoint tableOn the <target> system, execute the following commands in GGSCI:Shell> cd <install location>Shell> ggsciGGSCI> DBLOGIN USERID <login>, PASSWORD <password>GGSCI> ADD CHECKPOINTTABLEConfigure Change Delivery4. Add the Replicat groupExecute the following command on the <target> system to add a delivery group namedRORA<unique id>.GGSCI> ADD REPLICAT RORA<unique id>, EXTTRAIL ./dirdat/<trail id> Note: Refer to your Extract set up for the correct two-character <trail id>.5. Create Replicat parameter fileExecute the following commands on the <target> system to bring up the parameter file in the editor.GGSCI> EDIT PARAM RORA<unique id>Type in the following parameters6. Start the Replicat processGGSCI> START REPLICAT RORA<unique id>Verify the results:GGSCI> INFO REPLICAT RORA<unique id>Discussion pointsSearch in the Windows/UNIX Reference Guide for the information on the followingquestions.1. When to use HANDLECOLLISIONSWhen would you use HANDLECOLLISIONS? What does it do?_________________________________________________________________________ _________________________________________________________________________2. When should you use ASSUMETARGETDEFS?_________________________________________________________________________ _________________________________________________________________________3. What is the purpose of the DISCARDFILE?_________________________________________________________________________ ________________________________________________________________________Exercise 5.Generate Activity and Verify ResultsObjectiveThe goals of this exercise are to:⏹Execute miscellaneous update, insert, and delete operations on the source system.⏹Verify the delivery of the changes to the target⏹Turn off the error handling used for initial load.Generate database operations1. Execute miscellaneous update, insert, and delete operationsExecute the following commands on the <source> system.Shell> cd <install location>Shell> sqlplus <login>/<password>SQL> @demo_ora_miscVerify change capture and delivery2. Verify results on the source systemExecute the following commands on the <source> system.SQL> select * from tcustmer;SQL> select * from tcustord;SQL> exitShell> ggsciGGSCI> SEND EXTRACT EORA<unique id>, REPORTGGSCI> VIEW REPORT EORA<unique id>3. Verify your results on the target systemExecute the following commands on the <target> system to verify the target data.Shell> cd <install location>Shell> sqlplus <userid>/<password>SQL> select * from tcustmer;SQL> select * from tcustord;SQL> exitShell> ggsciGGSCI> SEND REPLICAT RORA<unique id>, REPORTGGSCI> VIEW REPORT RORA<unique id>Turn off error handling4. Turn off initial load error handling for the running delivery processGGSCI> SEND REPLICAT RORA<unique id>, NOHANDLECOLLISIONS 5. Remove initial load error handling from the parameter fileGGSCI> EDIT PARAMS RORA<unique id>Remove the HANDLECOLLISIONS parameter.Exercise Name。
GoldenGate使用指南 -修订版
部署GoldenGate PUMP方式支持DDL单向复制DDL复制概述:①Goldengate开启DDL复制后,不需要对原有的表和以后新加的表执行add trandata操作这一点根据经验得出。
②目标端默认支持DDL复制,故目标端Replicat进程参数文件中不需要添加DDL 语句,当然源端Data Pump进程参数文件中也不需要加DDL相关的参数③开启DDL复制后,目标端Replicat进程参数文件中必须配置忽略或者过滤DDLERROR的参数④Goldengate数据库(dblogin userid xxx)用户和Oracle数据库自带的用户的DDL 操作将不会被复制⑤当开启Full DDL支持时,不要在参数文件中使用GETTRUNCATES参数⑥默认情况下ALTER DATABASE、ALTER SYSTEM不会被复制⑦注意:在target DB上,ggsusr必须授予DBA的角色给他,否则dblogin登录不了数据库注:红色字体是不需要操作的步骤下图是这次配置架构图:一、软件安装(这两步源端和目标端步骤一样)安装平台:redhat linux x86 32bitgoldengate:Oracle_GoldenGate_V11.1.1.1.0_for_Oracle_11g_on_Linux_x86 oracle版本:11.2.0.1.0(建议使用oracle用户安装goldengate)解压软件cd /u01/app上传V26188-01.zip到/u01/app目录$unzip V26188-01.zip$mkdir oggchown -R oracle:oinstall fbo_ggs_Linux_x86_ora11g_32bit.tarchmod 755 fbo_ggs_Linux_x86_ora11g_32bit.tarmv fbo_ggs_Linux_x86_ora11g_32bit.tar ./oggcd ogg[oracle@hxzg1 ogg]$ tar –xvf fbo_ggs_Linux_x86_ora11g_32bit.tar设置环境变量export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/u01/app/oggexport PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/u01/app/ogg[oracle@hxzg1 ~]$ source .bash_profile二、安装goldengate$cd /u01/app/ogg$./ggsci> CREATE SUBDIRS//创建goldengate安装目录> exit至此,goldengate已安装完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle GoldenGate测试文档1.Oracle GoldenGate介绍 (1)2.Oracle GoldenGate For Oracle(windows 平台) 安装 (5)3.数据库复制实施文档(DML) (7)3.1准备工作 (7)3.2配置GoldenGate (8)3.2.1配置SourceDB的GoldenGate (8)3.2.2 配置TargetDB的GoldenGate (9)3.3 测试DML操作 (11)4.GoldenGate Support DDL安装 (15)5.玩玩GoldenGate (23)1.Oracle GoldenGate介绍GoldenGate TDM(交易数据管理)软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。
GoldenGate TDM 软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,其复制过程简图如下:如上图所示,GoldenGate TDM的数据复制过程如下:利用捕捉进程(Capture Process)在源系统端读取Online Redo Log或Archive Log,然后进行解析,只提取其中数据的变化如增、删、改操作,并将相关信息转换为GoldenGate TDM自定义的中间格式存放在队列文件中。
再利用传送进程将队列文件通过TCP/IP传送到目标系统。
捕捉进程在每次读完log中的数据变化并在数据传送到目标系统后,会写检查点,记录当前完成捕捉的log位置,检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续复制;目标系统接受数据变化并缓存到GoldenGate TDM队列当中,队列为一系列临时存储数据变化的文件,等待投递进程读取数据;GoldenGate TDM投递进程从队列中读取数据变化并创建对应的SQL语句,通过数据库的本地接口执行,提交到数据库成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。
由此可见,GoldenGate TDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。
GoldenGate TDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达9:1的压缩率对数据进行压缩,可以大大降低带宽需求。
在目标端,GoldenGate TDM可以通过交易重组,分批加载等技术手段大大加快数据投递的速度和效率,降低目标系统的资源占用,可以在亚秒级实现大量数据的复制,并且目标端数据库是活动的GoldenGate TDM提供了灵活的应用方案,基于其先进、灵活的技术架构可以根据用户需求组成各种拓扑结构,如图所示:GoldenGate TDM 可以提供可靠的数据复制,主要体现在下面三点:保证事务一致性GoldenGate TDM 在灾备数据库应用复制数据库交易的顺序与在生产中心数据库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上数据的完整性和读一致性,为实时查询和事务处理创造了条件。
检查点机制保障数据无丢失GoldenGate TDM的抽取和复制进程使用检查点机制记录完成复制的位置。
对于抽取进程,其检查点记录当前已经抽取日志的位置和写队列文件的位置;对于投递进程,其检查点记录当前读取队列文件的位置。
检查点机制可以保证在系统、网络或GoldenGate TDM进程故障重启后数据无丢失。
可靠的数据传输机制GoldenGate TDM 用应答机制传输交易数据,只有在得到确认消息后才认为数据传输完成,否则将自动重新传输数据,从而保证了抽取出的所有数据都能发送到备份端。
数据传输过程中支持128位加密和数据压缩功能。
Oracle 公司的GoldenGate产品,可以在异构的IT基础结构之间实现大量数据的秒一级的数据捕捉、转换和投递。
GoldenGate可以支持几乎所有常用操作系统如和数据库平台,如下表所示:2.Oracle GoldenGate For Oracle(windows 平台) 安装GoldenGate 的安装非常简单,将解压缩安装文件到指定目录。
比如安装文件解压缩后的路径为d:\ggs安装步骤如下:1.进入命令行2.切换到ggs目录下3.输入命令install addservice addevents4.输入ggsci进入GoldenGate的命令行5.输入create subdirsOK,GoldenGate安装就已经完成了。
实际操作如下C:\Documents and Settings\PONY>d:D:\>cd ggsD:\ggs>install addservice addeventsOracle GoldenGate messages installed successfully.Service 'GGSMGR' created.Install program terminated normally.D:\ggs>ggsciOracle GoldenGate Command Interpreter for OracleVersion 10.4.0.19 Build 002Windows (optimized), Oracle 10 on Sep 18 2009 15:54:55Copyright (C) 1995, 2009, Oracle and/or its affiliates. All rights reserved.GGSCI (PONY) 1> create subdirsCreating subdirectories under current directory D:\ggsParameter files D:\ggs\dirprm: createdReport files D:\ggs\dirrpt: created Checkpoint files D:\ggs\dirchk: created Process status files D:\ggs\dirpcs: createdSQL script files D:\ggs\dirsql: created Database definitions files D:\ggs\dirdef: createdExtract data files D:\ggs\dirdat: created Temporary files D:\ggs\dirtmp: created Veridata files D:\ggs\dirver: created Veridata Lock files D:\ggs\dirver\lock: created Veridata Out-Of-Sync files D:\ggs\dirver\oos: created Veridata Out-Of-Sync XML files D:\ggs\dirver\oosxml: created Veridata Parameter files D:\ggs\dirver\params: created Veridata Report files D:\ggs\dirver\report: created Veridata Status files D:\ggs\dirver\status: created Veridata Trace files D:\ggs\dirver\trace: created Stdout files D:\ggs\dirout: created3.数据库复制实施文档(DML)3.1准备工作◆准备两台机器,分别为SourceDB, TargetDB,通过TCP/IP网络进行互连SourceDB :WIN XP环境,Oracle 10g 10.2.0.1.0TargetDB :WIN 2003 环境 Oracle 10g 10.2.0.1.0◆必须保证SourceDB是运行在归档模式下。
◆目的:将SourceDB中相关Schema中的数据同步复制到TargetDB相对应的Sechema 中本文中要同步的是SouceDB中的SAJET,SJ,SMT,LANG到Target中的SAJET,SJ,SMT,LANG 用户下◆首先要保持SourceD, TargetDB相关Schema中的初始数据一致,可以通过Exp/Imp,Rman,冷备等方式实现.◆双方DB建立GoldenGate用户,赋予DBA权限,用于GoldenGate连接DB.◆双方DB安装GoldenGate,安装方式如第二章节所示◆SourceDB必须开始最小附加日志模式通过以下语句查看DB是否开启了最小附加日志模式SQL> select SUPPLEMENTAL_LOG_DA TA_MIN from v$database;SUPPLEME--------YES如果没有开启数据库的最小附加日志,则通过以下语句开启SQL>alter database add supplemental log data;◆开启表的最小附加日志,通过GoldenGate命令行来添加GGSCI (PONY) 1> dblogin userid sajet password techSuccessfully logged into database.GGSCI (PONY) 2> add trandata sajet.*第一条命令表示登录到Database第二条命令表示添加Sajet用户下所有表的最小附加日志同样的命令开启SJ,LANG,SMT用户下的表的最小附加日志。
3.2配置GoldenGate3.2.1配置SourceDB的GoldenGateSourceDB端需要配置mgr进程,添加一个extract进程,和一个远端队列。
1.配置mgr参数GGSCI (PONY) 2> edit param mgr此时系统自动会新建一个名为mgr的参数文件,填入以下内容后保存PORT 7809--mgr进程使用的TCP/IP端口侦听请求2.新增一个抽取进程,在GGSCI命令行中输入如下命令:GGSCI (PONY) 1> add extract ext1,tranlog,begin nowEXTRACT added.---新增一个抽取进程,负责抓取SourceDB中变化的数据,基于日志方式,立即生效3.配置抽取进程GGSCI (PONY) 2> edit param ext1此时系统会自动新建一个名为ext1的参数文件,填入以下内容后保存extract ext1userid goldengate,password goldengatermthost 172.17.17.61, mgrport 7809rmttrail d:\ggs\dirdat\r1dynamicresolutiongettruncatestable sajet.*;table sj.*;table smt.*;table lang.*;--抽取进程名为ext2连接本机DB的账号和密码远程主机地址以及服务端口号(TargetDB)远程队列的位置(TargetDB)优化参数,动态分析表结构是否抓取Truncate的数据需要抽取哪些table。