--下面步骤为在ogg环境已经搭建完毕的情况下的测试,故不涉及到ogg的安装步骤。
一、模拟环境介绍
环境简介
|
系统 |
Oracle 版本 |
OGG 版本 |
||
|
源端 |
Linux 6.9 |
oracle11204 |
112101 |
|
|
目标端 |
Linux 6.9 |
oracle11204 |
122022 |
二、 准备测试ogg 环境
源端ogg
GGSCI (rac11gn1) 2> info *
EXTRACT EXT28 Last Started 2020-11-06 11:20 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:09 ago)
Log Read Checkpoint Oracle Redo Logs
2020-11-06 11:38:43 Thread 1, Seqno 10, RBA 180652544
SCN 2979.2159160499 (12796866735283)
Log Read Checkpoint Oracle Redo Logs
2020-11-06 11:38:43 Thread 2, Seqno 17, RBA 573440
SCN 2979.2159160499 (12796866735283)
----- 挖掘进程的具体参数-----
GGSCI (rac11gn1) 3> view param ext28
extract ext28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
--setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid odc,password odc
exttrail ./dirdat/z3
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
ddl include objname test.* exclude objtype 'TRIGGER'
ddloptions addtrandata
table test.test1;
目标端ogg
GGSCI (oradb) 4> info rep28
REPLICAT REP28 Last Started 2020-11-05 13:38 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:07 ago)
Process ID 5044
Log Read Checkpoint File ./dirdat/z3000010
2020-11-06 13:48:24.927157 RBA 1567
----- 应用进程的具体参数-----
GGSCI (oradb) 5> view param rep28
replicat rep28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc, password odc
ASSUMETARGETDEFS
ALLOWNOOPUPDATES
DBOPTIONS DEFERREFCONST
HANDLETPKUPDATE
ddl include mapped
DISCARDFILE /ogg/dirrpt/z3.dsc, APPEND megabytes 20
DISCARDROLLOVER on sunday
map test.* target test.*;
三、 测试RAC 中一个节点挂机
将二节点关机
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
观察ogg 变化
观察挖掘进程信息,可以看到二节点的RBA 变为了0.
GGSCI (rac11gn1) 10> info *
EXTRACT DMP28 Last Started 2020-11-06 13:27 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:19 ago)
Log Read Checkpoint File ./dirdat/z3000013
2020-11-06 11:20:33.296830 RBA 1075
EXTRACT EXT28 Last Started 2020-11-06 13:27 Status RUNNING
Checkpoint Lag 00:00:02 (updated 00:00:03 ago)
Log Read Checkpoint Oracle Redo Logs
2020-11-06 13:27:37 Thread 1, Seqno 10, RBA 187623440
SCN 2979.2159173792 (12796866748576)
Log Read Checkpoint Oracle Redo Logs
2020-11-06 13:26:37 Thread 2, Seqno 18, RBA 0
SCN 2979.2159173716 (12796866748500)
观察日志信息,出现大量关于二节点信息
2020-11-06 13:30:01 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:02 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:04 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:05 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:06 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:07 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:08 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:09 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
2020-11-06 13:30:10 INFO OGG-01513 Oracle GoldenGate Capture for Oracle, ext28.prm: Positioning to (Thread 2) Sequence 18, RBA 0, SCN 2979.2159173716.
删除二节点
此时挖掘进程无法正常抽取数据,有两种方法恢复ogg正常运行,一种是重建进程,另外一种则是先排除第二个节点,后续还可以加回去。
我们采用第二种方案。
1. 确认数据库节点顺序
SQL> select distinct thread# from v$log;
THREAD#
----------
1
2
--- 注意日志节点顺序与ogg 节点顺序是否一致
2.禁用 二节点redo
SQL> alter database disable thread 2;
3. 加入参数排除二节点
如果上述日志节点不是顺序排序,排除时根据相应的节点排除
GGSCI (rac11gn1) 11> view param ext28
extract ext28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc,password odc
exttrail ./dirdat/z3
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
THREADOPTIONS PROCESSTHREADS EXCEPT 2
或者 THREADOPTIONS PROCESSTHREADS SELECT 1
ddl include objname xjm.* exclude objtype 'TRIGGER'
ddloptions addtrandata
table test.test1;
4. 观察日志
2020-11-06 14:51:42 ERROR OGG-01937 Oracle GoldenGate Capture for Oracle, ext28.prm: Extract is not configured to capture changes from thread 2,158,926,566. To avoid data loss, the Extract must be dropped and recreated with the THREADS option to specify the correct number of RAC instances. See the Oracle GoldenGate administration documentation for the procedure to follow.
5. 加入参数修复错误
根据mos 参考文档:
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=486823160967100&id=1507081.1&_adf.ctrl-state=174svw9y8a_851
该 bug 是在 ogg11.2.0.5 以下版本中会出现,在 11.2.0.5 中已被修复好
GGSCI (rac11gn1) 28> view param ext28
extract ext28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
--setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid odc,password odc
exttrail ./dirdat/z3
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
THREADOPTIONS PROCESSTHREADS EXCEPT 2
TRANLOGOPTIONS _IGNORETHREADEVENT
ddl include objname test.* exclude objtype 'TRIGGER'
ddloptions addtrandata
table test.test1;
观察后台日志,没有明显错误出现。
四、 添加二节点
1. 在二节点修复之前做以下操作
--- 将挖掘的参数文件中将二节点添加回去
GGSCI (rac11gn1) 11> view param ext28
extract ext28
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc,password odc
exttrail ./dirdat/z3
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
--THREADOPTIONS PROCESSTHREADS EXCEPT 2
TRANLOGOPTIONS _IGNORETHREADEVENT
ddl include objname test.* exclude objtype 'TRIGGER'
ddloptions addtrandata
table test.test1;
--激活 二节点redo
SQL> alter database enable thread 2;
2. 将二节点拉起来
SQL>startup
观察进程是否都正常运行。
