Oracle active data guard sistemi, özetle; primary database tarafından standby database tarafına transfer edilen archive logların uygulanması (apply) biçiminde çalışır. Bağlantı problemleri sıralı logların transferinde eksiklerin oluşmasına neden olabilir. Bu durumda eksik loglar primary database tarafında diskte değilse, rman ile recover edilir.
Örn; RESTORE ARCHIVELOG FROM SEQUENCE 203524 UNTIL SEQUENCE 203524 thread 1; gibi
Primary side tarafında diskte yer alan loglar standby tarafına iletilecektir.
Standby tarafında transfer edilen sıralı loglar MRP prosesi tarafından işlenir. Transfer problemi varsa bu durum alertlog a GAP olarak yansır. Standby database tarafında MRP prosesinin durumu kontrol edilerek hangi logda problem olduğu kolayca anlaşılabilir.
MRP prosesinin durumu şu sorgu ile kontrol edilir.
select status,sequence# from v$managed_standby WHERE PROCESS=’MRP0′;
eğer aradaki eksik log sayısı ağ üzerinden gönderilemeyecek kadar fazlaysa archivelog ‘lar manuel olarak taşınabilir diske alınır. Disk standby tarafına mount edilerek şu şekilde logların manuel register olması sağlanır.
ALTER DATABASE REGISTER LOGFILE ‘/media/disk/thread_1_seq_202393.1444.761832629′ ;
Eksik log olmamasına rağmen MRP prosesi archivelog ları standby tarafında sıraya alıyor fakat işlemiyorsa, en son işlemeye çalıştığı archivelog tekrar manuel register edilmeye çalışılmalıdır.
Son işlenen archivelog listesi şu şekilde görüntülenebilir,
select * from (SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# desc) t1 where rownum<300;
Redo Apply servisi başlatmak için;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
Redo Apply servisi durdurmak için;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
select to_char(first_time,’yyyy-mm-dd HH24:MI’),
round(mb),
round(mb – (avg(mb) over ())) dev_from_avg
from (select trunc(first_time) first_time,
sum(blocks*block_size)/1048576 mb
from v$archived_log
group by trunc(first_time))
order by first_time;
archivelog’lara ait günlük toplam size bilgilerini görüntüler.
Dışarı alma işlemi,
mkdir /u01/dumpdir
sqlpls
sys as sysdba
SQL> create directory DUMPDIR as ‘/u01/dumpdir’;
SQL> GRANT read, write ON DIRECTORY DUMPDIR TO DBUSERNAME;
SQL> expdp DBUSERNAME/PASSWORDU@DBNAME schemas=DBUSERNAME directory=DUMPDIR dumpfile=DBUSERNAME.dmp
tekrar içeri aktarırken,
kullanıcı adı, tablespace-datafile ayarlarının yapıldığını varsayıyoruz,
impdp schemas=DBUSERNAME directory=DUMPDIR dumpfile=DBUSERNAME.dmp