Oracle GoldenGate实现数据库同步

前言:最近恰好在弄数据库同步,网上查了些资料再加上本身整理了一些,作个分享!html

1、GoldenGate的安装

 

官方文档:sql

 

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

一、安装包准备

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

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

 

root权限网络

(建立安装包存放目录)session

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

(建立源端安装目录)oracle

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

(建立目标端安装目录)ide

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

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

二、配置环境变量

(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_HOMEGoldenGate的安装目录

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

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

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

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

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

四、配置快捷命令

详见上一篇: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的安装目录

五、查看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)命令建立

2、配置数据库支持GoldenGate

一、为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;

二、开启数据库附加日志

oracle 11.2.0.4oracle 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 用户名.表名;

三、执行配置脚本

进入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同步配置完成)

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

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

[oracle@dbsrc ~]$ ggsci GGSCI (dbsrc) 1> info mgr Manager is running (IP port dbsrc.7809,Process ID 5682)

源端:

GGSCI (dbsrc) 2> 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

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

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) 1> 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天。

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

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

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

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

使用ogg用户登陆GoldenGate

GGSCI (dbsrc) 5> dblogin userid ogg, password pwd

建立主抽取进程

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

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

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

GGSCI (dbsrc as ogg@orcl) 7> add exttrail /data/oracle/product/ogg_src/dirdat/sr, extract ext1 GGSCI (dbsrc as ogg@orcl) 8> 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 Pumpextract进程必须发送抽取捕获的操做数据到目标端trail;若是配置了Data Pumpextract进程抽取捕获数据写入到trailData pump读取trail而且经过网络发送trail到目标端traildata pump 增强了源端和目标端抽取捕获数据的可用性,

主要优势:

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

2.能够实现复杂的数据过滤和转换;

3.能够结合多个数据源到目标端;

4.能够同步一个源数据到多个目标端。

 

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

GGSCI (dbsrc as ogg@orcl) 9> add extract dpump1, exttrailsource /data/oracle/product/ogg_src/dirdat/sr  GGSCI (dbsrc as ogg@orcl) 10> 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) 11> add rmttrail /data/oracle/product/ogg_trg/dirdat/tr, extract dpump1

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

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

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

 

使用GoldenGate用户(ogg)登陆

GGSCI (dbtrg) 1> dblogin userid ogg, password pwd

建立和配置Checkpoint Table

GGSCI (dbtrg as ogg@orcl) 2> add checkpointtable ogg.checkpoint GGSCI (dbtrg as ogg@orcl) 3> edit param ./GLOBALS GGSCHEMA ogg CHECKPOINTTABLE ogg.checkpoint

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

建立replicat进程

GGSCI (dbtrg as ogg@orcl) 4> add replicat rep1, exttrail /data/oracle/product/ogg_trg/dirdat/tr, checkpointtable ogg.checkpoint  GGSCI (dbtrg as ogg@orcl) 5> 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.*;

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

 

3、 初始化数据

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

4、启动GoldenGate

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

(目标端)

[oracle@dbtrg ~]$ ggsci GGSCI (dbtrg) 1> start mgr Manager started. GGSCI (dbtrg) 2> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING REPLICAT RUNNING REP1 00:00:00 00:00:02 GGSCI (dbtrg) 3> stats rep1 Sending STATS request to REPLICAT REP1 ... No active replication maps.  

(源端)

[oracle@dbsrc ~]$ ggsci  GGSCI (dbsrc) 1> start mgr Manager started. GGSCI (dbsrc) 2> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING DPUMP1 00:00:00      00:08:30 EXTRACT RUNNING EXT1 00:00:00      00:00:03 GGSCI (dbsrc) 3> stats ext1 Sending STATS request to EXTRACT EXT1 ... No active extraction maps. GGSCI (dbsrc) 4> 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

5、同步测试

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

一、源端进行数据插入操做

[oracle@dbsrc ~]$ sqlplus / as sysdba

使用ogg帐户登陆

SQL> conn ogg/pwd SQL> select count(*) from togg; COUNT(*) ----------
      100 SQL> insert into togg(id,name,type) values(111,'ww','user'); 1 row created. SQL> select count(*) from ogg.togg; COUNT(*) ----------
      101

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

GGSCI (dbsrc) 5> stats ext1  Sending STATS request to EXTRACT EXT1 ... Start of Statistics at 2018-03-15 16:22:46. Output to /data/oracle/product/ogg_src/dirdat/sr: Extracting from SA.emp1 to SA.emp1: *** Total statistics since 2018-03-15 16:15:31 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Daily statistics since 2018-03-15 16:15:31 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Hourly statistics since 2018-03-15 16:15:31 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Latest statistics since 2018-03-15 16:15:31 *** 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) 6> stats dpump1 Sending STATS request to EXTRACT DPUMP1 ... Start of Statistics at 2018-03-15 16:22:49. Output to /data/oracle/product/ogg_trg/dirdat/tr: Extracting from SA.emp1 to SA.emp1: *** Total statistics since 2018-03-15 16:15:32 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Daily statistics since 2018-03-15 16:15:32 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Hourly statistics since 2018-03-15 16:15:32 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Latest statistics since 2018-03-15 16:15:32 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00 End of Statistics.

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

GGSCI (dbtrg) 4> stats rep1 Sending STATS request to REPLICAT REP1 ... Start of Statistics at 2018-03-15 16:23:00. Replicating from SA.emp1 to SA.emp1: *** Total statistics since 2018-03-15 16:15:36 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Daily statistics since 2018-03-15 16:15:36 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Hourly statistics since 2018-03-15 16:15:36 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00

*** Latest statistics since 2018-03-15 16:15:36 *** Total inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00 End of Statistics.

四、目标端数据查询

[oracle@dbtrg ~]$ sqlplus / as sysdba

使用ogg帐户登陆

SQL> conn ogg/pwd SQL> select count(*) from togg; COUNT(*) ----------
      101 SQL> select id, name, type from togg where name='ww';  ID NAME TYPE ---------- ---------- -------------------
 111            ww         user
相关文章
相关标签/搜索