Oracle GoldenGate(OGG)原理与使用指南

Oracle GoldenGate(OGG)原理与使用指南

基本原理

Oracle GoldenGate(OGG)基于日志的结构化数据复制软件,通过捕获、存储、传输和应用数据变化,实现源数据库与目标数据库的数据同步。

  • 数据捕获 :抽取进程(Extract Process)在源端数据库读取 Online Redo Log 或 Archive Log,解析并提取数据的增删改变化信息。
  • 数据存储 :将抽取的信息转换为 GoldenGate 自定义的中间格式,存放在队列文件(trail file)中。
  • 数据传输 :利用传输进程将队列文件(trail file)通过 TCP/IP 传送到目标系统。
  • 数据应用 :目标端的 Server Collector 进程接收数据变化信息并缓存到 GoldenGate 队列文件(trail file)中,复制进程(Replicat process)读取并解析为 SQL 语句,应用到目标端数据库。

核心组件

  • Manager :运行在源端和目标端上,负责启动、监控、重启 GoldenGate 的其它进程,管理 trail 文件及 Reporting,报告错误及事件,分配数据存储空间,发布阀值报告等。
  • Extract :运行在数据库源端,负责从源端数据表或者日志中捕获数据,包括初始数据装载和同步变化捕获。
  • Data Pump :是一个可选的辅助 Extract 机制,可将源端的 trail 文件发送到远程目标端,支持复杂的数据过滤或者转换,有效规划存储资源。
  • Trail :是 GoldenGate 用于存储捕获到的数据变化的文件,存在于源端、目标端或中间系统上。
  • Collector :运行在目标端的一个后台进程,与 Pump 进程对应,负责接收从 TCP/IP 网络传输过来的数据库变化,并写到 Trail 文件里。
  • Replicat :运行在目标端系统的一个进程,负责读取目标端 trail 文件中的内容,并将其解析为 DML 或 DDL 语句,然后应用到目标数据库中。

Oracle容灾 - GoldenGate

使用指南

  1. 安装与配置

    • 根据操作系统选择对应的 OGG 软件包进行安装,安装过程中需指定 GoldenGate 安装目录。
    • 安装完成后,配置 Manager 参数文件,设置端口号、日志文件路径等基本信息。
  2. 抽取进程配置

    • 通过创建 Parameter File 来定义抽取进程的相关参数,如抽取的数据源、抽取的对象、日志读取方式等。
    • 添加抽取进程和远程trail文件:ADD EXTRACT ext01,INTEGRATED TRANLOG,BEGIN NOWADD RMTTRAIL /opt/oracle/ogg/dirdat/ex, EXTRACT EXT01
  3. 传输进程配置

    • 如果使用 Data Pump 进程进行数据传输,则需要配置其参数文件,指定目标端的 IP 地址、端口号、用户名、密码等连接信息,以及本地 trail 文件的目录和文件名等。
    • 添加数据泵进程和远程trail文件:ADD EXTRACT pmp01, exttrailsource /opt/oracle/ogg/dirdat/exADD RMTTRAIL /opt/oracle/ogg/dirdat/pt, EXTRACT PMP01
  4. 复制进程配置

    • 创建复制进程的 Parameter File,配置目标数据库的相关信息,如用户名、密码、数据库连接信息等,以及映射规则,定义如何将源端的数据变化应用到目标数据库中。
    • 添加复制进程:ADD REPLICAT rep01, EXTRAIL/opt/oracle/ogg/dirdat/pt, CHECKPOINTTABLE c##goldengate.checkpoint
  5. 开启与监控进程

    • 使用 GoldenGate 提供的命令行工具来启动、停止和监控各个进程。
    • 查看进程状态:INFO ALLSEND [进程名], STATUS

通过以上步骤,可以实现 Oracle GoldenGate 的基本配置与使用,完成数据的复制与同步。在实际应用中,根据具体需求进行相应的配置和调整,以满足数据同步的要求。

DYNAMICPORTLIST

在这里插入图片描述

在 Oracle GoldenGate 的目标端配置中,DYNAMICPORTLIST 参数用于指定一个动态端口列表,这些端口可供以下进程使用:目标端的 Collector 进程与远程 Extract 进程通信以接收数据、目标端的 Replicat 进程与远程 Extract 进程通信以接收初始加载任务的数据、目标端的 Passive Extract 进程与远程 Collector 通信 ,以及通过 GGSCI 发送远程命令等场景。其主要作用如下:

  • 确保通信端口的高可用性:当指定的端口被占用或出现通信故障时,管理进程(Manager)会从 DYNAMICPORTLIST 中选择一个可用的端口,避免通信端口的单点故障,确保进程间通信的连续性,减少因端口问题导致的同步中断。

  • 适应进程数量的动态变化:在实际运行中,随着业务的增长或同步任务的增加,可能需要动态启动更多的进程。通过预先指定足够多的端口,可以满足进程数量的扩张需求,而无需频繁地手动调整端口配置,提高了管理效率。

  • 满足特定场景下的端口需求:当源端与目标端之间存在防火墙时,可以配置 DYNAMICPORTLIST 参数分配非默认端口用于传输 trailfile,以适应网络环境的限制。

  • 优化内部通信DYNAMICPORTLIST 还可用于 GoldenGate Director 和 GGSCI 窗口的通信,以及 Replicate 直接路径加载等场景,确保内部通信的顺畅。

在配置时,可以指定多个单独的端口、一个端口范围,或两者结合。例如:DYNAMICPORTLIST 7840-7850 表示指定从 7840 到 7850 的端口范围作为动态端口列表;DYNAMICPORTLIST 7840-7850,7860 表示指定从 7840 到 7850 的端口范围以及 7860 端口作为动态端口列表。

目标端的 Passive Extract 进程是一种特殊的配置

在 Oracle GoldenGate 中,目标端的 Passive Extract 进程是一种特殊的配置,主要用于增强数据传输的安全性和灵活性。以下是其详细介绍:

作用

  • 安全增强 :适用于源端处于不被完全信任的网络区域,而目标端位于受信网络的情况。此时,源端的 Passive Extract 进程无需知晓目标端的 IP 地址和 GoldenGate Manager 端口号等敏感信息,从而降低了源端因掌握目标端信息而可能带来的安全风险。
  • 灵活管理 :Passive Extract 进程在源端处于被动待命状态,只有在接收到目标端的启动指令后才会开始数据抽取和传输工作,使得数据同步的控制权更多地掌握在目标端手中,便于统一管理和协调数据同步任务。

工作流程

  1. 在目标端,通过 GGSCI 创建 Alias Extract,并指定源端的 IP 地址、GoldenGate Manager 端口号以及对应的 Passive Extract 的名称。
  2. 当在目标端启动 Alias Extract 时,目标端的 Manager 进程会将启动请求转发给源端的 Manager 进程。
  3. 源端的 Manager 进程接收到请求后,启动对应的 Passive Extract 进程。
  4. Passive Extract 进程从源端数据库获取数据变化信息,并在通过安全验证后,将数据发送到目标端。
  5. 目标端的 Replicat 进程读取接收到的数据,并将其应用到目标数据库中。

配置步骤

  1. 在源端,编辑 Manager 参数文件,配置监听端口等基本信息,并添加相应的访问规则以允许目标端的连接请求。
  2. 在目标端,同样配置 Manager 参数文件,并创建一个 Alias Extract,指定源端的相关信息。
  3. 在源端,创建 Passive Extract 参数文件,定义数据抽取的相关规则和设置。
  4. 在源端,使用 ADD EXTRACT 命令添加 Passive Extract,并注册到数据库中,同时指定其为被动模式(PASSIVE)。
  5. 在目标端,通过 START 命令启动 Alias Extract,从而间接启动源端的 Passive Extract 进程。

注意事项

  • 启动与停止 :Passive Extract 进程只能在目标端通过启动对应的 Alias Extract 来间接启动,不能直接在源端使用 START 命令启动 Passive Extract 进程,否则会报错。
  • 参数配置 :在配置 Passive Extract 时,需要确保源端和目标端的参数设置正确无误,包括端口号、IP 地址、进程名称等,以保证数据传输的顺利进行。
  • 安全性 :虽然 Passive Extract 提高了安全性,但仍需注意对网络环境和访问权限的管理,以防止未经授权的访问和数据泄露。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值