OGG在DG端挖掘的相关模拟测试——生产节点异常

来源:这里教程网 时间:2026-03-03 21:30:20 作者:

一、环境描述

I P

实例

数据库版本

O GG

生产端

1 92.168.238.195/196

orcl

1 1204

/

D G

1 92.168.238.56

o rcldg

1 1204

1 2.3

O GG 备库

1 92.168.238.56

ora

1 1204

1 2.3

二、经典模式测试 2.1ADG模式 创建挖掘进程

add extract adg_ext tranlog threads 2 begin now
add exttrail ./dirdat/ad extract adg_ext
extract adg_ext
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
setenv (ORACLE_SID="orcldg")
userid odc,password odc
exttrail ./dirdat/ad
tranlogoptions minefromactivedg
--tranlogoptions dblogreader
fetchoptions fetchpkupdatecols
ddl include objname test.* exclude objtype 'TRIGGER'
--DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10
table test.*;

创建应用进程

GGSCI (ggs as odc@orcl1) 5> dblogin userid odc password odc
Successfully logged into database.
GGSCI (ggs as odc@ora) 6> add replicat adg_rep exttrail ./dirdat/ad
REPLICAT added.
replicat adg_rep
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
setenv (ORACLE_SID="ora")
userid odc, password odc
--handlecollisions
assumetargetdefs
allownoopupdates
dboptions deferrefconst
handletpkupdate
--batchsql
ddlerror 955 ignore
ddlerror 1917 ignore
ddlerror 24344 ignore
ddlerror 1031 ignore
ddl include mapped
discardfile ./dirrpt/adg.dsc, append megabytes 20
discardrollover on sunday
--discardrollover
--ddlerror 942 ignore
map test.* target test.*;

2.1.1测试二节点正常关机

[oracle@rac11gn2 ~]$ export ORACLE_SID=orcl2
SQL> shutdown immediate
OGG正常,数据可以正常传输
重启挖掘也正常

2.1.2测试二节点异常宕机

二节点宕机
[root@rac11gn2 ~]# reboot
OGG正常,数据可以正常传输
重启挖掘也正常

2.2DG模式 创建挖掘进程

add extract dg_ext tranlog threads 2 begin now
add exttrail ./dirdat/dg extract dg_ext
extract dg_ext
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
setenv (ORACLE_SID=orcldg)
userid odc@orcl,password odc
exttrail ./dirdat/dg
tranlogoptions archivedlogonly
tranlogoptions altarchivelogdest /oracle/app/arch/ora
fetchoptions fetchpkupdatecols
ddl include objname test.* exclude objtype 'TRIGGER'
DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10  
table test.*;

创建应用进程

dblogin userid odc password odc
Successfully logged into database.
 add replicat dg_rep exttrail ./dirdat/dg
REPLICAT added.
replicat dg_rep
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
setenv (ORACLE_SID="ora")
userid odc, password odc
--handlecollisions
assumetargetdefs
allownoopupdates
dboptions deferrefconst
handletpkupdate
--batchsql
ddlerror 955 ignore
ddlerror 1917 ignore
ddlerror 24344 ignore
ddlerror 1031 ignore
ddl include mapped
discardfile ./dirrpt/dg.dsc, append megabytes 20
discardrollover on sunday
--discardrollover
--ddlerror 942 ignore
map test.* target test.*;

2.2.1测试二节点正常关机

[oracle@rac11gn2 ~]$ export ORACLE_SID=orcl2
SQL> shutdown immediate

检查进程状态

GGSCI (ggs as odc@orcl1) 2> info dg*
EXTRACT    DG_EXT    Last Started 2025-01-13 17:30   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:07 ago)
Process ID           3754
Log Read Checkpoint  Oracle Redo Logs
                     2025-01-13 17:34:48  Thread 1, Seqno 152, RBA 77840
                     SCN 0.411203 (411203)
Log Read Checkpoint  Oracle Redo Logs
                     2025-01-13 17:31:03  Thread 2, Seqno 114, RBA 1024
                     SCN 0.411196 (411196)
           
           
SQL> select thread#,max(sequence#) from v$archived_log where applied='YES' group by thread#;
   THREAD# MAX(SEQUENCE#)
---------- --------------
         1            158
         2            114

      挖掘进程不能在1节点继续挖下去了,也没报错,重启挖掘后报错

2025-01-13T17:44:29.796+0800  ERROR   OGG-00868  Oracle GoldenGate Capture for Oracle, dg_ext.prm:  Failed to validate configuration on alternative log format and destination. User must either include thread specifier in the log format or specify unique destination for each and every thread.

解决方案

解决:修改成dblogreader
--tranlogoptions archivedlogonly
--tranlogoptions altarchivelogdest /oracle/app/orcldgarch
tranlogoptions dblogreader

2.2.2测试二节点异常关机

[root@rac11gn2 ~]# reboot

检查进程: 不重启的情况下,可以正常同步,但是重启挖掘后,出现上述错误,

OGG-00868  Oracle GoldenGate Capture for Oracle, dg_ext.prm:  Failed to validate configuration on alternative log format and destination. User must either include thread specifier in the log format or specify unique destination for each and every thread.

猜测: 不重启挖掘进程能正常同步,应该是挖掘进程odc连接的节点1节点的原因,如果在reboot之前挖掘进程连接的是2节点,那么会出现2.2.1的问题 后续测试: 特地把挖掘进程中odc@orcl(连接的scan-ip)改成odc@orcl1(连接一节点),然后正常关掉二节点(shutdown),不重启挖掘进程之前是正常同步的,重启后就依旧会出现上述错误。所以就是odc连接生产不同节点的原因,会出现上述问题。 解决方案与2.2.1一致

解决:修改成dblogreader
--tranlogoptions archivedlogonly
--tranlogoptions altarchivelogdest /oracle/app/orcldgarch
tranlogoptions dblogreader

三、集成模式测试 创建挖掘进程

GGSCI (ggs) 21> dblogin userid odc@orcl password odc
Successfully logged into database.
GGSCI (ggs as odc@orcl2) 22> REGISTER EXTRACT jc_ext DATABASE 
2025-01-13 18:35:06  INFO    OGG-02003  Extract JC_EXT successfully registered with database at SCN 442270.
ADD EXTRACT jc_ext, INTEGRATED TRANLOG, BEGIN NOW
ADD EXTTRAIL ./dirdat/jc, EXTRACT jc_ext
extract jc_ext
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc@orcl password odc
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
--ENCRYPTTRAIL AES192
exttrail ./dirdat/jc
tranlogoptions altarchivelogdest /oracle/app/orcldgarch/  
FETCHOPTIONS FETCHPKUPDATECOLS
--ddl include objname test1.* exclude objtype 'TRIGGER'
DDL INCLUDE MAPPED
DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10  
table test.*;

注意:集成模式不支持在线挖掘日志的模式tranlogoptions minefromactivedg以及DBLOGREADER 创建应用进程

dblogin userid odc password odc
 add replicat jc_rep exttrail ./dirdat/jc
replicat jc_rep
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
setenv (ORACLE_SID="ora")
userid odc, password odc
--handlecollisions
assumetargetdefs
allownoopupdates
dboptions deferrefconst
handletpkupdate
--batchsql
ddlerror 955 ignore
ddlerror 1917 ignore
ddlerror 24344 ignore
ddlerror 1031 ignore
ddl include mapped
discardfile ./dirrpt/jc.dsc, append megabytes 20
discardrollover on sunday
--discardrollover
--ddlerror 942 ignore
map test.* target test.*;

启动挖掘进程报错

2025-01-13T18:48:18.214+0800  ERROR   OGG-02912  Oracle GoldenGate Capture for Oracle, jc_ext.prm:  Patch 17030189 is required on your Oracle mining database for trail format RELEASE 12.2 or later.
2025-01-13T18:48:18.214+0800  ERROR   OGG-01668  Oracle GoldenGate Capture for Oracle, jc_ext.prm:  PROCESS ABENDING.

解决: 在生产库中

SQL> @prvtlmpg.plb
Enter Integrated Capture mining user: odc

3.1测试正常与异常关机二节点 正常同步 重启挖掘也正常 四、结论 经典模式使用dblogreader配置,或者采用集成模式挖掘,那么进程在dg端挖掘,生产多个节点中有部分节点异常,对于dg端的挖掘不会有影响,最多进程重启就能恢复。

相关推荐

热文推荐