文档说明:GoldenGate19.1 Oracle单向dml配置全过程,源端说19c数据库,asm磁盘组,目标端是11g,本地文件系统。
测试环境
IP地址 ogg版本 数据库版本 OS
源端 192.168.87.43 19.1 19.8 OLE 7.6
目标端 192.168. 17.194 19.1 11.2.0.4 OLE 6.7
VirtualBox-6.1-6.1.14_140239_el7-1.x86_64.rpm
[oracle@dell u01]$ ll /u02/install/191004_fbo_ggs_Linux_x64_shiphome.zip
-rw-r--r--. 1 oracle oinstall 556240981 Sep 25 15:27 /u02/install/191004_fbo_ggs_Linux_x64_shiphome.zip
[oracle@dell u01]$
安装
mkdir /u01/app/oracle/ggs/19.1 -p
mv 191004_fbo_ggs_Linux_x64_shiphome.zip /u01/app/oracle/ggs/19.1/
unzip 191004_fbo_ggs_Linux_x64_shiphome.zip
[oracle@ogg19 ~]$ cd fbo_ggs_Linux_x64_shiphome/Disk1/
[oracle@ogg19 Disk1]$ ll
total 16
drwxr-xr-x 4 oracle oinstall 4096 10月 18 2019 install
drwxrwxr-x 2 oracle oinstall 4096 10月 18 2019 response
-rwxr-xr-x 1 oracle oinstall 918 10月 18 2019 runInstaller
drwxr-xr-x 12 oracle oinstall 4096 10月 18 2019 stage
[oracle@ogg19 Disk1]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 42866 MB Passed
Checking swap space: must be greater than 150 MB. Actual 3071 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2020-09-30_02-42-53PM. Please wait ...[oracle@ogg19 Disk1]$ You can find the log of this install session at:
/u01/app/oraInventory/logs/installActions2020-09-30_02-42-53PM.log





在.bash_profile中增加下面的行
export GGATE=$ORACLE_BASE/ogg19
export PATH=$PATH:$GGATE
GGSCI (ogg19) 2> CREATE SUBDIRS
Creating subdirectories under current directory /u01/app/oracle/ogg19
Parameter file /u01/app/oracle/ogg19/dirprm: already exists.
Report file /u01/app/oracle/ogg19/dirrpt: already exists.
Checkpoint file /u01/app/oracle/ogg19/dirchk: already exists.
Process status files /u01/app/oracle/ogg19/dirpcs: already exists.
SQL script files /u01/app/oracle/ogg19/dirsql: already exists.
Database definitions files /u01/app/oracle/ogg19/dirdef: already exists.
Extract data files /u01/app/oracle/ogg19/dirdat: already exists.
Temporary files /u01/app/oracle/ogg19/dirtmp: already exists.
Credential store files /u01/app/oracle/ogg19/dircrd: already exists.
Masterkey wallet files /u01/app/oracle/ogg19/dirwlt: already exists.
Dump files /u01/app/oracle/ogg19/dirdmp: already exists.
GGSCI (ogg19) 3> exit
[oracle@ogg19 ogg19]$ pwd
/u01/app/oracle/ogg19
[oracle@ogg19 ogg19]$
创建测试用户及测试数据
SQL> create tablespace tb_ogg datafile size 10m ;
SQL> create user scutech identified by dingjia default tablespace tb_ogg;
User created.
SQL> grant dba to scutech;
Grant succeeded.
$ sqlplus scutech/dingjia
SQL> create table tb (id int not null, name char(10), primary key(id));
Table created.
创建 OGG 用户,并赋权(Source & Target 步骤一样)
SQL> create user ogg identified by dingjia default tablespace tb_ogg;
SQL> grant dba to ogg;
配置数据库日志
SQL> alter database add supplemental log data;
Database altered.
SQL> alter database force logging;
Database altered.
SQL> set linesize 200;
SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;
LOG_MODE SUPPLEMENTAL_LOG FORCE_LOGGING
------------------------ ---------------- ------------------------------------------------------------------------------
ARCHIVELOG YES YES
SQL> ALTER SYSTEM SWITCH LOGFILE;
System altered.
SQL> alter system set enable_goldengate_replication=true;
System altered.
Credential store配置
开启表级别日志,追加对象为用户scutech下所有表
GGSCI (oledb.scutech) 54> DBLOGIN USERID ogg password dingjia;
Successfully logged into database.
GGSCI (oledb.scutech as ogg@dbogg) 55> ADD SCHEMATRANDATA scutech
2020-10-14 19:00:57 INFO OGG-01788 SCHEMATRANDATA has been added on schema "scutech".
2020-10-14 19:00:57 INFO OGG-01976 SCHEMATRANDATA for scheduling columns has been added on schema "scutech".
2020-10-14 19:00:57 INFO OGG-10154 Schema level PREPARECSN set to mode NOWAIT on schema "scutech".
2020-10-14 19:01:00 INFO OGG-10471 ***** Oracle Goldengate support information on table SCUTECH.TA *****
Oracle Goldengate support native capture on table SCUTECH.TA.
Oracle Goldengate marked following column as key columns on table SCUTECH.TA: A
No unique key is defined for table SCUTECH.TA.
GGSCI (oledb.scutech as ogg@dbogg) 56> info SCHEMATRANDATA scutech
2020-10-14 19:01:23 INFO OGG-06480 Schema level supplemental logging, excluding non-validated keys, is enabled on schema "SCUTECH".
2020-10-14 19:01:23 INFO OGG-01980 Schema level supplemental logging is enabled on schema "SCUTECH" for all scheduling columns.
2020-10-14 19:01:23 INFO OGG-10462 Schema "SCUTECH" have 1 prepared tables for instantiation.
GGSCI (oledb.scutech as ogg@dbogg) 57> info trandata scutech.*
2020-10-14 19:01:43 INFO OGG-06480 Schema level supplemental logging, excluding non-validated keys, is enabled on schema "SCUTECH".
2020-10-14 19:01:43 INFO OGG-01980 Schema level supplemental logging is enabled on schema "SCUTECH" for all scheduling columns.
2020-10-14 19:01:43 INFO OGG-10471 ***** Oracle Goldengate support information on table SCUTECH.TA *****
Oracle Goldengate support native capture on table SCUTECH.TA.
Oracle Goldengate marked following column as key columns on table SCUTECH.TA: A
No unique key is defined for table SCUTECH.TA.
Logging of supplemental redo log data is enabled for table SCUTECH.TA.
Columns supplementally logged for table SCUTECH.TA: "A".
Prepared CSN for table SCUTECH.TA: 1968044
配置 Source 端 MGR 进程
配置全局文件
GGSCI (oledb.scutech) 2> edit params ./GLOBALS
ggschema ogg
全局文件 GLOBALS 要大写,必须放在 Golden Gate 根目彔下,否则其会默认将配置文件创建在 Golden Gate 根目彔下的 dirprm 子目彔中,在全局文件中添加 GGSCHEMA参数,这个 ggschema 就是要抽取的数据库schema。
配置 MGR 参数文件
GGSCI (oledb.scutech) 5> edit params mgr
port 7809
dynamicportlist 7800-8000
autorestart extract *,retries 5,waitminutes 2,resetminutes 5
参数说明: Port:指定 MGR 进程通信端口 Dynamicportlist:MGR 进程为 Source 和 Target 端劢态通信指定端口 Autorestart Extract:自劢重启 Extract 进程组,每两分钟尝试重启所有 Extract 进程,重试 5 次,每隔 5分钟清零一次
注意:参数配置完成后,需要重启 MGR 进程后生效
GGSCI (oledb.scutech) 4> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
配置源数据抽取进程(Extract)
编辑配置文件 edit params ext1
extract ext1
SETENV(ORACLE_SID='dbogg')
userid ogg,password dingjia
exttrail /u01/app/oracle/ogg19/dirdat/et
table scutech.*;
TranlogOptions DBLOGREADER
参数说明:
Extract Ext1:表示此为 Extract 进程,当前 Group 为 Ext1
Setenv:设置环境发量字符集
Userid和password:表示登陆数据库使用的账号和密码
Exttrail:指定本地 Trail 文件地址
Table:表示要同步的表,*代表全部
TranlogOptions DBLOGREADER 不用配置登陆ASM需要的TNS配置内容,并且也不在需要指定归档路径,其自动会找到归档日志的位置
OGG11g提供一个新的参数:DBLOGREADER使用该参数,我们就不需要配置登陆ASM所需要的TNS配置内容,而且在参数文件里面也不需要制定归档路径的位置,它会自动去寻找归档路径。但如果要使用该参数,对数据库的版本有一定的要求,以下是官方文档对该参数的解释
添加抽叏进程
add extract ext1 ,tranlog,begin now
添加一个 group 为 ext1 的 extract 进程,并且使用的 tranlog 捕获模式,开始使用时间是 now。
添加本地 Trail 文件
add exttrail /u01/app/oracle/ogg19/dirdat/et,extract ext1
为 ext1 进程添加一个 remote trail 的链接,表明将会把 trail 传到目标端的/u01/app/oracle/ogg/dirdat 目彔下,并以 et 作为一系列 trail 的前缀。
启动服务
start ext1
如果出现:
2020-10-14T17:36:02.068+0800 ERROR OGG-00685 Oracle GoldenGate Capture for Oracle, ext1.prm: begin time 2020 M10 14 11:19:57 prior to oldest log in log history. Last SQL executed <SELECT 1 FROM dual WHERE TO_DATE(:1,'YYYY-MM-DD HH24:MI:SS') < (SELECT MIN(first_time) FROM v$log_history WHERE thread# = :2)>.
修改抽取的时间
GGSCI (oledb.scutech) 31> alter ext1 begin now
EXTRACT altered.
查看状态
GGSCI (oledb.scutech) 19> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 05:06:20
配置源数据Pump 进程
编辑配置文件
edit params pump1
extract pump1
passthru
rmthost 192.168.17.194,mgrport 7809,compress
rmttrail /u01/app/oracle/ogg19/dirdat/pt
table scutech.*;
passthru:绕过数据定义检测
添加 pump 进程
add extract pump1,exttrailsource /u01/app/oracle/ogg19/dirdat/et
EXTRACT added. exttrailsource:表示这是个 data pump extract 与本地 trail 作连接
添加进程 Trail 文件
add rmttrail /u01/app/oracle/ogg19/dirdat/pt,extract pump1
RMTTRAIL added. tmttrail:将 pump 与 remote trail 做链接
启劢服务
start pump1
查看状态
info all
GGSCI (oledb.scutech) 37> add extract pump1,exttrailsource /u01/app/oracle/ogg/dirdat/et
EXTRACT added.
GGSCI (oledb.scutech) 38> add rmttrail /u01/app/oracle/ogg/dirdat/pt,extract pump1
RMTTRAIL added.
GGSCI (oledb.scutech) 39> start pump1
Sending START request to MANAGER ...
EXTRACT PUMP1 starting
2020-10-14T15:57:55.238+0800 ERROR OGG-06220 Oracle GoldenGate
Capture for Oracle, ext1.prm: Classic Extract does not support
multitenant container databases.
配置 Target 端 MGR 进程
GGSCI (ogg19 as ogg@orcl) 48> view param mgr
PORT 7809
dynamicportlist 7800-8000
autostart er *
autorestart extract *, waitminutes 2, resetminutes 5
lagreporthours 1
laginfominutes 3
lagcriticalminutes 5
purgeoldextracts /u01/app/oracle/ogg19/dirdat/pt*, usecheckpoints, minkeepdays 3
配置 Target 端 Replicat 进程
配置 Replicat 进程参数
GGSCI (ogg19 as ogg@orcl) 47> view param rep1
replicat rep1
userid ogg,password dingjia
assumetargetdefs
reperror default,discard
discardfile /u01/app/oracle/ogg19/dirrpt/rep1.dsc,append,megabytes 50
map scutech.*, target scutech.*;
创建 Checkpointtable
GGSCI (ogg19) 8> dblogin userid ogg password dingjia
Successfully logged into database.
GGSCI (ogg19 as ogg@orcl) 9> add checkpointtable ogg.checkpoint_table
Successfully created checkpoint table ogg.checkpoint_table.
添加复制进程
GGSCI (ogg19 as ogg@orcl) 47> view param rep1
replicat rep1
userid ogg,password dingjia
assumetargetdefs
reperror default,discard
discardfile /u01/app/oracle/ogg19/dirrpt/rep1.dsc,append,megabytes 50
map scutech.*, target scutech.*;
add replicat rep1,exttrail /u01/app/oracle/ogg19/dirdat/pt, CHECKPOINTTABLE ogg.checkpoint_table
添加一个 replicat 进程,group 为 rep1 , 并 且 链 接 到 相 应 的 trail 文件,使用名为ogg.checkpoint_table 作为 checkpointtable。
GGSCI (ogg19 as ogg@orcl) 46> info rep1
REPLICAT REP1 Last Started 2020-10-15 15:30 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:01 ago)
Process ID 23046
Log Read Checkpoint File /u01/app/oracle/ogg19/dirdat/pt000000000
2020-10-15 15:17:45.757109 RBA 2187
测试
在源
SQL> insert into tb values(6,'kkk');
1 row created.
SQL> commit
2 ;
在目标
SQL> select * from tb;
ID NAME
---------- ----------
2 dd
3 aa
4 sdsds
6 kkk