وبلاگ مسعود حاجی حسن پور

راهکار های عملی اوراکل

راهکار های عملی اوراکل

این وبلاگ جهت به اشتراک گذاری تجربیات و راهکار های عملی در زمینه پایگاه داده اوراکل می باشد.

دستاوردها
طبقه بندی موضوعی

۱ مطلب با موضوع «Golden Gate» ثبت شده است

RMAN-08137

rmanOgg
سلام خدمت دوستان عزیز

امروز تماس تلفنی داشتم از یکی دوستانم که پایگاه داده آنها به مشکل مواجه شده بود. در نگاه اول و بررسی  مشخص شد که fra آنها پر شده است. سپس مشخص شد که مقدار زیادی از فضا را آرشیو لاگ ها پر کرده و با اجرای دستور حذف آرشیو لاگ ها خطای زیر را برمیگرداند:

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

اما یه چیزی اینجا عجیب بود!!! اینکه اسم process توی لیست extract های جاری نبود ! بعد از بررسی لاگ های OGG مشخص شد که این process حذف شده ( به وسیله ggsci به درستی).

اما هنوز توی پایگاه داده process attach میبود:
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 بفرمایید. در غیر این صورت اجازه حذف آرشیو لاگ ها به پایگاه داده نخواهد شد.


دوستان عزیز امیدوارم مطلب کاربردی بوده باشد.

شاد و پیروز باشید.