前言:最近刚好在弄数据库同步,网上查了些资料再加上自己整理了一些,做个分享!

一、GoldenGate的安装

官方文档:

Oracle®GoldenGate安装和配置Oracle GoldenGate for Oracle数据库(https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm)

1、安装包准备

数据库版本:Oracle Database 11g Release 2(11.2.0.1.0)

此次使用的安装包版本为Oracle GoldenGate 12.3.0.1.2 for Oracle on Linux x86-64

root权限

(创建安装包存放目录)

[root@dbsrc oracle]# mkdir /data/goldengate

(创建源端安装目录)

[root@dbsrc oracle]# mkdir /data/oracle/product/ogg_src

(创建目标端安装目录)

[root@dbtrg oracle]# mkdir /data/oracle/product/ogg_trg

将U盘中的安装包拷贝到本地目录进行解压缩(此处不再赘述)

2、配置环境变量

(oracle权限)

[oracle@dbsrc ~]$ vim ~/.bash_profile

添加以下参数

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#以上参数为安装oracle时配置的环境变量
# Path Oracle GoldenGate
export OGG_HOME=/data/oracle/product/ogg_src
export PATH=$OGG_HOME:$PATH
export LD_LIBRARY_PATH=$OGG_HOME:$LD_LIBRARY_PATH

注:OGG_HOME为GoldenGate的安装目录

[oracle@dbsrc ~]$ source ~/.bash_profile

3、运行安装程序进行图形化界面安装

[root@dbsrc oracle]# cd /data/goldengate/fbo_oggs_Linux_x64_shiphome/Disk1
[root@dbsrc Disk1]# ./runInstaller

根据使用的数据库版本选择相应的版本

选择安装目录为刚才创建的安装目录其他都默认,接下来都步骤都默认直至安装完成。

4、配置快捷命令

详见上一篇:Rlwrap工具的安装和配置(http://www.cnblogs.com/VoiceOfDreams/p/8576850.html)

(源端)

alias ggsci="rlwrap /data/oracle/product/ogg_src/ggsci"

(目标端)

alias ggsci="rlwrap /data/oracle/product/ogg_trg/ggsci"

路径均为GoldenGate的安装目录

5、查看GoldenGate是否安装成功

[oracle@dbsrc ~]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.3.0.1.2 OGGCORE_12.3.0.1.0_PLATFORMS_171208.0005_FBO
Linux, x64, 64bit (optimized), Oracle 11g on Dec 8 2017 21:13:00
Operating system character set identified as US-ASCII. Copyright (C) 1995, 2017, Oracle and/or its affiliates. All rights reserved. GGSCI (dbsrc) 1> view param mgr
PORT 7809 GGSCI (dbsrc) 2> info mgr
Manager is running (IP port dbsrc.7809,Process ID 5682)

此版本已经自动建立子目录,无需再使用(create subdirs)命令创建

二、配置数据库支持GoldenGate

1、为GoldenGate创建独立的用户和分配必要的权限

[oracle@dbsrc ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 12 16:09:25 2018

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> create tablespace OGG logging datafile '/data/oracle/oradata/orcl/OGG.DBF' size 20m autoextend on uniform size 2m;

注:autoextend on 打开自动扩展         uniform 指定表空间extend的大小,缺省值为1m

此表空间只用于DDL模式,不可用于其他模式

若需删除表空间:

SQL> drop tablespace OGG including contents and datafiles cascade constraints;

创建用户并授权

SQL> create user ogg identified by pwd default tablespace OGG temporary tablespace TEMP quota unlimited on OGG;

注:create user 用户名 identified by 密码 default tablespace 表空间名 temporary tablespace 临时表空间名 quota unlimited on 表空间名;

若需要删除用户,执行以下SQL

SQL> drop user 用户名 cascade;

给用户授权

SQL> grant unlimited tablespace to ogg;

SQL> grant connect, resource, dba to ogg;

SQL> grant create session, alter session to ogg;

SQL> grant alter system to ogg;

SQL> grant select any dictionary to ogg;

SQL> grant flashback any table to ogg;

SQL> grant select any table, insert any table, update any table, delete any table, drop any table to ogg;

SQL> grant create table, create sequence to ogg;

SQL> grant select on dba_clusters to ogg;

SQL> grant select on v_$database to ogg;

SQL> grant select on sys.logmnr_buildlog to ogg;

SQL> grant select any transaction to ogg;

SQL> grant lock any table to ogg;

SQL> grant execute on dbms_flashback to ogg;

SQL> grant execute on dbms_logmnr_d to ogg;

SQL> grant execute on dbms_capture_adm to ogg;

SQL> grant execute on dbms_streams to ogg;

SQL> grant execute on utl_file to ogg;

SQL> exec dbms_streams_auth.grant_admin_privilege('ogg');

创建测试用表和数据

SQL> create table ogg.togg(id primary key, name, type, CREATED, update_date) as select object_id, object_name, object_type, CREATED, sysdate from dba_objects where rownum < 101;

2、开启数据库附加日志

oracle 11.2.0.4和oracle 12.1.0.2及之后的版本需要设置如下参数,本次所用数据库版本为Oracle 11.2.0.1.0就无需设置此参数了,做个记录吧!

SQL> alter system set enable_goldengate_replication=true scope=both;

查看归档模式、附加日志和强制日志是否开启

SQL> select log_mode, supplemental_log_data_min, force_logging from v$database;

修改模式

SQL> shutdown immediate;                                  #立即关闭数据库,不允许新的连接和事物启动
SQL> startup mount; #装载数据库而不启动
SQL> alter database archivelog; #启用归档模式
SQL> alter database open; #打开数据库
SQL> alter database force logging; #启用强制日志
SQL> alter database add supplemental log data; #启用附加日志
SQL> alter system switch logfile; #切换日志文件

(用户级别的附加日志和表级别的附加日志可以在最后配置,即启动同步服务前一步进行配置。两种类型的附加日志只需配置其中之一,不过可以配置用户级别的附加日志的话就不需要每张表都配置了)

用户级别的附加日志

[oracle@dbsrc ~]$ ggsci
...
GGSCI (dbsrc) 1> dblogin userid ogg, password pwd
Successfully logged into database GGSCI (dbsrc as ogg@orcl) 2> add schematrandata ogg

(由于此版本数据库为11.2.0.1,需要打补丁)

官方参考文献:https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/ggsci_commands066.htm#GWURF265

(如果Oracle版本早于11.2.0.2,则将Oracle Patch 10423000应用于源数据库。)

表级别的附加日志

[oracle@dbsrc ~]$ ggsci
...
GGSCI (dbsrc) 1> dblogin userid ogg, password pwd
Successfully logged into database GGSCI (dbsrc as ogg@orcl) 2> add trandata ogg.togg;

注:add trandata 用户名.表名;

3、执行配置脚本

进入GoldenGate安装目录

(源端)

[oracle@dbsrc ~]$ cd /data/oracle/product/ogg_src

(目标端)

[oracle@dbtrg ~]$ cd /data/oracle/product/ogg_trg

登录sqlplus

SQL> @marker_setup
输入GoldenGate账户名ogg
SQL> @ddl_setup
输入GoldenGate账户名ogg
SQL> @role_setup
输入GoldenGate账户名ogg GRANT GGS_GGSUSER_ROLE TO <loggedUser> SQL> grant ggs_ggsuser_role to ogg;
SQL> @ddl_enable

(DDL同步配置完成)

4、配置Manager进程(管理进程)

Manager进程必须在源端和目标端运行,并且在Extract和Replicat进程之前启动,没有该进程OGG无法做其它的操作,它管理启动Oracle GoldenGate进程、启动动态进程、分配端口给GoldenGate进程、管理trail file、创建事件,错误和诊断报告工作;

[oracle@dbsrc ~]$ ggsci

GGSCI (dbsrc) >  info mgr
Manager is running (IP port dbsrc.,Process ID )

源端:

GGSCI (dbsrc) > edit param mgr

PORT 7839
DYNAMICPORTLIST 7840-7939
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2
PURGEOLDEXTRACTS /data/oracle/product/ogg_src/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 5
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45

注:

PORT 7839

通信端口7839, 源端和目标端需要保持一致。

DYNAMICPORTLIST  7840-7939

动态端口列表的范围从7840到7939。当制定端口被占用或者出现通信故障,管理进程将会从列表中选择下一个端口尝试连接,避免通信端口的单点故障。

AUTOSTART EXTRACT *

当MGR进程启动后启动EXTRACT进程

AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2

当EXTRACT进程中断后尝试自动重启,每隔2分钟尝试启动一次,尝试5次。

PURGEOLDEXTRACTS /data/oracle/product/ogg_src/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 5

(相对路径写法)PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 5

定期清理dirdat路径下的本地队列(local trail)。保留期限10天,过期后自动删除。从而控制队列文件的目录不会增长过大。

LAGREPORTHOURS 1

每隔一小时检查各进程延时情况,并记录到goldengate report文件。

LAGINFOMINUTES 30

进程复制延时超过30分钟,向日志文件记录一条错误日志

LAGCRITICALMINUTES 45

传输延时超过45分钟将写入警告日志

目标端:

GGSCI (dbtrg) > edit param mgr

PORT 7839
USERID ogg, PASSWORD pwd
DYNAMICPORTLIST 7840-7939
AUTOSTART REPLICAT *
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 2
PURGEOLDEXTRACTS /data/oracle/product/ogg_trg/dirdat/*, USECHECKPOINTS, MINKEEPDAYS 10
PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45

注:

USERID ogg, PASSWORD pwd

GoldenGate用户登录数据库的用户名和密码,密码未做加密处理。

如果密码需要加密使用:GGSCI (dbtrg) 1> encrypt password pwd ,ENCRYPTKEY default

可以得到加密后的密码字符串,之后配置进程若使用加密过的密码,需要带参数(ENCRYPTKEY default)。

例如:USERID ogg, PASSWORD xxx(加密过的密码) ,ENCRYPTKEY default

AUTOSTART REPLICAT *

当MGR进程启动后启动REPLICAT进程

AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 2

当REPLICAT进程中断后尝试自动重启,每隔2分钟尝试启动一次,尝试5次。

PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10

删除DDL历史表,最小保存7天,最大保存10天。

PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10

删除MARKER历史表,最小保存7天,最大保存10天。

5、配置Extract进程(只在源端配置)

  Extract 运行在源端或者根据系统和业务的需求可以同时运行在两端,抽取捕获系统变更统数据;它可以配置为初始化数据加载(直接从数据源中加载静态的数据)和在某个时间点后源端与服务端变更数据同步(从在线日志或归档日志抽取捕获变更的数据),它也可以在支持DDL变更的系统中抽取捕获DDL;

  当配置为数据同步时,extract进程抽取捕获extract配置文件里配置的对象的任何DML和DDL(需要额外配置)的操作,extract进程记录这些操作,直到用户提交或回滚事务;当收到回滚(rollback)时,extract撤销这些记录;当收到(commit)操作后,extract进程记录保存这些操作到一个或多个trail文件里并以队列的形式发送到目标端,以确保数据传输速度和数据的一致性。

1)、配置主抽取进程(Primary Extract)

使用ogg用户登录GoldenGate

GGSCI (dbsrc) > dblogin userid ogg, password pwd

创建主抽取进程

GGSCI (dbsrc as ogg@orcl) > add extract ext1,tranlog,begin now

创建源端trail文件并指定路径

主进程的作用是抽取捕获系统变更数据并将这些数据保存到trail文件里,所以必须为其配置trail文件目录和trail文件名的两个字符名

GGSCI (dbsrc as ogg@orcl) > add exttrail /data/oracle/product/ogg_src/dirdat/sr, extract ext1

GGSCI (dbsrc as ogg@orcl) > edit param ext1 

extract ext1
SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
userid ogg, password pwd
REPORTCOUNT EVERY 30 MINUTES, RATE
DISCARDFILE /data/oracle/product/ogg_src/dirrpt/extsr.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 3:00
EXTTRAIL /data/oracle/product/ogg_src/dirdat/sr
DYNAMICRESOLUTION
DBOPTIONS ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
FETCHOPTIONS FETCHPKUPDATECOLS
table ogg.*;

注:

SETENV(ORACLE_SID="orcl")

设置Oracle数据库实例sid

SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

设置goldengate的字符集变量信息,此处值会覆盖操作系统级别的变量。该值需要和数据库字符集匹配一致。

REPORTCOUNT EVERY 30 MINUTES, RATE

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

DISCARDFILE /data/oracle/product/ogg_src/dirrpt/extsr.dsc, APPEND, MEGABYTES 1024

将执行失败的记录保存在discard file中,discard file文件记录了GoldenGate进程错误、数据库错误、GoldenGate操作等信息。该文件位于/data/oracle/product/ogg_src/dirrpt/extsr.dsc,大小为1024MB。 文件中已经包含记录的话,再后面继续追加,不删除之前的记录。

DISCARDROLLOVER AT 3:00

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

EXTTRAIL /data/oracle/product/ogg_src/dirdat/sr

队列文件路径, trail文件存放路径。

DYNAMICRESOLUTION

有时候开启OGG进程的时候较慢,可能是因为需要同步的表太多,OGG在开启进程之前会将需要同步的表建立一个记录并且存入到磁盘中,这样就需要耗费大量的时间。使用该参数来解决此问题。

DBOPTIONS  ALLOWUNUSEDCOLUMN

用于阻止抽取进程抽取数据时由于表含有unused列而导致进程异常终止(abend)。使用该参数,抽取进程抽取到unused列时也会向日志文件记录一条警告信息。

FETCHOPTIONS NOUSESNAPSHOT

默认值为 usesnapshot,表示利用数据库闪回读取数据。Nousesnapshot表示直接从原表读取相关数据。

FETCHOPTIONS FETCHPKUPDATECOLS

当使用了HANDLECOLLISIONS时,请使用该参数。

复制进程出现丢失update记录(missing update)并且更新的是主键,update将转换成insert。由于插入的记录可能不是完整的行,若要保证完整需要加入此参数

table ogg.*;

需要复制的对象列表

2)、配置投递进程(Data Pump)

  Data Pumps是第二种类型的GoldenGate extract配置,如果不使用Data Pump,extract进程必须发送抽取捕获的操作数据到目标端trail;如果配置了Data Pump,extract进程抽取捕获数据写入到trail,Data pump读取trail并且通过网络发送trail到目标端trail,data pump 加强了源端和目标端抽取捕获数据的可用性,

主要优点:

1.保护网络传输失败和目标端失败;

2.可以实现复杂的数据过滤和转换;

3.可以结合多个数据源到目标端;

4.可以同步一个源数据到多个目标端。

创建并指定源数据库trail文件位置,必须包含两个字符,这个路径和主抽取进程(Primary Extract)中指定的trail目录和trail文件命名必须相同,因为Data Pump进程要从此读取主抽取进程生成的trail文件;

GGSCI (dbsrc as ogg@orcl) > add extract dpump1, exttrailsource /data/oracle/product/ogg_src/dirdat/sr

GGSCI (dbsrc as ogg@orcl) > edit param dpump1

extract dpump1
SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
RMTHOST 10.0.0.64, mgrport 7839, COMPRESS
PASSTHRU
RMTTRAIL /data/oracle/product/ogg_trg/dirdat/tr
--DYNAMICRESOLUTION
table ogg.*;

注:

RMTHOST 10.0.0.64, mgrport 7839, COMPRESS

目标端主机IP,管理进程端口号,投递前压缩队列文件

PASSTHRU

表示传输进程直接跟抽取进程交互,而不再和数据库进行交互,减少数据库资源的利用。

RMTTRAIL /data/oracle/product/ogg_trg/dirdat/tr

目标端保存队列文件的目录

DYNAMICRESOLUTION

动态解析表名

table ogg.*;

复制范围和抽取进程对应即可

源端可以配置多个主抽取进程,也可以配置多个Data Pump进程,但必须为每个要同步的目标端配置一个Data Pump进程;

指定Data Pump进程发送trail文件到目标端的位置(目标端trail文件添加到队列中)

GGSCI (dbsrc as ogg@orcl) > add rmttrail /data/oracle/product/ogg_trg/dirdat/tr, extract dpump1

6、目标端配置Replicat进程(复制进程)

  Replicat进程运行在目标端读取tail文件和重构DML、DDL并应用到目标数据库;Replicat编译SQL一次,当变量值不同时重复使用编译过的SQL;Replicat进程可以像extract进程一样配置初始化数据加载(直接从数据源中加载静态的数据)和在某个时间点后源端与服务端变更数据同步(从在线日志或归档日志抽取捕获变更的数据);

  Checkpoint存储从文件读取和写入的检测点位置,用于还原和恢复数据,Checkpoint确保发生变化并提交(commit)的数据被extract抽取捕获和被replicat进程应用到目标端;保证在系统、网络或者GoldenGate需要重启进程时发生的错误不会导致数据丢失;在复杂的同步配置中checkpoints启用多个extract和replicat进程从同一个trail集中读取数据。

使用GoldenGate用户(ogg)登录

GGSCI (dbtrg) > dblogin userid ogg, password pwd

创建和配置Checkpoint Table

GGSCI (dbtrg as ogg@orcl) > add checkpointtable ogg.checkpoint

GGSCI (dbtrg as ogg@orcl) > edit param ./GLOBALS

GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint

注:首次编辑GoldenGate配置文件时,GLOBALS文件以大写命名并且没有扩展名创建在GoldenGate_home根目录

创建replicat进程

GGSCI (dbtrg as ogg@orcl) > add replicat rep1, exttrail /data/oracle/product/ogg_trg/dirdat/tr, checkpointtable ogg.checkpoint

GGSCI (dbtrg as ogg@orcl) > edit param rep1

REPLICAT rep1
SETENV(ORACLE_SID="orcl")
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD pwd
REPORT AT 06:00
REPORTCOUNT EVERY 30 MINUTES, RATE
REPORTROLLOVER AT 02:00
REPERROR DEFAULT, ABEND
ALLOWNOOPUPDATES
ASSUMETARGETDEFS
HANDLECOLLISIONS
DISCARDFILE /data/oracle/product/ogg_trg/dirrpt/repsa.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 02:00
MAP ogg.*, target ogg.*;

注:

REPORT AT 06:00

每天06:00定期生成一个report文件

REPORTCOUNT EVERY 30 MINUTES, RATE

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

REPORTROLLOVER AT 02:00

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

REPERROR DEFAULT, ABEND

除了特殊指定的REPERROR语句,报告所有复制期间出现的错误,回滚非正常中断的事物和进程。遇到不能处理的错误就自动abend,启动需要人工干预处理

ALLOWNOOPUPDATES

当源表有排除列情况或者有目标表不存在的列时,当更新这列goldengate默认报错。应用该参数后,即可让goldengate生成一条警告信息而不是报错。

ASSUMETARGETDEFS

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

HANDLECOLLISIONS

用于goldengate自动过滤不能出来的冲突记录,为了严格保证数据一致性

DISCARDFILE /data/oracle/product/ogg_trg/dirrpt/repsa.dsc, APPEND, MEGABYTES 1024

将执行失败的记录保存在discard file中,discard file文件记录了GoldenGate进程错误、数据库错误、GoldenGate操作等信息。该文件位于./dirrpt/repsa.dsc,大小为1024MB。 文件中已经包含记录的话,再后面继续追加,不删除之前的记录。

DISCARDROLLOVER AT 02:00

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

MAP ogg.*, target ogg.*;

对应需要复制的对象,默认一一对应传输进程

三、 初始化数据

  DML操作包括INSERT、UPDATE、DELETE、SELECT操作,而在这些操作中UPDATE、DELETE操作Redo只记录了变更的数据列以及行ID(ROWID),GoldenGate抽取数据后将其转换为自己的格式发送都目标端。在同步开始前目标端没有初始化数据(目标端为空数据),那么事物产生的UPDATE、DELETE DML操作发送到目标端,目标端GoldenGate Replicat进程会因为找不到数据而报错从而导致Replicat进程崩溃停止(ABENDED),所以这就需要我们在同步前初始化数据,初始化完后再同步,这样大大降低错误率。同步数据的方式可以通过DBLINK、EXP/IMP、SQLLDR或者表空间迁移等方式同步。

四、启动GoldenGate

数据初始化后,分别启动目标端MGR进程、Replicat进程,源端MGR进程、主抽取进程(Primary Extract)、Data Pump进程(Secondly Extract)

(目标端)

[oracle@dbtrg ~]$ ggsci

GGSCI (dbtrg) > start mgr
Manager started. GGSCI (dbtrg) > info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING
REPLICAT RUNNING REP1 :: :: GGSCI (dbtrg) > stats rep1 Sending STATS request to REPLICAT REP1 ... No active replication maps.

(源端)

[oracle@dbsrc ~]$ ggsci

GGSCI (dbsrc) > start mgr
Manager started. GGSCI (dbsrc) > info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING
EXTRACT RUNNING DPUMP1 :: ::
EXTRACT RUNNING EXT1 :: :: GGSCI (dbsrc) > stats ext1 Sending STATS request to EXTRACT EXT1 ... No active extraction maps. GGSCI (dbsrc) > stats dpump1 Sending STATS request to EXTRACT DPUMP1 ... No active extraction maps.

因为在mgr都相应的配置了extract进程和replicat进程的自启动,所以在mgr进程启动后会自动启动extract进程和replicat进程

如果启动失败,查看日志文件ggserr.log

日志文件存储路径:GoldenGate安装目录下(/data/oracle/product/ogg_src/ggserr.log)

[oracle@dbsrc ~]$ vi $OGG_HOME/ggserr.log

Oracle GoldenGate错误集:https://wenku.baidu.com/view/e78f9dd402d276a201292e14.html

五、同步测试

测试的时候分别测试insert、delete、update操作

1、源端进行数据插入操作

[oracle@dbsrc ~]$ sqlplus / as sysdba

使用ogg账户登录

SQL> conn ogg/pwd

SQL> select count(*) from togg;
COUNT(*)
---------- SQL> insert into togg(id,name,type) values(,'ww','user'); row created. SQL> select count(*) from ogg.togg;
COUNT(*)
----------

2、源端查看extract(提取)进程状态

GGSCI (dbsrc) > stats ext1

Sending STATS request to EXTRACT EXT1 ...

Start of Statistics at -- ::.

Output to /data/oracle/product/ogg_src/dirdat/sr:

Extracting from SA.emp1 to SA.emp1:

*** Total statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Daily statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Hourly statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Latest statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 End of Statistics. GGSCI (dbsrc) > stats dpump1 Sending STATS request to EXTRACT DPUMP1 ... Start of Statistics at -- ::. Output to /data/oracle/product/ogg_trg/dirdat/tr: Extracting from SA.emp1 to SA.emp1: *** Total statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Daily statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Hourly statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Latest statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 End of Statistics.

3、目标端查看replicat(复制)进程状态

GGSCI (dbtrg) > stats rep1

Sending STATS request to REPLICAT REP1 ...

Start of Statistics at -- ::.

Replicating from SA.emp1 to SA.emp1:

*** Total statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Daily statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Hourly statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 *** Latest statistics since -- :: ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total discards 0.00
Total operations 1.00 End of Statistics.

4、目标端数据查询

[oracle@dbtrg ~]$ sqlplus / as sysdba

使用ogg账户登录

SQL> conn ogg/pwd

SQL> select count(*) from togg;
COUNT(*)
---------- SQL> select id, name, type from togg where name='ww'; ID NAME TYPE
---------- ---------- -------------------
ww user

最新文章

  1. Java精确计算小数
  2. 20151009 C# 第一篇 程序编写规范
  3. thread_Exchanger数据交换
  4. 【LightOJ 1422】Halloween Costumes(区间DP)
  5. qt中信号与槽机制
  6. Simplified Memory Modle C/C++内存模型
  7. magento后台登陆404、Front controller reached 100 router match iterations的解决方案
  8. js 保留两位小数
  9. js实现数据流(日志流,报警信息等)滚动展示,并分页(含实现demo)
  10. Nginx功能展示实验
  11. angularjs 指令详解
  12. amoeba实现读写分离
  13. iOS CATransition 动画的简单使用
  14. python网络爬虫入门(一)
  15. BootStrap标题制作模板
  16. tcpdf开发文档(中文翻译版)
  17. centos 内存清理
  18. C# to IL 6 Reference and Value Types(引用类型和值类型)
  19. linux安装和卸载软件:sudo apt-get install(remove)
  20. pip使用国内镜像,豆瓣、清华

热门文章

  1. js在工作中遇到的一些问题
  2. LNMP安装后MYSQL数据库无法远程访问解决
  3. Android Stdio 如何自定义生成APK的名称
  4. Shell——数学计算
  5. 阻止微信浏览器/QQ浏览器长按弹框“在浏览器打开”
  6. 使用xfire搭建webService服务
  7. mysql数据库常用数据类型
  8. 过滤Java中特殊字符
  9. Caused by: org.h2.jdbc.JdbcSQLException: Table &quot;T_STUDENT_INFO&quot; not found; SQL statement
  10. Errors running buider &#39;DeploymentBuilder&#39; on project &#39;HFMS&#39;