基于windows環境Oracle主備切換之后OGG同步進程恢復
場景:db1是主庫,db2是備庫,ogg從db2備庫抽取數據同步到目標數據庫
db1 - db2(ADG) – ogg – targetdb
場景:db2是主庫,db1是備庫,ogg從db1備庫抽取數據同步到目標數據庫
db2 - db1(ADG) – ogg – targetdb
主備庫切換完成之后抽取進程報錯如下:
2025-05-15 14:28:41 INFO OGG-06604 Database ORCL CPU info: CPU Count 8, CPU Core Count 8, CPU Socket Count 4.Source Context :SourceModule : [er.redo.ora]SourceID : [/scratch/aime/adestore/views/aime_adc00jza/oggcore/OpenSys/src/app/er/redo/oracle/redoora.c]SourceMethod : [ce_validate_config]SourceLine : [6302]ThreadBacktrace : [14] elements: [_ZN3ggs5gglib14MultiThreading6Thread9RunThreadEPNS2_10ThreadArgsE]: [/OSdata/ogg123_oracle/extract(_ZN3ggs5gglib14MultiThreading6Thread9RunThreadEPNS2_10ThreadArgsE+0x14c) [0x83e1bc]]: [/OSdata/ogg123_oracle/extract(_ZN3ggs5gglib14MultiThreading6Thread9RunThreadEPNS2_10ThreadArgsE+0x14c) [0x83e1bc]]: [/OSdata/ogg123_oracle/extract()]: [_ZN3ggs5gglib14MultiThreading6Thread9RunThreadEPNS2_10ThreadArgsE]: [/OSdata/ogg123_oracle/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]: [/OSdata/ogg123_oracle/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]: [/OSdata/ogg123_oracle/extract()]: [/OSdata/ogg123_oracle/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]: [ : [/OSdata/ogg123_oracle/extraextras::gglib::MultiThreading::Mng::Mng::MnRunMnRun char**))]
]: [/OSdata/ogg123_oracle/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]: [/lib64/libc.so.6(__libc_start_main)]: [/lib64/libc.so.6(__libc_start_main)]: [/OSdata/ogg123_oracle/extract()]2025-05-15 14:28:41 ERROR OGG-02801 Parameter MINEFROMACTIVEDG can only be used when the database is in READ ONLY mode.2025-05-15 14:28:41 ERROR OGG-01668 PROCESS ABENDING.
GGSCI (oggser as ggs@orcl) 6> dblogin useridalias s_source2120
ERROR: OCI Error ORA (status = 1033-ORA-01033: ORACLE 正在初始化或關閉
Process ID: 0
Session ID: 0 Serial number: 0
).
把新的備庫切換到只讀狀態
SQL> select open_mode from v$database;OPEN_MODE
--------------------
MOUNTEDSQL> recover managed standby database cancel;
完成介質恢復。
SQL> alter database open read only;數據庫已更改。SQL> alter database recover managed standby database using current logfile disconnect from session;數據庫已更改。SQL>
SQL> select sequence#,status,process from v$managed_standby;SEQUENCE# STATUS PROCESS
---------- ------------ ---------0 CONNECTED ARCH0 CONNECTED ARCH100 CLOSING ARCH101 CLOSING ARCH102 APPLYING_LOG MRP00 IDLE RFS0 IDLE RFS102 IDLE RFS已選擇8行。SQL>
GGSCI (oggser) 7> dblogin useridalias s_source2120
Successfully logged into database.
GGSCI (oggseras ggs@orcl) 8> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNING
EXTRACT ABENDED EXTEP 00:00:00 00:10:11
REPLICAT RUNNING REPE 00:00:00 00:00:07
修改讀取連接到新的備庫
GGSCI (oggser as ggs@orcl) 17> view param extepextract extep
--useridalias s_source
useridalias s_source2120
exttrail ./dirdat/ep
warnlongtrans 3h, checkinterval 10m
tranlogoptions logretention enabled
tranlogoptions dblogreader
tranlogoptions minefromactivedg
--tables
table scims.tscim;
重啟抽取進程
GGSCI (oggser as ggs@orcl) 13> start extepSending START request to MANAGER ...
EXTRACT EXTEP startingGGSCI (oggser as ggs@orcl) 14> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNING
EXTRACT STARTING EXTEP 00:00:00 00:16:16
REPLICAT RUNNING REPE 00:00:00 00:00:07 GGSCI (oggser as ggs@orcl) 15> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNING
EXTRACT RUNNING EXTEP 00:00:00 00:00:00
REPLICAT RUNNING REPE 00:00:00 00:00:10
最后測試驗證數據同步正常。