今天一同事做oracle ogg到mysql的数据同步搭建,出现ogg的抽取进程无法启动问题。经过一番排查,发现ogg同一个队列文件,抽取进程使用了不同的参数启动,引起抽取队列文件异常导致抽取进程无法启动。
一、问题现象
OGG配置搭建的过程中,多次尝试重启OGG抽取进程,一直处于abend状态。
GGSCI (orclogg as OGG@orclogg) 76> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT ABENDED E1 00:00:00 01:53:13 EXTRACT ABENDED P1 00:00:00 01:49:23 EXTRACT STOPPED PUMP_001 00:00:00 01:03:19 EXTRACT STOPPED REP_001 00:00:00 01:03:14
二、问题分析
查看抽取进程E1的日志,有时候E1的日志会很长,建议重新启动一次,方便查看错误日志。
2022-01-18 15:16:24 INFO OGG-01516 Positioned to (Thread 1) Sequence 79, RBA 915761680, SCN 0.0 (0), 2022 M01 18 15:16:04. Source Context : SourceModule : [er.extract.recovery] SourceID : [/scratch/aime/adestore/views/aime_adc00jza/oggcore/OpenSys/src/app/er/extract/extrecovery.cpp] SourceMethod : [recParseLastCommitPos] SourceLine : [452] ThreadBacktrace : [12] elements : [/home/oracle/goldengate/ogg/oggsoft2/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))] : [/home/oracle/goldengate/ogg/oggsoft2/extract(_ZN3ggs5gglib14MultiThreading10MainThread3RunEiPPc+0xb5) [0x83e875]] : [/home/oracle/goldengate/ogg/oggsoft2/extract(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))] : [/home/oracle/goldengate/ogg/oggsoft2/extract()] : [/home/oracle/goldengate/ogg/oggsoft2/extract(_ZN3ggs5gglib14MultiThreading10MainThread3RunEiPPc+0xb5) [0x83e875]] : [/home/oracle/goldengate/ogg/oggsoft2/extract()] : [/home/oracle/goldengate/ogg/oggsoft2/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))] : [/home/oracle/goldengate/ogg/oggsoft2/extract(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))] : [/home/oracle/goldengate/ogg/oggsoft2/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))] : [/home/oracle/goldengate/ogg/oggsoft2/extract(main)] : [/home/oracle/goldengate/ogg/oggsoft2/extract()] : [/home/oracle/goldengate/ogg/oggsoft2/extract()] 2022-01-18 15:16:24 ERROR OGG-06601 Mismatch between the length of seqno from checkpoint (6) and recovery (9) for extract trail /home/oracle/goldengate/ogg/oggsoft2/dirdat/e1. 2022-01-18 15:16:24 INFO OGG-01517 Position of first record processed for Thread 1, Sequence 79, RBA 915761680, SCN 0.15107058 (15107058), 2022 M01 18 15:16:14. 2022-01-18 15:16:24 ERROR OGG-01668 PROCESS ABENDING.
日志中的关键错误信息:ERROR OGG-06601 Mismatch between the length of seqno from checkpoint (6) and recovery (9) for extract trail /home/oracle/goldengate/ogg/oggsoft2/dirdat/e1.由日志信息可以看出/home/oracle/goldengate/ogg/oggsoft2/dirdat/e1队列文件在多次重启过程中,已经出现了不一致而且无法恢复的情况。经过沟通得知,同事是初步配置搭建OGG,过程中多次修改OGG抽取进程的参数,起初抽取进程可以运行,后来abend之后无法成功启动。根据报错日志提示,需要删除队列文件/home/oracle/goldengate/ogg/oggsoft2/dirdat/e1,设置抽取进程从当前位置开始抽取,并重启抽取进程。
三、问题处理
--删除队列文件 rm -rf /home/oracle/goldengate/ogg/oggsoft2/dirdat/e1 --设置抽取进程e1从当前redo当前位置开始抽取 GGSCI (orclogg as OGG@orclogg) 82> alter extract E1 begin now; EXTRACT altered. --重启抽取进程 GGSCI (orclogg as OGG@orclogg) 83> start E1 Sending START request to MANAGER ... EXTRACT E1 starting --查看抽取进程E1的状态 GGSCI (orclogg as OGG@orclogg) 84> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING E1 00:00:00 00:00:12 EXTRACT ABENDED P1 00:00:00 01:55:47 EXTRACT RUNNING PUMP_001 00:00:00 00:00:07 EXTRACT RUNNING REP_001 00:00:00 00:00:06
四、总结
在做OGG数据迁移或者数据同步之前,建议先对OGG的理论知识做学习,对OGG有初步的了解,并在配置过程中通过metalink官方网站查找问题及问题处理过程。