遷移數據庫的過程中,最後啓動ggs
啓動完ggs後發現抽取進程報錯,查看日誌發現報錯如下:
2016-03-16 00:15:42 INFO OGG-01517 Position of first record processed for Thread 2, Sequence 17643, RBA 793616, SCN 1389.3430888557, Mar 15, 2016 11:18
:51 PM.
Source Context :
SourceModule : [er.redo.ora.rtc]
SourceID : [/scratch/aime1/adestore/views/aime1_adc4150256/oggcore/OpenSys/src/app/er/redo/oracle/rtc.c]
SourceFunction : [RTC_producer]
SourceLine : [2088]
ThreadBacktrace : [6] elements
: [/opt/ggs/libgglog.so(CMessageContext::AddThreadContext()+0x1e) [0x2b2b07c7206e]]
: [/opt/ggs/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...)+0x2cc) [0x2b2b07c6e44c]]
: [/opt/ggs/libgglog.so(_MSG_ERR_ER_GENERIC_FAILURE(CSourceContext*, char const*, CMessageFactory::MessageDisposition)+0x31) [0x2b
2b07c562a9]]
: [/opt/ggs/extract(RTC_producer+0x4e1) [0x71fcc1]]
: [/lib64/libpthread.so.0 [0x33a8c0673d]]
: [/lib64/libc.so.6(clone+0x6d) [0x33a80d44bd]]
2016-03-16 00:16:03 ERROR OGG-01028 Opening ASM file +DGRECOVERY/qfangsh/qfangsh_arch_1_20021_837910999.log in DBLOGREADER mode: (308) ORA-00308: cannot
open archived log '+DGRECOVERY/qfangsh/qfangsh_arch_1_20021_837910999.log'
ORA-17503: ksfdopn:2 Failed to open file +DGRECOVERY/qfangsh/qfangsh_arch_1_20021_837910999.log
ORA-15173: entry 'qfangsh_arch_1_20021_837910999.log' does not exist in directory 'qfangsh'.
發現是由於一個歸檔日誌找不到觸發的錯誤。
因爲我們在遷移數據的時候是通過rman在源庫做0級備份,然後再目標庫restore。
然後通過1級備份和歸檔日誌備份recover到最新狀態。
而ogg在停庫前已經停了,重新打開ogg的時候需要之前的歸檔日誌才能同步。
本來我的歸檔日誌是通過rman全部在備庫恢復了的,但是源庫在關機前又產生了一個歸檔,從而導致此問題的發生。
解決步驟:
1. 從源庫ASM實例中獲取需要的歸檔日誌到本地磁盤。
2. scp到目標庫本地磁盤
3. cp到asm中相應的位置
cp /arch/rmanbackup/thread_1_seq_20021.9753.906592877 +DGRECOVERY/qfangsh/qfangsh_arch_1_20021_837910999.log
4. 如果歸檔日誌已經通過rman備份,則可以通過restore命令進行恢復,如下:
restore archivelog from logseq 20021 until logseq 20021 thread 1;
5. 重啓ogg進程,問題解決