Recently we refreshed one of the 2-node UAT database from 3-node production.The 2-node UAT acts as the source for the GoldenGate.After the refresh of source and the initial load on the target, we started the extract and replicat process.As, the source was 2-node RAC, extract was added with 2 Threads information
ADD EXTRACT ext, TRANLOG, THREADS 2, BEGIN NOW
Everything ran well for almost 2 weeks when all of a sudden extract kept abending and GG error log started showing
2011-11-14 03:44:47 INFO OGG-01629 Oracle GoldenGate Capture for Oracle, ext.prm: BOUNDED RECOVERY: PERSISTED OBJECTS RECOVERED: <>. 2011-11-14 03:44:51 WARNING OGG-01423 Oracle GoldenGate Capture for Oracle, ext.prm: No valid default archive log destination directory found for thread 3.
Though the source was 2-node RAC the alert showed – No valid default archive log destination directory found for thread 3.
On looking at the source db more carefully showed thread 3 in v$thread.Someone had mistakenly added redo log groups with thread 3 and they were in UNUSED state.Once we “dropped” the LOG GROUPs for Thread 3 and restarted the Extract, everything is working fine.
Now,suppose you have source with 3 threads and you mistakenly added extract with 2 threads, you can get the same error in future, then –
1. Take the showch ouput of the existing extract
2. Consider the earliest Recovery checkpoint timestamp to begin the extract
3. ggsci> delete ext
4. ggsci> add extract ext TRANLOG, THREADS 3, BEGIN {Earliest Recovery Checkpiont timestamp taken in step2}
5. ggsci> add exttrail {path}, extract ext, megabytes XXX
6. ggsci> start ext
Incase, if you donot wish to capture the transactions from node N, edit the extract parameter file –
THREADOPTIONS PROCESSTHREADS EXCEPT N –> N is the thread number.