Hali hazırda var olan bir satndby database yanına ikinci bir standby eklemek istersek yapmamız gereken adımlar aşağıdaki gibi olmalıdır;
1) Primary Veritabanımızdan Standby için database ve Controlfile RMAN backuplarını alırız (Duplicate yapmayacaksak)
2) Primary veritabanından bir pfile oluşturarak gerekli düzenlemeleri yapılır
3) Backuplar ve pfile Standby tarafa kopyalanır.
4) Duplicate yapacaksak sadece pfile Standby tarafına kopyalanır.
5) Primary ve standby için log_archive_config parametreleri düzenlenir.
6) Eğer ihtiyaç varsa Standby Redo Logs oluşturulur
7) log_archive_Dest_n parameresi PRIMARY taraf için düzenlenir (log_archive_dest_state_3)
8) Oluşturulan Standby devreye alınır.
Öncelikle ortamlarımızı bir tanıyalım;
DB | DB_UNİQUE_NAME | DB_NAME |
Primary | FRKDB | ABYSDB |
1. Standby | FRKDBSTB | ABYSDB |
2. Standby | FRKSTG | ABYSDB |
Pfile da değişmesi gereken Parametreler (Memory vs hariç)
db_unique_name = 'FRKSTG'
db_name='ABYSDB'
fal_server=FRKDB,FRKDBSTB
fal_client=FRKSTG
db_file_name_convert = 'FRKDB','FRKSTG'
log_file_name_convert = 'FRKDB','FRKSTG'
log_archive_dest_1 =LOCATION=USE_DB_RECOVERY_FILE_DEST
Tns Bilgilerinin Kontrol edilmesi gerekmektedir; Her üç veritabanınında tnsnames.ora dosyasına aşağıdaki gibi kayıtlar girilmelidir. Tnsping testleri ve tns üzerinden Sys login testleri yapılması gerekmektedir.
FRKSTG=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.0.25)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = FRKSTG)
)
)
FRKDB=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = frkdboda-scan)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = FRKDB.WORLD)
)
)
TNS_FRKDBSTB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = frkfkmvm1.ahs.local)(PORT = 1521))
)
(CONNECT_DATA =
(SID = FRKDBSTB)
)
)
DG Kurulumu ve Duplicate işlemleri ayrıca Parameterelerin açıklamaları için aşağıdaki yazılara göz atabilirsiniz.
https://www.farukcevik.com.tr/data-guard-mimarisi/
https://www.farukcevik.com.tr/data-guard-2-installation-19c/
Tnsping ve tns ile sys login testleri başarılı ise duplicate aşamasına geçilebilir.
rman target sys/password123@FRKDB auxiliary sys/password123@FRKSTG;
configure device type disk parallelism 8 backup type to backupset;
duplicate target database for standby from active database nofilenamecheck;
Primary Veritabanında yapılması gereken konfigürasyon ayarlamaları;
alter system set log_archive_config='DG_CONFIG=(FRKDB,FRKDBSTB,FRKSTG)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 'LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=FRKDB' scope=both;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=TNS_FRKDBSTB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=FRKDBSTB' scope=both
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 ='SERVICE=FRKSTG LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=FRKSTG' SCOPE=both;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=ENABLE;
alter system set fal_client='FRKDB' scope=both;
alter system set fal_server='FRKDBSTB','FRKSTG' scope=both;
- Sttanby olan *** db de ki Konfigürasyon ayarlamaları
alter system set log_archive_config='DG_CONFIG=(FRKDBSTB,FRKDB,FRKSTG)' scope=both;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 'LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=FRKDBSTB' scope=both;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=FRKDB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=FRKDB' scope=both
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='SERVICE=FRKSTG LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=FRKSTG' scope=both
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=DEFER;
alter system set fal_client='FRKDBSTB' scope=both;
alter system set fal_server='FRKDB','FRKSTG' scope=both;
2. Stanby **** DB için gerekli konfigürasyon ayarlamaları;
alter system set log_archive_config='DG_CONFIG=(FRKSTG,FRKDB,FRKDBSTB)' scope=both;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 'LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=FRKSTG' scope=both;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=FRKDB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=FRKDB' scope=both
ALTER SYSTEM SET LOG_ARCHIVE_DEST_3='SERVICE=TNS_FRKDBSTB LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=FRKDBSTB' scope=both
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=DEFER;
alter system set fal_client='FRKSTG' scope=both;
alter system set fal_server='FRKDB','FRKSTG' scope=both;
Tüm konfigürasyonları yaptıktan sonra MRP çalıştırılır ve DG durumu kontrol edilir;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
DG Kontrolü için aşağıdaki yazıyı takip edebilirsiniz;
Comments (1)
Ferdi Turkoglusays:
Mart 1, 2022 at 7:26 amThere ara a lot of perfect information and labs example has in this blog.
Thank you for shares
Best Regards