美文网首页
OGG数据同步

OGG数据同步

作者: 汤姆torn | 来源:发表于2022-12-06 14:38 被阅读0次

    一 、安装OGG

    OGG 是一种基于日志的结构化数据复制软件 OGG 能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟

    首先去官网下载OGG安装包

    高版本

    https://www.oracle.com/middleware/technologies/goldengate-downloads.html

    低版本

    http://edelivery.oracle.com/osdc/faces/Home.jspx

    把OGG复制进/home/oracle/下
    第一步 解压

    [oracle@centos1 ~]$ unzip 191004_fbo_ggs_Linux_x64_shiphome.zip 
    Archive:  191004_fbo_ggs_Linux_x64_shiphome.zip
    

    第二步 修改ogg文件参数(根据自己的实际情况选择),这里我用的19c的数据库

    cd /home/oracle/fbo_ggs_Linux_x64_shiphome/Disk1/response
    
    [oracle@centos1 response]$ vi oggcore.rsp 
    
    
    ####################################################################
    ## Copyright(c) Oracle Corporation 2019. All rights reserved.     ##
    ##                                                                ##
    ## Specify values for the variables listed below to customize     ##
    ## your installation.                                             ##
    ##                                                                ##
    ## Each variable is associated with a comment. The comment        ##
    ## can help to populate the variables with the appropriate        ##
    ## values.                                                        ##
    ##                                                                ##
    ## IMPORTANT NOTE: This file should be secured to have read       ##
    ## permission only by the oracle user or an administrator who     ##
    ## own this installation to protect any sensitive input values.   ##
    ##                                                                ##
    ####################################################################
    
    #-------------------------------------------------------------------------------
    # Do not change the following system generated value. 
    #-------------------------------------------------------------------------------
    oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v19_1_0
    
    
    ################################################################################
    ##                                                                            ##
    ## Oracle GoldenGate installation option and details                          ##
    ##                                                                            ##
    ################################################################################
    
    #-------------------------------------------------------------------------------
    # Specify the installation option.
    # Specify ORA19c for installing Oracle GoldenGate for Oracle Database 19c or
    #         ORA18c for installing Oracle GoldenGate for Oracle Database 18c or
    #         ORA12c for installing Oracle GoldenGate for Oracle Database 12c or
    #         ORA11g for installing Oracle GoldenGate for Oracle Database 11g 
    #-------------------------------------------------------------------------------
    INSTALL_OPTION=ORA19c
    
    #-------------------------------------------------------------------------------
    # Specify a location to install Oracle GoldenGate
    
    #-------------------------------------------------------------------------------
    # Specify true to start the manager after installation. 
    #-------------------------------------------------------------------------------
    START_MANAGER=false
    
    #-------------------------------------------------------------------------------
    # Specify a free port within the valid range for the manager process.
    # Required only if START_MANAGER is true.
    #-------------------------------------------------------------------------------
    MANAGER_PORT=
    
    #-------------------------------------------------------------------------------
    # Specify the location of the Oracle Database.
    # Required only if START_MANAGER is true.
    #-------------------------------------------------------------------------------
    DATABASE_LOCATION=
    
    
    ################################################################################
    ##                                                                            ##
    ## Specify details to Create inventory for Oracle installs                    ##
    ## Required only for the first Oracle product install on a system.            ##
    ##                                                                            ##
    ################################################################################
    
    #-------------------------------------------------------------------------------
    # Specify the location which holds the install inventory files.
    # This is an optional parameter if installing on
    # Windows based Operating System.
    #-------------------------------------------------------------------------------
    INVENTORY_LOCATION=
    
    #-------------------------------------------------------------------------------
    # Unix group to be set for the inventory directory.  
    # This parameter is not applicable if installing on
    # Windows based Operating System.
    #-------------------------------------------------------------------------------
    UNIX_GROUP_NAME=
    
    [oracle@centos1 response]$ ../runInstaller -silent -nowait -responseFile /home/oracle/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp 
    Starting Oracle Universal Installer...
    
    Checking Temp space: must be greater than 120 MB.   Actual 11499 MB    Passed
    Checking swap space: must be greater than 150 MB.   Actual 3056 MB    Passed
    Preparing to launch Oracle Universal Installer from /tmp/OraInstall2022-06-09_05-32-30PM. Please wait ...[oracle@centos1 response]$ You can find the log of this install session at:
     /opt/oracle/oraInventory/logs/installActions2022-06-09_05-32-30PM.log
    Successfully Setup Software.
    The installation of Oracle GoldenGate Core was successful.
    Please check '/opt/oracle/oraInventory/logs/silentInstall2022-06-09_05-32-30PM.log' for more details.
    

    第三步 静默安装OGG

    [oracle@centos1 Disk1]$ ./runInstaller -silent -responseFile /home/oracle/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp 
    

    第四步 启动OGG控制台

    [oracle@centos1 ogg]$ cd /u01/ogg/
    [oracle@centos1 ogg]$ ./ggsci
    ./ggsci: error while loading shared libraries: libnnz19.so: cannot open shared object file: No such file or directory
    

    报错没有找到软连接


    image

    配置软连接

    [oracle@centos1 ogg]$ ln -s /opt/oracle/product/19c/dbhome_1/lib/libnnz19.so /u01/ogg/libnnz19.so
    [oracle@centos1 ogg]$ ln -s /opt/oracle/product/19c/dbhome_1/lib/libclntsh.so.19.1 /u01/ogg/libclntsh.so.19.1
    [oracle@centos1 ogg]$ ln -s /opt/oracle/product/19c/dbhome_1/lib/libclntshcore.so.19.1 /u01/ogg/libclntshcore.so.19.1
    [oracle@centos1 ogg]$ ldd ggsci
        linux-vdso.so.1 =>  (0x00007ffc503cc000)
        librt.so.1 => /lib64/librt.so.1 (0x00007ff61d389000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ff61d185000)
        libgglog.so => /u01/ogg/./libgglog.so (0x00007ff61ce1f000)
        libggutil.so => /u01/ogg/./libggutil.so (0x00007ff61cc03000)
        libggrepo.so => /u01/ogg/./libggrepo.so (0x00007ff61c949000)
        libdb-6.1.so => /u01/ogg/./libdb-6.1.so (0x00007ff61c533000)
        liblmdb.so => /u01/ogg/./liblmdb.so (0x00007ff61c31e000)
        libggperf.so => /u01/ogg/./libggperf.so (0x00007ff61c0ec000)
        libggparam.so => /u01/ogg/./libggparam.so (0x00007ff61a9d3000)
        libicui18n.so.62 => /u01/ogg/./libicui18n.so.62 (0x00007ff61a4ee000)
        libicuuc.so.62 => /u01/ogg/./libicuuc.so.62 (0x00007ff61a0ed000)
        libicudata.so.62 => /u01/ogg/./libicudata.so.62 (0x00007ff6180d5000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff617eb9000)
        libxerces-c-3.2.so => /u01/ogg/./libxerces-c-3.2.so (0x00007ff617845000)
        libantlr3c.so => /u01/ogg/./libantlr3c.so (0x00007ff61762a000)
        libnnz19.so => /u01/ogg/./libnnz19.so (0x00007ff616ee2000)
        libclntsh.so.19.1 => /u01/ogg/./libclntsh.so.19.1 (0x00007ff612ed8000)
        libclntshcore.so.19.1 => /u01/ogg/./libclntshcore.so.19.1 (0x00007ff612938000)
        libggnnzitp.so => /u01/ogg/./libggnnzitp.so (0x00007ff611e21000)
        libstdc++.so.6 => /u01/ogg/./libstdc++.so.6 (0x00007ff611a8a000)
        libm.so.6 => /lib64/libm.so.6 (0x00007ff611788000)
        libgcc_s.so.1 => /u01/ogg/./libgcc_s.so.1 (0x00007ff611572000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ff6111a4000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff61df95000)
        libnsl.so.1 => /lib64/libnsl.so.1 (0x00007ff610f8a000)
        libaio.so.1 => /lib64/libaio.so.1 (0x00007ff610d88000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff610b6e000)
    

    成功进入OGG控制台

    [oracle@centos1 ogg]$ ./ggsci 
    
    Oracle GoldenGate Command Interpreter for Oracle
    Version 19.1.0.0.4 OGGCORE_19.1.0.0.0_PLATFORMS_191017.1054_FBO
    Linux, x64, 64bit (optimized), Oracle 19c on Oct 17 2019 21:16:29
    Operating system character set identified as UTF-8.
    
    Copyright (C) 1995, 2019, Oracle and/or its affiliates. All rights reserved.
    
    
    
    GGSCI (centos1) 1> 
    

    二 、配置OGG

    1.相关数据库概念介绍

    1.UNDO/REDO

    REDO:重做日志文件redo log,是数据库的事务日志,oracle维护着2类重做日志,在线重做日志文件和归档重做日志文件,归档日志文件就是重做日志的副本,系统将日志文件填满时arch进程会在另一个位置建立一个在线重做日志的副本

    每个oracle数据库至少有2个重做日志组,以便切换日志,每个日志组至少有1个日志组成员,这些在线重做日志文件是以循环写的方式使用,

    UNDO:你对数据库执行修改时,数据库会生成undo信息,以便回滚到更改前的状态,undo用于取消一条语句或一组语句的作用,undo在数据库内部存放在一组特殊的段中,

    为undo段(回滚段 rollback segment),利用undo,数据库只是逻辑的恢复到原来的样子,所有修改都逻辑的取消,但是数据结构以及数据块本身在回滚后可能不大相同,

    对于undo生成对于直接路径操作不适用,直接路径操作能够绕过表上的undo生成。

    简单看来,UNDO主要记录如何撤销事务和保证读一致性;REDO则是负责数据库前滚(重做),保护数据不丢失。

    2.归档日志

    image

    Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。

    当ORACLE数据库运行在ARCHIVELOG(归档模式)模式时,所有的事务重做日志都将保存.这意味着对数据库进行的所有事务都留有一个备份,尽管重做日志以循环方式工作,但在一个重做日志被覆盖前均将为其建立一个副本.在重做日志文件复制完成之前,ORACLE数据库将停止一切新的操作,在旧的事务记录完成之前ORACLE不对其进行覆盖.有了所有事务的副本,数据库就可以从所有类型的失败中恢复,包括用户错误或磁盘崩溃.这是一种最安全的数据库工作方式。在实际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,数据库使用归档方式运行时才可以进行灾难性恢复。

    归档日志:非活动的重做日志,用来保存所有的重做历史记录。

    什么时候写归档日志:当数据库处于archivelog模式并重做日志切换的时候,后台进程ARCH会启动将重做日志的内容完整的保存到归档日志中。

    日志操作模式:包含 NOARCHIVELOG 模式 和 ARCHIVELOG 模式

    NOARCHIVELOG模式不保留重做日志记录的历史,只能保护例程失败不能保护介质失败。

    特点:

    LGWR进程写日志时候覆盖原先的重做日志内容

    如果日志内容被覆盖,只能恢复到过去完整备份的点

    执行数据库备份时候,必须关闭数据库

    执行备份时候,必须备份所有数据文件和控制文件

    ARCHIVELOG模式保留重做日志记录的历史,不仅能保护例程失败而且可以保护介质失败。

    特点:

    出现数据文件丢失损坏,可以防止数据丢失。

    数据库处于open状态的时候,也可以备份数据库

    出现数据文件损坏的时候可以在Open状态下进行恢复

    执行数据库恢复的时候,可以进行不完整恢复,基于(SCN,时间点,日志序列号)等等

    选择:如果数据库用于生产环境并且数据变化频繁应该采用ARCHIVELOG模式

    3.附加日志

    oracle补充日志可以分为最小化补充日志,主键补充日志,外键补充日志,唯一键补充日志,ALL类型的补充日志 等5种日志。

    对于这5种补充日志在数据恢复和数据同步方面,补充日志非常有用。

    在不打开补充日志的时候,logminer(LogMiner用于分析重做日志和归档日志所记载的事务操作)分析redo日志,可以发现udpate和delete语句后面,全部使用的是rowid伪列,而不是我们平常使用的索引所指定的内容,这样的语句,是没法来做恢复用的,因为rowid不能用于update和delete语句,只能用来被查询。

    所以要做数据恢复或者数据同步,补充日志是必须打开的,要不然无法得到完整的UPDATE和DELETE语句。

    Redo log用户instance recovery和media recovery,这些操作所需要的数据都被自动记录在redo log中(一般记录rowid和修改的列值就足够了),但是如果想让解析出来的日志应用在其他方面,比如逻辑复制,则redo中还需要记录行中其他列的信息,以定位具体操作的行(因为源端和目标端rowid很可能是不一样的,不能用rowid来定位具体操作的行),记录其他列的日志被称为补充日志。

    使用场景:

    1. 确定数据库误操作时间点或SCN。

    假定某个用户执行drop table操作误删除了一张重要的表,通过LogMiner可以准确定位该误操作执行的时间或者SCN,然后通过基于时间或者SCN的恢复可以完全恢复该表数据。

    2. 确定单个事务恢复操作。

    假定某个用户在某表上执行了DML操作并提交了事务,并且该DML操作存在错误,则可以通过LogMiner可以取得任何用户的DML操作及其相应的UNDO操作,执行该UNDO操作可以取消该事务操作。

    3. 执行后续审计。

    通过LogMiner可以跟踪Oracle数据库的所有DML、DDL、DCL操作,从而取得执行这些操作的时间顺序、执行这些操作的用户等信息。

    2.相关组件介绍

    1.Manager

    负责OGG 整体的监控和管理

    (1).Trail文件的生成和删除

    (2).定期监控进程,负责进程的启动/停止

    2.Extract(Capture)

    (1).从redo 或 archive log获得DB变更信息,取得主键或唯一键的变更前后的值

    image

    (2).以一定间隔读取REDO日志,获取变更信息

    参数EOFDELAY or EOFDELAYCSECS 设置。 默认1s,最小10ms

    (3).当满足下列条件时,输出到本地或远程Trail文件

    • Extract的缓冲区写满
    • 设置参数FLUSHSECS or FLUSHCSECS来指定间隔。 默认1s,最小10ms image

    3.Extract(Pump)

    将本地的Trail队列发送至目标端Collector

    发送间隔,满足以下任一条件:

    (1).缓存写满时

    Pump的RMHOST参数(TCPBUFSIZE选项),可指定缓存尺寸,默认30000bytes

    (2).参数指定

    FLUSHSECS or FLUSHCSECS. 默认1s,最小10ms

    image

    4.Collector

    从Extract pump向Collector发送,输出至Trail文件

    5.Replicat

    从Trail文件生成SQL语句在目标DB执行。

    image

    3.源端目标端创建表空间和账户,赋予表空间权限

    SQL> create tablespace tb_tom datafile '/opt/oracle/oradata/ORCLCDB/tb_tom' size 500m;
    
    Tablespace created.
    
    SQL> create user tom identified by zongcai default tablespace tb_tom account unlock;
    
    User created.
    
    SQL> grant resource,connect to tom;
    
    Grant succeeded.
    
    SQL> grant unlimited tablespace to TOM;
    
    Grant succeeded.
    

    4.源端目标端创建OGG账户

    [oracle@centos1 /]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jun 9 17:41:17 2022
    Version 19.3.0.0.0
    
    Copyright (c) 1982, 2019, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
    
    SQL> create user oggsrc1 identified by oggsrc1 default tablespace tb_ogg account unlock;
    
    User created.
    
    SQL> grant connect to oggsrc1;
    
    Grant succeeded.
    
    SQL> grant dba to oggsrc1;
    
    Grant succeeded.
    

    5.源端开启归档日志

    SQL> SELECT supplemental_log_data_min , force_logging FROM v$database;
    
    SUPPLEME FORCE_LOGGING
    -------- ---------------------------------------
    NO       NO
    
    SQL> alter database force logging;
    
    Database altered.
    
    SQL> SELECT supplemental_log_data_min , force_logging FROM v$database;
    
    SUPPLEME FORCE_LOGGING
    -------- ---------------------------------------
    NO       YES
    
    SQL>  ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;
    
    System altered.
    
    SQL> alter database add supplemental log data;
    
    Database altered.
    
    SQL>  alter system switch logfile;
    
    System altered.
    

    6.源端目标端创建OGG目录,配置主进程

    GGSCI (centos1) 2> edit params ./GLOBALS
    
    create subdirs
    
    GGSCI (centos1) 3> view params ./GLOBALS
    
    GGSCHEMA ogg
    
    
    GGSCI (centos1) 4> edit params mgr
    
    
    
    GGSCI (centos1) 5> view params mgr
    
    PORT 7809
    DYNAMICPORTLIST 7810-7815
    AUTOSTART EXTRACT *
    AUTORESTART EXTRACT *, RETRIES 4, WAITMINUTES 2
    STARTUPVALIDATIONDELAY 5
    PURGEOLDEXTRACTS /u01/ogg/dirdat/*, USECHECKPOINTS, minkeepdays 9
    LAGREPORTHOURS 1
    LAGINFOMINUTES 30
    LAGCRITICALMINUTES 45
    ACCESSRULE, PROG SERVER, ALLOW
    
    

    7.源端增加trandata,最好同步的表加上主键,因为更新和删除有主键或者唯一键是根据键去执行的,如果没有,OGG默认使用所有列作为主键

    GGSCI (centos1 as oggsrc1@ORCLCDB) 11> add trandata TOM.TB_USER
    
    2022-06-10 14:34:14  WARNING OGG-06439  No unique key is defined for table TB_USER. All viable columns will be used to represent the key, but may not guarantee uniqueness. KEYCOLS may be used to define the key.
    
    2022-06-10 14:34:14  INFO    OGG-15130  No key found for table TOM.TB_USER.  All viable columns will be logged.
    
    2022-06-10 14:34:14  INFO    OGG-15132  Logging of supplemental redo data enabled for table TOM.TB_USER.
    
    2022-06-10 14:34:14  INFO    OGG-15133  TRANDATA for scheduling columns has been added on table TOM.TB_USER.
    
    2022-06-10 14:34:14  INFO    OGG-15135  TRANDATA for instantiation CSN has been added on table TOM.TB_USER.
    
    2022-06-10 14:34:14  INFO    OGG-10471  ***** Oracle Goldengate support information on table TOM.TB_USER *****
    Oracle Goldengate support native capture on table TOM.TB_USER.
    Oracle Goldengate marked following column as key columns on table TOM.TB_USER: USERNAME, AGE
    No unique key is defined for table TOM.TB_USER.
    
    GGSCI (centos1 as oggsrc1@ORCLCDB) 12>
    

    8.源端配置抽取进程,样例里采用经典模式抽取,从12C多少版本后支持集成抽取模式,具体可以去了解一下

    GGSCI (centos1) 1> add extract ext1, tranlog, begin now, threads 1
    EXTRACT added.
    
    
    GGSCI (centos1) 2> add exttrail ./dirdat/et, extract ext1
    EXTTRAIL added.
    
    GGSCI (centos1) 3> edit params ext1
    
    
    
    GGSCI (centos1) 4> view param ext1
    
    EXTRACT ext1
    SETENV (NLS_LANG="AMERICAN_AMERICA.AL32UTF8") --此处数据库字符集设为一致
    SETENV (ORACLE_SID = "ORCLCDB")
    SETENV (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)
    USERID oggsrc1, PASSWORD oggsrc1
    THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 20000
    EXTTRAIL ./dirdat/et
    --DDL INCLUDE ALL
    TABLE TOM.TB_USER;
    
    

    9.源端配置投递进程

    GGSCI (centos1) 5> add extract dep1,exttrailsource ./dirdat/et, begin now       EXTRACT added.                                                                  
    
    GGSCI (centos1) 6> add rmttrail ./dirdat/et,extract dep1
    RMTTRAIL added.
    GGSCI (centos1) 9> edit params dep1
    
    
    
    GGSCI (centos1) 10> view params dep1
    
    EXTRACT dep1
    RMTHOST 192.168.11.139 MGRPORT 7809
    RMTTRAIL ./dirdat/et
    PASSTHRU
    TABLE TOM.TB_USER;
    
    

    10.目标端配置检查点

    
    GGSCI (centos1) 6> dblogin userid oggsrc1,password oggsrc1
    Successfully logged into database.
    
    GGSCI (centos1 as oggsrc1@ORCLCDB) 7> add checkpointtable oggsrc1.checkpoint
    
    Successfully created checkpoint table oggsrc1.checkpoint.
    
    GGSCI (centos1 as oggsrc1@ORCLCDB) 23> sh netstat -ntpl |grep 7809
    
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    tcp6       0      0 :::7809                 :::*                    LISTEN                                                  9509/./mgr
    
    
    GGSCI (centos1 as oggsrc1@ORCLCDB) 24> sh ps -ef|grep mgr | grep -v grep
    
    postfix    1307   1291  0 12:31 ?        00:00:00 qmgr -l -t unix -u
    oracle     9509   9159  0 14:57 ?        00:00:00 ./mgr PARAMFILE /u01/ogg/dirprm/mgr.prm REPORTFILE /u01/ogg/dirrpt/MGR.rpt PROCESSID MGR
    
    
    

    11.目标端添加复制进程

    GGSCI (centos1 as oggsrc1@ORCLCDB) 25> add replicat rep1, exttrail ./dirdat/et, checkpointtable oggsrc1.checkpoint
    REPLICAT added.
    
    
    GGSCI (centos1 as oggsrc1@ORCLCDB) 26> edit params rep1
    
    
    
    GGSCI (centos1 as oggsrc1@ORCLCDB) 27> view param rep1
    
    
    REPLICAT rep1
    SETENV (NLS_LANG="AMERICAN_AMERICA.AL32UTF8") --此处数据库字符集设为一致
    SETENV (ORACLE_SID = "ORCLCDB")
    SETENV (ORACLE_HOME = /opt/oracle/product/19c/dbhome_1)
    USERID oggsrc1, PASSWORD oggsrc1
    ASSUMETARGETDEFS
    HANDLECOLLISIONS
    REPERROR (DEFAULT, DISCARD)
    DDLERROR DEFAULT DISCARD
    DDLOPTIONS REPORT
    DISCARDFILE ./dirrpt/repr1.dsc,append,megabytes 500
    MAP TOM.TB_USER, TARGET TOM.TB_USER;
    
    

    OGG参数
    extract进程参数配置说明
    setenv
    配置系统环境变量

    userid/password
    指定ogg连接数据库的用户名和密码

    comment
    注释行,也可以用--来代替

    table
    定义需复制的表,后面需以;结尾

    tableexclude
    定义需要排除的表,如果在table参数中使用了通配符,可以使用该参数指定排除掉得表

    getupdateafters|ignoreupdateafters
    是否在队列中写入后影像,缺省复制

    getupdatebefores|ignoreupdatebefores
    是否在队列中写入前影像,缺省不复制

    getupdates|ignoreupdates
    是否复制update操作,缺省复制

    getdeletes|ignoredeletes
    是否复制delete操作,缺省复制

    getinserts|ignoreinserts
    是否复制insert操作,缺省复制

    gettruncates|ignoretrundates
    是否复制truncate操作,缺省不复制

    NUMFILES
    使用NUMFILES参数控制OGG给多少张TABLE 和MAP进行初始化的内存分配,并且此参数必须在TABLE or MAP,SOURCEDEFS or TARGETDEFS 之前生效, Default 1000.

    rmthost
    指定目标系统及其goldengatemanager进程的端口号,还用于定义是否使用压缩进行传输,本例中的compress为压缩传输;

    rmttrail
    指定写入到目标端的哪个队列

    exttrail
    指定写入到本地的哪个队列

    sqlexec
    在extract进程运行时首先运行一个sql语句

    passthru38
    禁止extract进程与数据库交互,适用于data pump传输进程

    report
    定义自动定时报告

    statoptions
    定义每次使用stat时统计数字是否需要重置

    reportcount
    报告已经处理的记录条数统计数字

    tltrace
    打开对于数据库日志的跟踪日志

    discardfile
    定义discardfile文件位置,如果处理中有记录出错会写入到此文件中

    dboptions
    指定对于某种特定数据库所需要的特殊参数;

    tranlogoptions
    指定在解析数据库日志时所需要的特殊参数,例如:对于裸设备,可能需要加入以下参数 rawdeviceoggset 0

    warnlongtrans
    指定对于超过一定时间的长交易可以在gsserr.log里面写入警告信息,本处配置为每隔3分钟检查一次场交易,对于超过2小时的进行警告;

    TRANLOGOPTIONS EXCLUDEUSER user
    排除用户,主要用于MYSQL,DB2,SQL SERVER等数据库,如果是ORACLE数据库使用下面参数

    TRANLOGOPTIONS EXCLUDETAG 9999
    排除tag写入的数据,在双向同步的时候可以使用,在复制进程里面加上TAG 9999

    replicate进程参数配置说明

    DBOPTIONSDEFERREFCONST

    约束延迟设置。在复制进程的事物被提交之前,延迟级联删除、级联更新时的校验和实施。

    GETTRUNCATES

    捕获生产端truncate table的操作。

    REPORTAT 01:00

    每天早上1点报告

    REPORTCOUNTEVERY 30 MINUTES, RATE

    每隔30分钟报告一次从程序开始到现在的抽取进程或者复制进程的事物记录数,并汇报进程的统计信息

    REPORTROLLOVERAT 02:00

    为了防止report file被写满,每天2:00做一次文件过期设定

    REPERRORDEFAULT, ABEND

    除了特殊指定的REPERROR语句,报告所有复制期间出现的错误,回滚非正常中断的事物和进程

    定义出错以后进程的响应,一般可以定义为两种:abend,即一旦出现错误即停止复制,此为缺省配置;discard,出现错误后继续复制,只是把错误的数据放到discard文件中。

    —HANDLECOLLISIONS

    当灾备端已经存在数据的情况下,解决复制过程中出现的冲突。如果要重新做初始化,可以删除drop灾备端数据库后再rman恢复,这样做的话就不需要该参数了。

    ALLOWNOOPUPDATES

    当生产端有某些列但是目标表却没有,或者复制进程中配置了COLSEXCEPT 参数 在这些情况下,当生产端对那些列进行更新,目标表将不发生任何变化

    assumetargetdefs

    使用ASSUMETARGETDEFS参数时,用MAP语句中指定的生产库源表和灾备端目标表具有相同的列结构。它指示的Oracle GoldenGate不在生产端查找源表的结构定义。

    DISCARDFILE./dirrpt/repsa.dsc, APPEND, MEGABYTES 1024M

    将执行失败的记录保存在discard file中,该文件位于./dirrpt/extya.dsc,大小为1024MB。 文件中已经包含记录的话,再后面继续追加,不删除之前的记录。

    DISCARDROLLOVERAT 02:00

    为了防止discard file被写满,每天2:00做一次文件过期设定

    MAP

    用于指定源端与目标端表的映射关系;

    MAPEXCLUDE

    用于使用在map中使用*匹配时排除掉指定的表

    MAXTRANSOPS

    将大交易拆分,每xx条记录提交一次。

    GROUPTRANSOPS

    将小交易合并成一个大的交易进行提交,减少提交次数,降低系统io消耗

    SOURCEDEFS

    假定两端数据结构不一致,使用此参数指定源端的数据结构定义文件,该文件需要由glodengate工具产生。

    SQLEXEC

    在进程运行时首先运行一个sql语句

    image

    如果出现异常,可以查看报告,或者查看trail文件,具体的工具OGG里面有LOGDUMP工具。
    其它详情可以参考官方OGG文档,里面写得很详细。

    相关文章

      网友评论

          本文标题:OGG数据同步

          本文链接:https://www.haomeiwen.com/subject/waiefdtx.html