暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

故障处理:oracle同步数据到kafka报错OGG-02171

IT那活儿 2024-12-09
542

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!




问题现象



某天在巡检时发现之前部署的ogg链路(oracle-kafka)进程出现问题,自6月7日之后就没有数据,大约10天没有数据更新。

经过排查发现投递进程为ABENDED状态。因为是新上的国产化测试系统,所以还没有部署监控




处理过程



2.1 查询各进程运行情况

查看ogg的相关进程是否正常:
  • 抽取进程运行正常,投递进程为ABENDED状态,复制进程状态正常(但是数据6月7日之后就没)!

2.2 查看投递进程的日志

GGSCI > view report D_KA1
发现报错:
WARNING OGG-06590  The output trail file /*******/ct000000083 is not found, rescan for previous ones.
ERROR OGG-02171  Error reading LCR from data source. Status 500, data source type TrailDataSource.
ERROR OGG-01091  Unable to open file "/ogg/crmmt/dirdat/tb000005021" (error 2, No such file or directory).

去投递进程所在服务器目录ogg/crmmt/dirdat/中查询发现 队列5021已经不存在了,应局方要求可以改成当前的最新的队列。

2.3 修改投递进程的的seq并重启

GGSCI > alter EXTRACT D_KA1,extseqno 5646,extrba 0
EXTRACT altered.
GGSCI > info D_KA1 detail

发现投递进程的seq已经由5021变为了5646。
然后重新启动投递进程:
GGSCI > start D_KA1
Sending START request to MANAGER ...
EXTRACT D_KA1 starting

启动完成后发现投递进程的seq又由5646变成了5021:
日志仍然报错:
WARNING OGG-06590  The output trail file /*******/ct000000083 is not found, rescan for previous ones.
ERROR OGG-02171  Error reading LCR from data source. Status 500, data source type TrailDataSource.
ERROR OGG-01091  Unable to open file "/ogg/crmmt/dirdat/tb000005021" (error 2, No such file or directory).

2.4 清空复制端队列文件

后来查询到,需要把复制进程端的队列文件清空,因为投递进程也是应用的最新的抽取队列,所以复制端的队列文件已断,没有用处了,于是我们新建一个目录,然后把目标端的队列复制到新目录中。
重新修改投递进程的队列文件并重启:
GGSCI > alter EXTRACT D_KA1,extseqno 5646,extrba 0
EXTRACT altered.
GGSCI > info D_KA1 detail
GGSCI > start D_KA1
Sending START request to MANAGER ...
EXTRACT D_KA1 starting

查询投递进程状态,发现正常有数据了。
GGSCI > stats D_KA1
Sending STATS request to EXTRACT D_KA1 ...

Start of Statistics at 2024-06-19 15:08:04.

Output to **********dirdat/ct:

Extracting from ****** to ******:

*** Total statistics since 2024-06-19 15:01:36 ***
        Total inserts 122692.00
        Total updates 0.00
        Total deletes 0.00
        Total upserts 0.00
        Total discards 0.00
        Total operations 122692.00

*** Daily statistics since 2024-06-19 15:01:36 ***
        Total inserts 122692.00
        Total updates 0.00
        Total deletes 0.00
        Total upserts 0.00
        Total discards 0.00
        Total operations 122692.00

*** Hourly statistics since 2024-06-19 15:01:36 ***
        Total inserts 122692.00
        Total updates 0.00
        Total deletes 0.00
        Total upserts 0.00
        Total discards 0.00
        Total operations 122692.00

*** Latest statistics since 2024-06-19 15:01:36 ***
        Total inserts 122692.00
        Total updates 0.00
        Total deletes 0.00
        Total upserts 0.00
        Total discards 0.00
        Total operations 122692.00

End of Statistics.

2.5 查看目标端的队列文件
查看warning告警,提示队列not found ct83
查看复制进程的队列文件发现两边使用的队列文件都不一致。
投递进程投递给复制进程的队列为ct,但是复制进程配置文件里面使用的是cz。
因为复制进程的服务器是刚改造的国产操作系统,ogg软件重新部署了19c的版本。
至于为什么变更了,问过相关人员已经记不清楚。可能是修改过投递进程也可能是复制进程的修改过队列文件。

2.6 重新配置复制进程并启动

查看两个进程的参数配置:
GGSCI > view param R_CX1
REPLICAT r_cx1
TARGETDB LIBFILE libggjava.so SET property=dirprm/kc1.props
REPORTCOUNT EVERY 1 MINUTES, RATE
GROUPTRANSOPS 10000
REPLACEBADCHAR SKIP
MAP ***********, TARGET *****************

GGSCI > view param R_CX2
REPLICAT r_cx2
TARGETDB LIBFILE libggjava.so SET property=dirprm/kc2.props
REPORTCOUNT EVERY 1 MINUTES, RATE
GROUPTRANSOPS 10000
REPLACEBADCHAR SKIP
MAP ***********, TARGET ***********;

GGSCI > stop R_CX1

Sending STOP request to REPLICAT R_CX1 ...
Request processed.

GGSCI > stop R_CX2

Sending STOP request to REPLICAT R_CX2 ...
Request processed.

GGSCI > delete R_CX1
Deleted REPLICAT R_CX1.
GGSCI > delete R_CX2
Deleted REPLICAT R_CX2.

GGSCI > edit param r_cx1
GGSCI > edit param r_cx2

GGSCI > add replicat R_CX1 exttrail ****/dirdat/ct,nodbcheckpoint
REPLICAT added.
GGSCI > add replicat R_CX2 exttrail /****/dirdat/ct,nodbcheckpoint
REPLICAT added.



GGSCI > start R_CX1

Sending START request to MANAGER ...
REPLICAT R_CX1 starting


GGSCI > start R_CX2

Sending START request to MANAGER ...
REPLICAT R_CX2 starting

查看进程状态及是否有正常复制:

GGSCI (dzqd9qd1H21) 22> info all

Program     Status      Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING                                           
REPLICAT    RUNNING     R_CX1       00:21:21      00:00:00    
REPLICAT    RUNNING     R_CX2       00:21:19      00:00:01    


GGSCI (dzqd9qd1H21) 23>

GGSCI (dzqd9qd1H21) 23> stats R_CX1

Sending STATS request to REPLICAT R_CX1 ...

Start of Statistics at 2024-06-19 15:06:37.

Replicating from ***** to *****:

*** Total statistics since 2024-06-19 15:06:31 ***
        Total inserts                                  10001.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                               10001.00

*** Daily statistics since 2024-06-19 15:06:31 ***
        Total inserts                                  10001.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                               10001.00

*** Hourly statistics since 2024-06-19 15:06:31 ***
        Total inserts                                  10001.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                               10001.00

*** Latest statistics since 2024-06-19 15:06:31 ***
        Total inserts                                  10001.00
        Total updates                                      0.00
        Total deletes                                      0.00
        Total upserts                                      0.00
        Total discards                                     0.00
        Total operations                               10001.00

End of Statistics.




问题总结



前期是因为ogg复制进程的服务器改造成了国产化,因此升级了ogg的版本,由12c升级到了19c,在重新部署ogg复制进程的时候,只是按着之前的的进程参数重新部署的,启动好ogg复制进程后查询了进程状态,而且stats 进程发现有数据。但是没有检查投递进程是否还正常!后期巡检的时候发现复制进程正常,但是数据其实已经很久没有滚动了。

所以在部署的ogg的时候整个链路都需要检查!
此进程所同步数据对一致性要求不大,所以投递进程异常之后我们重新指定了最新的队列号,这样我们也需要把复制进程的队列也要全部删掉。
如果对于一致性要求比较高的同步表,可以重新初始化数据。

常见的初始化的方法:

  • Initial Load Group
    初始数据加载组,可以分为目标端不转储数据和目标端转储数据两种方式,抽取进程将源端数据抽取并发送到目标端,存储为OGG或者数据库可以识别的数据格式。
  • Change Extract Group
    增量数据,抽取组配合初始数据加载组,完成初始化过程中源端增量数据的同步,保证两端数据一致性。
  • GoldenGate 的 Direct Initial load
    常用于用于异构环境的初始化数据,也可以用于某些生产环境到测试环境的数据同步。
为了方便这里是把trail队列文件直接写到了目标端,本地可以不保留,如果想在本地保留一份trail文件可以配置一个pump进程。
将ext进程捕获的队列文件写在本地,然后由pump进程再读取本地的trail文件发送到目标端,写入目标端的trail文件中,这样对于数据的保障更大一些。
配置好抽取和复制进程后就可以启动抽取进程了。当目标端表中的数据量与源端刚启动ext_init进程时表中的数据量一致时,初始化进程会自动停止。

END


本文作者:刘 锐(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论