Standby Veritabanını READ-WRITE Modda Açma
Standby veritabanını bazı testleri yapmak için read-write modda açmak isteyebiliriz. Standby veritabanını tekrar eski haline alarak devam edebilmek için bazı işlemleri yapmalıyız. Stanby veritabanı üzerinde bazı işlemler yaptıktan sonra tekrar eski durumuna alabilmemiz için, Flasback database özelliğini açmalıyız, Flasback database özelliğini kullanabilmek için ise Fast Recovery Area (FRA) alanını kullanmamız gerekmektedir.
Bizim durumumuzda FRA zaten aktif çalışır durumda fakat aktif olmayanlar için aşağıdaki şekilde aktif hale getirebilirsiniz. FRA alanını set etmek için iki tane parametreyi set etmemiz gerekiyor.
Alter system set DB_RECOVERY_FILE_DEST_SIZE=<Size G veya M>
Alter system set DB_RECOVERY_FILE_DEST= <ilgili disk alanının yolu Ör +FRA>
Bu parametreleri set ettikten sonra Flashback database özelliğini aktif edebiliriz.
SQL> Alter Database Flashback on;
Alter Database Flashback on
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active
Hata verdi öncelikle media recovery processlerini (MRP) durdurmalıyız.
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database flashback on;
Database altered.
Geri dönebileceğimiz bir restore point noktasını garanti edelim.
SQL> create restore point back_to_stb guarantee flashback database;
Restore point created.
Yukarıda back_to_stb adında bir restore point noktasını garanti altına aldık, standby tarafındaki işlemlerimiz bittiğinde tekrar bu noktaya döneceğiz.
Standby veritabanını aktif ederek read-write modda açabiliriz.
SQL> alter database activate standby database;
Database altered.
SQL> startup mount force;
ORACLE instance started.
Total System Global Area 243268216 bytes
Fixed Size 8895096 bytes
Variable Size 180355072 bytes
Database Buffers 50331648 bytes
Redo Buffers 3686400 bytes
Database mounted.
SQL> alter database set standby database to maximize performance;
Database altered.
SQL> alter database open;
Database altered.
Stanby veritabanımız read-write modunda açıldı artık istediğimiz işlemi yapabiliriz. Ancak primary database çalışıyor ve arada GAP oluşuyor o yüzden bir an önce ne yapacaksak yapıp tekrar eski haline getirmeliyiz. Eğer GAP çok büyürse fark backupı alıp bunu standby tarafında işletmek zorunda kalabiliriz.
Şimdi en son olarak primary tarafta FRKDBA adında bir kullanıc ve TEST adında b,ir tablo oluşturmuştum, bu tablo ve içindeki veriler standby tarafında var mı? bir kontrol edelim.
SQL> select * from FRKDBA.TEST;
ID ADI TELNO
2
Kamil 110
içindeki verilerle birlikte tablomuz burada gerekli sorguları ve işlemleri yaptık şimdi standby veritabanımız eski durumuna tekrar alalım.
İlk olarak veritabanını mount moda alalım
SQL> startup mount force;
ORACLE instance started.
Total System Global Area 243268216 bytes
Fixed Size 8895096 bytes
Variable Size 180355072 bytes
Database Buffers 50331648 bytes
Redo Buffers 3686400 bytes
Database mounted.
Veritabanını restore point ettiğimiz noktaya tekrar alalım.
SQL> flashback database to restore point back_to_stb;
Flashback complete.
Veritabanını pyhsical stanby veritabanı olarak set edelim
SQL> alter database convert to physical standby;
Database altered.
veritabanını tekrar mount modda açalım.
SQL> startup mount force;
ORACLE instance started.
Total System Global Area 243268216 bytes
Fixed Size 8895096 bytes
Variable Size 180355072 bytes
Database Buffers 50331648 bytes
Redo Buffers 3686400 bytes
Database mounted.
MRP procesesini başlatım ve redo apply işlemi gerçekleşsin.
SQL> alter database recover managed standby database using current logfile disconnect;
Database altered.
Kontrollerimizi yapalım.
SQL> select PROCESS,STATUS,THREAD#,SEQUENCE# from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE#
--------- ------------ ---------- ----------
ARCH CONNECTED 0 0
DGRD ALLOCATED 0 0
DGRD ALLOCATED 0 0
ARCH CONNECTED 0 0
ARCH CONNECTED 0 0
ARCH CONNECTED 0 0
RFS IDLE 1 0
RFS IDLE 1 41
RFS IDLE 2 28
RFS IDLE 2 0
MRP0 APPLYING_LOG 1 41
11 rows selected.