ASM Üzerindeki Standby Database’ in Incremantal Backup ile Tekrardan Senkronizasyonun Sağlanması

Bir önceki yazımda çeşitli sebeblerden dolayı DG geride kaldığında ve artık istemiş olduğu archive loga PROD tarafında ulaşamadığımızda, DG’ ı senkron hale getirmek için incremantal backupdan nasıl döneceğimizden bahsetmiştim. Şimdi aynı senaryoyu ASM üzerinde çalışan bir DG’ ımız olduğunda nasıl yapacağımızdan bahsedelim. ASM işin içine girdiğinde işler bir parça değişiyor ama mantık aynı aslında. Sırayla üstünden geçmeye çalışalım ;

— standby database (yine kaldığımız sequence noktasını tespit ediyoruz.)

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> column CURRENT_SCN format 9999999999999999999
SQL> SELECT CURRENT_SCN FROM V$DATABASE; (1. Sql’ imiz)
CURRENT_SCN
———————
xxxxxxxxxxxxxx

SQL> select min(fhscn) current_scn from x$kcvfh; (2. Sql’ imiz)
CURRENT_SCN
———————
xxxxxxxxxxxxxx

SQL> select min (checkpoint_change#) CURRENT_SCN (3. Sql’ imiz)
from v$datafile_header where status in
(select status from v$tablespace where status <> ‘READ ONLY’) order by 1;
CURRENT_SCN
———————
xxxxxxxxxxxxxx

— En düşük olan sequence değerine göre incremantal backupımızı aşağıdaki gibi alıyoruz.

rman > BACKUP INCREMENTAL FROM SCN xxxxxxx DATABASE FORMAT ‘/u01/BACKUP/ForStandby_%U’ tag ‘FORSTANDBY’;

— Almış olduğumuz bu backupı scp veya ftp aracılığı ile DG tarafına taşıyoruz;

scp /u01/BACKUP/ForStandby * 10.10.10.10:/u02/BACKUP/.

— Standby tarafında, taşımış olduğumuz bu backupları rman aracılığı ile catalogluyoruz. (Rman’ e backupları tanıtıyoruz.)

RMAN> CATALOG START WITH ‘/u02/BACKUP/ForStandby………’;
RMAN> CATALOG START WITH ‘/u02/BACKUP/ForStandby………’;

— Standby databasede backupları DG tarafına catalogladıkdan sonra recover işlemini başlatıyoruz ;

RMAN> RECOVER DATABASE NOREDO;

— Buraya kadar olan kısım aslında ASM kullanılmayan sistemler ile aynı, ASM kullanılmayan sistemler recover sonrasında standby controlfile’ i “alter database create standby controlfile as ‘/home/oracle/stby_control.ctl’” komutu ile alırken ASM üzerine kurulu olan DG sistemlerinde Rman üzerinden aşağıdaki yöntemle alıyoruz. Alınan backup file’ imizide DG tarafına taşıyoruz.

RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT ‘/u02/BACKUP/StandbyCTRL’;

— Standby database’ inde PROD ortamdan almış olduğumuz standbycontrol file’ imizi DG ortamına dönüyoruz.

SQL> Shutdown immediate ;
SQL> Startup nomount ;

RMAN> restore standby controlfile from ‘/u02/BACKUP/StandbyCTRL’;

sql> alter database mount;

— yukarıda işlemlere ek olarak yine standby database’ de rman üzerinden datafile’ leri catalogluyoruz;

rman> catalog start with ‘+DATA/PROD/DATAFILE/’;

— control file’ deki değişiklikleri commit ediyoruz;

rman> switch database to copy;

— son adım olarak redologlar ile standby redologları clear ediyoruz (bu işlemi yapmasanız bile apply başlatıldığında oracle kendisi yapacaktır) ;

SQL> select group# from v$log;
GROUP#
———-
4
5
6
7

SQL> alter database clear logfile group 4;
Database altered.

SQL> alter database clear logfile group 5;
Database altered.

SQL> alter database clear logfile group 6;
Database altered.

SQL> alter database clear logfile group 7;
Database altered.

— standby redo logları temizliyoruz;

SQL> select group# from v$standby_log;
GROUP#
———-
8
9
10
11

SQL> alter database clear logfile group 8;
Database altered.

SQL> alter database clear logfile group 9;
Database altered.

SQL> alter database clear logfile group 10;
Database altered.

— eğer standby redolog yoksa create edilmelidir;

SQL> select group# from v$standby_log;
no row selected

SQL> alter database add standby logfile group 8 size 50m;
Database altered.

SQL> alter database add standby logfile group 9 size 50m;
Database altered.

SQL> alter database add standby logfile group 10 size 50m;
Database altered.

SQL> alter database add standby logfile group 11 size 50m;
Database altered.

— Artık DG’ ımız hazır diğer parametrelerimiz de bir sorun yok ise Apply’ı başlatabiliriz;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Bu işlemi parallel yapmak isterseniz (parallelik verirken cpu adedinizi dikkate almayı unutmayın)

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT PARALLEL 10;

— DG tarafında RFS ve MRP processlerinin çalışıp çalışmadığını kontrol etmek için;

SQL> select pid, process, status, sequence# from v$managed_standby ;

Bu şekilde DG’ ı kalmış olduğu noktadan bugüne kadar eşitlemiş oluyoruz ki, DG’ da apply başlattığımız da da backupın alındığı andan sonra çıkmış olan archivelogları istemeye başlayacaktır.

Be Sociable, Share!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


sekiz − = 6