RMAN-08137
RMAN-08137: warning: archived log not deleted, needed for standby or upstream capture process archived log file name=/u01/app/oracle/fra/DB12C/archivelog/2017_11_29/o1_mf_1_259_f1xllbxo_.arc thread=1 sequence=259 . . .
با بررسی بیشتر به نظر میرسید خطا از این میباشد که انگار دیتا گاردی وجود دارد که هنوز آرشیو لاگ ها بر روی آن apply نشده است.
[oracle@shopdb ~]$ oerr rman 08137 8137, 3, "warning: archived log not deleted, needed for standby or upstream capture process" // *Cause: An archived log that should have been deleted was not as it was // required by upstream capture process or Data Guard. // The next message identifies the archived log. // *Action: This is an informational message. The archived log can be // deleted after it is no longer needed. See the // documentation for Data Guard to alter the set of active // Data Guard destinations. See the documentation for // Streams to alter the set of active streams.
LOGMINER: session#=4 (OGG$CAP_ERANGEB), reader MS09 pid=105 OS id=14650 sid=156 started
فکرم به سمت چیزی مثل Oracle Stream یا Oracle Golden Gate رفت، که پس از پرسوجو مشخص شد که آنها از Oracle Golden Gate استفاده میکنند پس لاگین کردم و وضعیت آن را بررسی کردم:
GGSCI> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING M1 00:00:08 21:04:52 EXTRACT RUNNING PUMPM1 00:00:00 21:03:05
OGG Capture client successfully attached to GoldenGate Capture OGG$CAP_ERANGEB to receive uncommitted changes with pid=101 OS id=14642.
پس مشخص شد که ما process extract به نام ERANGEB داشتیم که در OGG حذف کردیم، اما هنوز پایگاه داده متوجه حذف آن و در نتیجه عدم نیاز به Archivelog های آن نشده است. چرا ؟
دلیل آن استفاده از Integrated extract می باشد. از آنجایی که Oracle Golden Gate در حالت Integrated از یک API برای بالا بردن سرعت برای extract کردن استفاده میکند، نیاز هست که به پایگاه داده اعلام شود که API آن را نیز در زمان حذف process حذف کند.
از دستور زیر برای حذف API استفاده میکنیم:
GGSCI> unregister extract erangeb database 2017-12-05 08:57:30 INFO OGG-01750 Successfully unregistered EXTRACT ERANGEB from database.
GoldenGate Apply: OGG$ERANGEB APPLY Dropped 2017-12-05T08:57:09.466195+03:30 APPLY OGG$ERANGEB: Apply User: C##OGG 2017-12-05T08:57:09.466269+03:30 APPLY OGG$ERANGEB: Apply Tag: 00 2017-12-05T08:57:09.564715+03:30 Streams Capture: OGG$CAP_ERANGEB CAPTURE Dropped
خوب خدا رو شکر، سپس اقدام به حذف Archivelog ها کردم و همه چی درست شد.
نتیجه: اگر از OGG استفاده میکنید نیاز هست که هنگام حذف process extract بجز حذف آن در OGG آن هم در پایگاه داده Unregister بفرمایید. در غیر این صورت اجازه حذف آرشیو لاگ ها به پایگاه داده نخواهد شد.
دوستان عزیز امیدوارم مطلب کاربردی بوده باشد.
شاد و پیروز باشید.