Bu makale, Oracle 11G R2 veritabanında Data Guard kurulumunu açıklar. Bir DataGuard yapısına (primary – standby) geçiş, tek bir örnek veritabanının erişilebilirliğini artırır.
Data Guard kurulumu aşağıdaki ana bölümlerden oluşur:
- Primary veri tabanının yapılandırılması
- SQL*NET Yapılandırması
- Standby veri tabanının hazırlanması
- Standby veri tabanının oluşturulması
- Durumu kontrol etmek için Views
Yazımız için SID’si “erp” olan operasyonel bir ERP veri tabanı kullanacağız ve bu veri tabanına standby veri tabanı eklenecektir. Hem primary hem de standby veritabanı aynı DB_NAME’e sahip olacak, ancak farklı bir DB_UNIQUE_NAME’e sahip olacak.
Parameter | Primary Database | Standby Database |
DB_NAME / ORACLE_SID | erp | erp |
DB_UNIQUE_NAME | erpprm | erpsby |
IP Address | 192.168.137.100 | 192.168.137.105 |
Hostname | adb.sysdba.org | sdb.sysdba.org |
Primary veritabanının yapılandırılması
Adım 1:
/home/oracle/.bash_profile dosyalarını düzenliyoruz.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
ORACLE_HOSTNAME=adb.sysdba.org; export ORACLE_HOSTNAME ORACLE_UNIQNAME=erp_prm; export ORACLE_UNIQNAME ORACLE_BASE=/Oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/11G; export ORACLE_HOME ORACLE_SID=erp; export ORACLE_SID PATH=$ORACLE_HOME/bin:$PATH; export PATH PATH=/usr/sbin:$PATH; export PATH |
Adım 2:
/etc/hosts dosyasını düzenliyoruz. Aşağıdaki iki satırı ekliyoruz. (her iki sunucuda da)
1 2 3 |
192.168.137.100 adb.sysdba.org adb 192.168.137.105 sdb.sysdba.org sdb |
Adım 3:
Primary DB ArchiveLog Moda alınır
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
!mkdir /Oracle/ArcLog alter system set log_archive_dest_10='LOCATION=/Oracle/ArcLog' scope=spfile; alter system set log_archive_format='arch_%d_%t_%r_%s.log' scope=spfile; shutdown immediate; startup mount; alter database archivelog; alter database open; --Kontrol edelim select log_mode from v$database; select archiver from v$instance; archive log list; |
Adım 4:
“Force logging” özelliğini etkinleştiriyoruz.
1 |
alter database force logging; |
Adım 5:
Parola dosyasını primary DB sunucusundan standby DB sunucusuna kopyalayın.
1 |
scp /Oracle/11G/dbs/orapwderp sdb:/Oracle/11G/dbs/ |
Adım 6:
1 2 3 |
alter system set service_names=’erpprm’ scope=both; alter system set DB_UNIQUE_NAME=’erpprm’ scope=spfile; |
1 2 3 4 5 6 7 |
show parameter service NAME TYPE VALUE --------------------- ----------- ----------- service_names string erpprm |
1 2 3 |
shutdown immediate; startup; |
Adım 7:
1 2 3 |
alter system set fal_server='erpsby' scope=both; alter system set fal_client='erpprm' scope=both; |
Primary DB’deki değişiklikleri standby DB’si ile senkronize etmek için:
1 2 3 |
alter system set standby_file_management=AUTO scope=both; alter system set LOG_ARCHIVE_DEST_10='LOCATION=/Oracle/ArcLog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=erpprm'; |
db_recovery_file_des kullanılmışsa:
1 |
alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=erpprm'; |
Önceki satır, RedoLogs’un Standby DB’ye taşınacağını gösterir.
Adım 8:
Primary DB’ye standby redolog file ekleyin.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
shutdown immediate; startup mount alter database add standby logfile group 4 size 100m; alter database add standby logfile group 5 size 100m; alter database add standby logfile group 6 size 100m; alter database add standby logfile group 7 size 100m; alter database set standby database to maximize availability; alter database open; |
Oracle Recovery Manager...
12 Mart 2019