Press ESC to close

How To Open Physical Standby For Read Write Testing and Flashback

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. Enable yapmak için öncelikle MRP yi durdurmalıyız, ayrıca bRW açıldığında log göndermesin karşı tarafa diye log_archive_dest_ ne ise bizde DEFER a çekmemizde fayda var.

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter database flashback on;


Database altered.

SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=DEFER scope=both;

System 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.

SET LINESIZE 150
SET PAGESIZE 50
COLUMN NAME FORMAT A30
COLUMN SCN FORMAT 999999999999999
COLUMN TIME FORMAT A20

select NAME,SCN,TIME from v$restore_point;

NAME                                        SCN TIME
------------------------------ ---------------- --------------------
BACK_TO_STB                      36578762905595 17.12.2024 09.16.47

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.

COntrol file standby dan current duruma geldimi kontrolünü sağlayalım

SQL> select CONTROLFILE_TYPE from v$database;

CONTROL
-------
CURRENT

Artık veritabanının açabiliriz


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. 
Bu aşamadan sonra dumy bir kayıtla test yapabiliriz.

RETURN TO STANDBY

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

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir