Oracle 11G R2 Database Dataguard Kurulumu

Bu makalemde Oracle database 11g r2  versiyonu ile dataguard kurulumunu anlatacağım.

oeldb1.localdomain ve oeldb2.localdomian isimli iki server’ım var. İşletim sistemi olarak Redhat 6.7 versiyonu kurulu.

Oeldb1 server üzerinde Primary olarak Oracle Database 11gr2 versiyonu kurulu. Amaç oeldb2 server üzerine Oracle dataguard yapısını kurup datalarımızı olası bir felaket durumuna karşı korumak. Dataguard’ın özelliklerinden biri dilediğimiz anda standby veri tabanını read only modda açıp rapor çekebilir, Ya da yedek alabiliriz

Primary serverda oracle kullanıcısıyla database kurulumunu yaptım. Bu user oinstall grubuna üye. Standby olan serverda aynı kullanıcı id ve group olarak tanımlı. Oracle db’nin kurulum pathleri birebir aynı

Serverların Donanım, Ip, hostname ve Database Bilgileri

Oeldb1 Primary:

İşlemci: 1×4 core

Ram: 4gb

Ip: 192.168.200.20

Hostname: oeldb1

Oracle Sid: orcl

Kurulum Dizini: /u01/app/oracle/product/11.2.0/db_1/

Oeldb2 Standby

İşlemci: 1×4 core

Ram: 4gb

Ip: 192.168.200.30

Hostname: oeldb2

Oracle Sid: orcldg

Kurulum Dizini: /u01/app/oracle/product/11.2.0/db_1

İki server üzerinde host dosyalarına ip ve hostname olarak birbirlerini ekliyorum. İki sevrerın firewalları disabled durumda ve selinux permissive modda.

 

Standby server’a bağlanıp oracle kurulumunu yapıcam. İlk ekranda Sadece database software kurulumunu seçiyorum.

Enterprise Edition versiyonunu seçiyorum. Dataguard bu sürümün özelliği

 

Oracle Db’nin kurulucağı dizin

 

Install seçtikten sonra kurulum başlamış oluyor.

Primary Veri tabanında Oracle Database üzerinde yapılacak işlemler

Öncelikle Veri tabanı archive mod da olmalı. Bunun için yapılması gerekenler

Veri tabanı açıksa shutdown immediate; ile kapatılır

Startup mount; mound modda açılır

alter database archivelog; komutuyla database archlog’a alınır

alter database open; komutuyla database açılır

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG=’DG_CONFIG=(orcl,orcldg)’ scope=both;

ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=’SERVICE=orcldg NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg’ scope=both;

alter system set log_archive_dest_1=’LOCATION=/u01/app/oracle/fast_recovery_area VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl’;

ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

ALTER SYSTEM SET LOG_ARCHIVE_FORMAT=’%t_%s_%r.arc’ SCOPE=SPFILE;

ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;

ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;

ALTER SYSTEM SET FAL_SERVER=orcldg;

ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

ALTER SYSTEM SET FAL_CLIENT=orcl;

create pfile=’/u01/orcldginit.ora’ from spfile;

alter database create standby controlfile as ‘/u01/control01.ctl’;

 

İşletim Sistemi Bazında  Secondary  Veri tabanında Yapılacak İşlemler

mkdir –p /u01/app/oracle/admin/orcldg/adump

mkdir –p /u01/app/oracle/fast_recovery_area/orcldg

mkdir –p /u01/app/oracle/oradata/orcldg

İşletim sistemi üzerinde netca komutuyla standby db için listener servisini create ediyorum

 

 

 

Primary server üzerinde /u01/app/oracle/product/11.2.0/db_1/network/admin dizini altında tnsnames.ora dosyasını editleyip secondary olan db’nin listener bilgilerini giriyorum

Bu işlemi standby db üzerinde de yapıyorum. Fakat burada /u01/app/oracle/product/11.2.0/db_1/network/admin dizini altında tnsnames.ora dosyası olmadığından bu dosyayı create ettikten sonra yukarıdaki listener bilgilerini giriyorum

Her iki serverda listener bağlantılarını tnsping ile kontrol ediyorum

 

Primary serverda Oracle tarafında /u01 dizini altında orcldginit.ora isimli bir dosya yaratmıştım. Bu dosyayı standby makinasına /u01/app/oracle/product/11.2.0/db_1/dbs altında kopyalıyorum ve ismini initorcldg.ora olarak değiştiriyorum

Bu dosyayı editleyip orcl olan yerleri orcldg olarak değiştiriyoum ve aşağıdaki parametreleri ekliyorum

*.standby_file_management=’AUTO’

*.db_recovery_file_dest_size=4385144832

*.db_file_name_convert=’/orcl/’,’/orcldg/’

*.log_file_name_convert=’/orcl/’,’/orcldg/’

Son durum aşağıdaki gibi olmalıdır

 

 

Standby veri tabanını nomount olarak açıyorum. Spfile bilgilerimi okuyarak nomount modda db açıldı

 

Şimdi  sıra primary db de ki control file dosyalarını ve password file dosyasını standby db ye kopyalamaya geldi

Öncelikle primary db üzerinde alter database create standby controlfile as ‘/u01/control01.ctl’; komutuyla standby db için controlfile yaratıyorum

 

Create ettiğim controlfile01.ctl dosyasını secondary db ye kopyalıyorum

scp -r /u01/control01.ctl oracle@192.168.200.30:/u01/app/oracle/oradata/orcldg/control01.ctl

scp -r /u01/control01.ctl oracle@192.168.200.30:/u01/app/oracle/fast_recovery_area/orcldg/control02.ctl olarak kopyalıyorum

Password File dosyamızıda kopyalıyalım

scp –r /u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl  oracle@192.168.200.30:/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcldg ismiyle kopyalıyorum

Standby server üzerinde aşağıdaki komutu çalıştırıyorum

orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcldg password=sys entries=10 force=y ignorecase=Y

 

Bu işlemleri tamamladıktan sonra nomount olan veri tabanımızı mount modda açıyorum

Standby db üzerinde üç adet 50mb’lık redo log dosyası oluşturcağım

alter database add standby logfile (‘/u01/app/oracle/oradata/orcldg/standby_redo01.log’) SIZE 50M;

alter database add standby logfile (‘/u01/app/oracle/oradata/orcldg/standby_redo02.log’) SIZE 50M;

alter database add standby logfile (‘/u01/app/oracle/oradata/orcldg/standby_redo03.log’) SIZE 50M;

 

Tekrar primary server üzerine bağlanıp rman yedeği alıcağım. Bu yedeği altıktan sonra standby makinasına kopyalayıp restore edicem. Şimdi bu işlemleri sırayla yapıyorum

Primary db

 

Yedek alma işmemim bitti. /u01/backup dizini altındaki Rman yedeğimi standby db ye kopyalıyorum

scp -r /u01/backup/* oracle@192.168.200.30:/u01/backup/

Standby Db Tarafına Geçiyorum

Hatırlarsanız Veri tabanımız mount moddaydı.

Rman target / ile bağlanıp yedeğimizin bulunduğu dizini gösteriyorum

catalog start with ‘/u01/backup/’;

 

Restore database; komutuyla standby veri tabanımızı yedekten geri dönüyorum

 

 

Restore ettikten sonra standby oracle veri tabanına bağlanıp

alter database recover managed standby database disconnect from session; komutuyla arch logların işlenmesini sağlıyorum

Kontrollerimizi yapalım

Dataguard Durumu Status Valid

Archlogların işlendiğini görmek için

Umarım faydalı bir makale olmuştur. Bu makalemizin de sonuna geldik, bir sonraki makalemizde görüşmek üzere.

 

 

Exit mobile version