oracle OGG安装配置文档

PRD(源端):

安装包路径:
/oracle/PRD/azb
OGG路径:
/oracle/PRD/ogg_src
oracle安装路径:
ORACLE_HOME=/oracle/PRD/112_64

环境变量的配置
配置环境变量时注意需要使用ORACLE用户进行配置
[oracle@ localhost ~]$ vim ~/.bash_profile
添加以下参数
vi  .dbenv_ecc-dg.csh
# Path Oracle GoldenGate
setenv OGG_HOME /oracle/DEV/ogg_src
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/lib:/usr/lib:$OGG_HOME
setenv PATH /usr/bin:/usr/sbin:$ORACLE_HOME/bin:$OGG_HOME
修改完毕以后退出重新登录使其配置文件生效

2、安装OGG软件
setenv DISPLAY 192.168.107.238:0.0

./runInstaller

3、查看是否安装成功

4、配置数据库支持OGG

[oracle@ localhost~]$ sqlplus / as sysdba
创建表空间
SQL> create tablespace OGG logging datafile '/oracle/PRD/sapdata3/OGG.DBF' size 20m autoextend on uniform size 2m;
注:autoextend on 打开自动扩展 ,uniform 指定表空间extend的大小,缺省值为1m
此表空间只用于DDL模式,不可用于其他模式
 
创建用户并授权
SQL> create user ogg identified by pwd default tablespace OGG temporary tablespace PSAPTEMP quota unlimited on OGG;
注:create user 用户名 identified by 密码 default tablespace 表空间名 temporary tablespace 临时表空间名 quota unlimited on 表空间名;
 
给用户授权
grant unlimited tablespace to ogg;
grant connect, resource, dba to ogg;
grant create session, alter session to ogg;
grant alter system to ogg;
grant select any dictionary to ogg;
grant flashback any table to ogg;
grant select any table, insert any table, update any table, delete any table, drop any table to ogg;
grant create table, create sequence to ogg;
grant select on dba_clusters to ogg;
grant select on v_$database to ogg;
grant select on sys.logmnr_buildlog to ogg;
grant select any transaction to ogg;
grant lock any table to ogg;
grant execute on dbms_flashback to ogg;
grant execute on dbms_logmnr_d to ogg;
grant execute on dbms_capture_adm to ogg;
grant execute on dbms_streams to ogg;
grant execute on utl_file to ogg;
exec dbms_streams_auth.grant_admin_privilege('ogg');

5、开启数据库附加日志
oracle 11.2.0.4和oracle 12.1.0.2及之后的版本需要设置如下参数,本次所用数据库版本为Oracle 11.2.0.1.0就无需设置此参数了

alter system set enable_goldengate_replication=true scope=both;

查看归档模式、附加日志和强制日志是否开启
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


表级别的附加日志

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

6、执行配置脚本

进入OGG安装目录
cd /oracle/PRD/ogg_src
登录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

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

./ggsci

GGSCI (ecc-dg) 1> info mgr

Manager is running (IP port ecc-dg.7809, Process ID 24829).

GGSCI (localhost.localdomain) 2> edit param mgr
PORT 7839
DYNAMICPORTLIST  7840-7939
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2
PURGEOLDEXTRACTS /oracle/PRD/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 /oracle/PRD/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分钟将写入警告日志

8、 配置Extract进程

 Extract 运行在源端或者根据系统和业务的需求可以同时运行在两端,抽取捕获系统变更统数据;它可以配置为初始化数据加载(直接从数据源中加载静态的数据)和在某个时间点后源端与服务端变更数据同步(从在线日志或归档日志抽取捕获变更的数据),它也可以在支持DDL变更的系统中抽取捕获DDL;
当配置为数据同步时,extract进程抽取捕获extract配置文件里配置的对象的任何DML和DDL(需要额外配置)的操作,extract进程记录这些操作,直到用户提交或回滚事务;当收到回滚(rollback)时,extract撤销这些记录;当收到(commit)操作后,extract进程记录保存这些操作到一个或多个trail文件里并以队列的形式发送到目标端,以确保数据传输速度和数据的一致性。

1)、配置主抽取进程(Primary Extract)
使用ogg用户登录GoldenGate
GGSCI (localhost.localdomain) 5> dblogin userid ogg, password pwd
创建主抽取进程
GGSCI (localhost as ogg@orcl) 6> add extract ext1,tranlog,begin now
--------------------------20200302
add extract ext1,tranlog,begin now

/oracle/ogg_trg/dirdat/prd

创建源端trail文件并指定路径
主进程的作用是抽取捕获系统变更数据并将这些数据保存到trail文件里,所以必须为其配置trail文件目录和trail文件名的两个字符名
GGSCI (localhost as ogg@orcl) 7> add exttrail /oracle/PRD/ogg_src/dirdat/sr, extract ext1
 --------------------------20200302
add exttrail /oracle/ogg_trg/dirdat/prd/sr, extract ext1

GGSCI (localhost as ogg@orcl) 8> edit param ext1 
 
extract ext1
SETENV(ORACLE_SID="PRD")
SETENV(NLS_LANG=AMERICAN_AMERICA.UTF8)
userid ogg, password pwd
REPORTCOUNT EVERY 30 MINUTES, RATE
DISCARDFILE /oracle/PRD/ogg_src/dirrpt/extsr.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 3:00
EXTTRAIL /oracle/PRD/ogg_src/dirdat/sr
DYNAMICRESOLUTION
DBOPTIONS ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
FETCHOPTIONS FETCHPKUPDATECOLS
table SAPSR3.*;

--------------------------20200302

extract ext1
SETENV(ORACLE_SID="ZSDL")
SETENV(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD pwd
REPORTCOUNT EVERY 30 MINUTES, RATE
DISCARDFILE /oracle/ogg_trg/dirrpt/ext1.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 3:00
EXTTRAIL /oracle/ogg_trg/dirdat/prd/sr
DYNAMICRESOLUTION
DBOPTIONS  ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
FETCHOPTIONS FETCHPKUPDATECOLS
table MMSDATA.MMS_MOULDWLXX;
注:
SETENV(ORACLE_SID="orcl")
设置Oracle数据库实例sid
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
设置goldengate的字符集变量信息,此处值会覆盖操作系统级别的变量。该值需要和数据库字符集匹配一致。
REPORTCOUNT EVERY 30 MINUTES, RATE
每隔30分钟报告一次从程序开始到现在的抽取进程或者复制进程的事物记录数,并汇报进程的统计信息
DISCARDFILE /home/oracle/product/ogg_src/dirrpt/extsr.dsc, APPEND, MEGABYTES 1024
将执行失败的记录保存在discard file中,discard file文件记录了GoldenGate进程错误、数据库错误、GoldenGate操作等信息。该文件位于/home/oracle/product/ogg_src/dirrpt/extsr.dsc,大小为1024MB。 文件中已经包含记录的话,再后面继续追加,不删除之前的记录。
DISCARDROLLOVER AT 3:00
为了防止discard file被写满,每天3:00做一次文件过期设定
EXTTRAIL /home/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 (localhost as ogg@orcl) 9> add extract dpump1, exttrailsource /oracle/PRD/ogg_src/dirdat/sr
 add extract dpump1, exttrailsource /data/app/oracle/ogg/dirdat/sr

--------------------------20200302
add extract dpumprd1, exttrailsource /oracle/ogg_trg/dirdat/prd/sr


extract dpumprd1
SETENV(ORACLE_SID="ZSDL")
SETENV(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD pwd
RMTHOST 192.168.200.55, mgrport 7839, COMPRESS,COMPRESSTHRESHOLD 0
PASSTHRU
--gettruncates
RMTTRAIL /oracle/PRD/ogg_src/dirdat/zsmf/tr
--DYNAMICRESOLUTION
table MMSDATA.MMS_MOULDWLXX;


add rmttrail /oracle/PRD/ogg_src/dirdat/zsmf/tr, extract dpumprd1

add trandata MMSDATA.MMS_MOULDWLXX

---------------------------------------------------------------
ADD REPZSMF1

---------------------20200302
add replicat repzsmf1, exttrail /oracle/PRD/ogg_src/dirdat/zsmf/tr,nodbcheckpoint
REPLICAT repzsmf1
SETENV(ORACLE_SID="PRD")
SETENV(NLS_LANG=AMERICAN_AMERICA.UTF8)
USERID ogg, PASSWORD pwd
REPORT AT 06:00
REPORTCOUNT EVERY 30 MINUTES, RATE
REPORTROLLOVER AT 02:00
REPERROR DEFAULT,discard 
ALLOWNOOPUPDATES
ASSUMETARGETDEFS
HANDLECOLLISIONS 
REPLACEBADCHAR SKIP
DISCARDFILE /oracle/PRD/ogg_src/dirrpt/repzsmf1.dsc, APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 02:00
MAP MMSDATA.MMS_MOULDWLXX,TARGET SAPSR3.ZTMMS_MOULDWL;


----------------------20200302

extract dpump1
SETENV(ORACLE_SID="PRD")
SETENV(NLS_LANG=AMERICAN_AMERICA.UTF8)
RMTHOST 192.168.200.202, mgrport 7839, COMPRESS
PASSTHRU
RMTTRAIL /oracle/ogg_trg/dirdat/tr
--DYNAMICRESOLUTION
table SAPSR3.ZTMMSTAH;
table ogg.*;


GGSCI (localhost as ogg@orcl) 10> edit param dpump1
 
extract dpump1
SETENV(ORACLE_SID="PRD")
SETENV(NLS_LANG=AMERICAN_AMERICA.UTF8)
RMTHOST 192.168.200.202, mgrport 7839, COMPRESS
PASSTHRU
RMTTRAIL /oracle/ogg_trg/dirdat/tr
--DYNAMICRESOLUTION
table SAPSR3.ZTMMSTAH;
table ogg.*;
注:
RMTHOST 192.168.200.202, mgrport 7839, COMPRESS
目标端主机IP,管理进程端口号,投递前压缩队列文件
PASSTHRU
表示传输进程直接跟抽取进程交互,而不再和数据库进行交互,减少数据库资源的利用。
RMTTRAIL /home/oracle/product/ogg_trg/dirdat/tr
目标端保存队列文件的目录
DYNAMICRESOLUTION
动态解析表名
table ogg.*;
复制范围和抽取进程对应即可 
源端可以配置多个主抽取进程,也可以配置多个Data Pump进程,但必须为每个要同步的目标端配置一个Data Pump进程;
指定Data Pump进程发送trail文件到目标端的位置(目标端trail文件添加到队列中)

GGSCI (localhost as ogg@orcl) 11> add rmttrail /oracle/ogg_trg/dirdat/tr, extract dpump1

 add rmttrail /oracle/DEV/ogg_src/dirdat/tr, extract dpump1


200.200 (目的端):

安装包路径:
/oracle/azb
OGG路径:
/oracle/ogg_src
oracle安装路径:
ORACLE_HOME=/oracle/product/11.2.0/db_1

环境变量的配置
配置环境变量时注意需要使用ORACLE用户进行配置
[oracle@ localhost ~]$ vim ~/.bash_profile
添加以下参数
vi  .dbenv_ecc-dg.csh
# Path Oracle GoldenGate
setenv OGG_HOME /oracle/ogg_src
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/lib:/usr/lib:$OGG_HOME
setenv PATH /usr/bin:/usr/sbin:$ORACLE_HOME/bin:$OGG_HOME
修改完毕以后退出重新登录使其配置文件生效

2、安装OGG软件
setenv DISPLAY 192.168.107.238:0.0

./runInstaller

3、查看是否安装成功

4、配置数据库支持OGG

[oracle@ localhost~]$ sqlplus / as sysdba
创建表空间
SQL> create tablespace OGG logging datafile '/oradata/ogg/OGG.DBF' size 20m autoextend on uniform size 2m;
注:autoextend on 打开自动扩展 ,uniform 指定表空间extend的大小,缺省值为1m
此表空间只用于DDL模式,不可用于其他模式
 
创建用户并授权
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 表空间名;
 
给用户授权
grant unlimited tablespace to ogg;
grant connect, resource, dba to ogg;
grant create session, alter session to ogg;
grant alter system to ogg;
grant select any dictionary to ogg;
grant flashback any table to ogg;
grant select any table, insert any table, update any table, delete any table, drop any table to ogg;
grant create table, create sequence to ogg;
grant select on dba_clusters to ogg;
grant select on v_$database to ogg;
grant select on sys.logmnr_buildlog to ogg;
grant select any transaction to ogg;
grant lock any table to ogg;
grant execute on dbms_flashback to ogg;
grant execute on dbms_logmnr_d to ogg;
grant execute on dbms_capture_adm to ogg;
grant execute on dbms_streams to ogg;
grant execute on utl_file to ogg;
exec dbms_streams_auth.grant_admin_privilege('ogg');

5、开启数据库附加日志
oracle 11.2.0.4和oracle 12.1.0.2及之后的版本需要设置如下参数,本次所用数据库版本为Oracle 11.2.0.1.0就无需设置此参数了

alter system set enable_goldengate_replication=true scope=both;

查看归档模式、附加日志和强制日志是否开启
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


表级别的附加日志

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

6、执行配置脚本

进入OGG安装目录
cd /oracle/PRD/ogg_src
登录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

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

./ggsci

GGSCI (ecc-dg) 1> info mgr

Manager is running (IP port ecc-dg.7809, Process ID 24829).

GGSCI (localhost.localdomain) 2> edit param mgr
PORT 7839
DYNAMICPORTLIST 7840-7939
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *, RETRIES 5, WAITMINUTES 2
PURGEOLDEXTRACTS /oracle/ogg_trg/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 /oracle/PRD/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分钟将写入警告日志


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

Replicat进程运行在目标端读取tail文件和重构DML、DDL并应用到目标数据库;Replicat编译SQL一次,当变量值不同时重复使用编译过的SQL;Replicat进程可以像extract进程一样配置初始化数据加载(直接从数据源中加载静态的数据)和在某个时间点后源端与服务端变更数据同步(从在线日志或归档日志抽取捕获变更的数据);
  Checkpoint存储从文件读取和写入的检测点位置,用于还原和恢复数据,Checkpoint确保发生变化并提交(commit)的数据被extract抽取捕获和被replicat进程应用到目标端;保证在系统、网络或者GoldenGate需要重启进程时发生的错误不会导致数据丢失;在复杂的同步配置中checkpoints启用多个extract和replicat进程从同一个trail集中读取数据。
 
使用GoldenGate用户(ogg登录
GGSCI (localhost) 1> dblogin userid ogg, password pwd
创建和配置Checkpoint Table
GGSCI (localhost as ogg@orcl) 2> add checkpointtable ogg.checkpoint
 
GGSCI (localhost as ogg@orcl) 3> edit param ./GLOBALS
 
GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint
注:首次编辑GoldenGate配置文件时,GLOBALS文件以大写命名并且没有扩展名创建在GoldenGate_home根目录
 
创建replicat进程
GGSCI (localhost as ogg@orcl) 4> add replicat rep1, exttrail /oracle/ogg_trg/dirdat/tr, checkpointtable ogg.checkpoint
 
GGSCI (localhost as ogg@orcl) 5> edit param rep1
 
REPLICAT rep1
SETENV(ORACLE_SID=ZSDL)
SETENV(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
USERID ogg, PASSWORD pwd
REPORT AT 06:00
REPORTCOUNT EVERY 30 MINUTES, RATE
REPORTROLLOVER AT 02:00
REPERROR DEFAULT, ABEND
ALLOWNOOPUPDATES
ASSUMETARGETDEFS
HANDLECOLLISIONS
DISCARDFILE /oracle/ogg_trg/dirrpt/repsa.dsc,APPEND,MEGABYTES 1024
DISCARDROLLOVER AT 02:00
MAP SAPSR3.ZTMMSTAH,target ogg.ZTMMSTAH;
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 /home/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.*;
对应需要复制的对象,默认一一对应传输进程

数据在线初始化

GGSCI (ecc-dg as ogg@PRD) 11> start ext1

GGSCI (ecc-dg as ogg@PRD) 11> start dpump1

记录当前SCN号,用于EXPDP备份
SQL> select current_scn from v$database;

    CURRENT_SCN
-------------------
    30879242868
SQL>
源库初始化导出
expdp SAPSR3/oracle directory=dump_dir dumpfile=ZTMMSTAH.dmp tables=ZTMMSTAH flashback_scn=30879242868
expdp ogg/pwd directory=dump_dir dumpfile=mdm.dmp tables=ZSMDM.MDM_MIDDLE_MDMTOMES9100 flashback_scn=31093954629
源端插入数据
SQL> insert into ZTMMSTAH values (4);
1 row created.
SQL> insert into ZTMMSTAH values (5);
1 row created.
SQL>commit;
Commit complete.
SQL> select * from ZTMMSTAH;
 ID----------  1  2  3  4  5
SQL>

目标端trigger、cascade reference
GGSCI (WIN-J90I7K09JBL) 61> view param rep_exp
replicat rep_exp 
USERID ogg , PASSWORD ogg 
REPERROR DEFAULT,ABEND
DISCARDFILE ./dirrpt/exp.dsc,append,megabytes 100
ASSUMETARGETDEFSALLOWNOOPUPDATESDYNAMICRESOLUTIONDBOPTIONS SUPPRESSTRIGGERS DBOPTIONS DEFERREFCONSTGETTRUNCATES
MAP TIANBAOBAO.TIANBAOBAO, TARGET TIANBAOBAO.TIANBAOBAO;

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

目标端禁用job
SQL> alter system set job_queue_processes=0;
系统已更改。
SQL>
目标端禁用Scheduler
目标端数据初始化
 create tablespace PSAPSR3 logging datafile '/oradata/ogg/PSAPSR3.DBF' size 1024m autoextend on uniform size 20m;

 create user SAPSR3 identified by oracle default tablespace PSAPSR3 temporary tablespace TEMP quota unlimited on PSAPSR3;

impdp SAPSR3/zsdl1234 directory=dump_dir2 dumpfile=ZTMMSTAH.dmp table_exists_action=replace 
定位Strings文件
GGSCI (WIN-J90I7K09JBL) 62> alter replicat rep1, extseqno 0, extrba 0
目标端开启replicat进程并追加增量数据30876757715
GGSCI (WIN-J90I7K09JBL) 63> start rep1,aftercsn 29197402653
Sending START request to MANAGER ...REPLICAT REP_EXP starting
检查REPLICAT进程追加状态
GGSCI (WIN-J90I7K09JBL) 65> stats rep1,total
Sending STATS request to REPLICAT REP_EXP ...
Start of Statistics at 2015-03-02 21:45:34.
Replicating from TIANBAOBAO.TIANBAOBAO to TIANBAOBAO.TIANBAOBAO:
*** Total statistics since 2015-03-02 21:45:00 ***        Total inserts                                      2.00        Total updates                                      0.00        Total deletes                                      0.00        Total discards                                     0.00        Total operations                                   2.00
End of Statistics.
检查目标端表数据(是否与源端一致)
SQL> select * from tianbaobao;
        ID----------         1         2         3         4         5
SQL>
测试两端数据一致,实验结束。


 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值