RMAN Backup Restore yöntemiyle Oracle Dataguard Kurulumu

Merhaba Arkadaşlar,

Bu yazımda sizlere RMAN Backup Restore yöntemiyle Dataguard kurulumunu anlatacağım. Bu yazıyı okumadan önce daha önce yazdığım mimari ve duplicate yöntemindeki makaleyide okuyabilirsiniz.

Primary taraf production taraf, Standby tarafı ise Dataguard kuracağımız 2.veritabanı ortamı oluyor. Her 2 tarafta yaptığımız adımları ayrı ayrı aşağıda belirttim.

 

—————————————– Primary Tarafta yapilmasi gerekenler ——————————–

1.Adim: Her iki node un /etc/hosts dosyasinda birbirlerinin hostname tanimlari olmalidir. DNS Server kullanılıyorsa bu adıma gerek yok.

[oracle@test01 ~]$ cat /etc/hosts
192.168.56.75 test01 test01.localdomain
192.168.56.76 test02 test02.localdomain

[oracle@test02 ~]$ cat /etc/hosts
192.168.56.75 test01 test01.localdomain
192.168.56.76 test02 test02.localdomain

2.Adim: Production Database in Archive modu kontrol edilir disable ise açilir, Database force logging moda alınır ve diger DG parametreleri ayarlanir

 

ALTER DATABASE FORCE LOGGING;

-- Arsiv Modu
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/product/11.2.0/dbhome/dbs/arch
Oldest online log sequence 54
Next log sequence to archive 56
Current log sequence 56

— Dataguard için Production parametreleri set edilir

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCLDG)' scope=BOTH;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=ORCLDG LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLDG' scope=BOTH;
alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=BOTH;
alter system set FAL_SERVER=ORCLDG scope=BOTH;
alter system set FAL_CLIENT=ORCL scope=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=30 scope=BOTH;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=BOTH;

 

3.Adim: Production DB den FULL Backup alinir ve DG tarafina kopyalanir.

connect target /
run{
ALLOCATE CHANNEL CH1 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH2 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH3 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH4 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH5 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH6 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH7 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH8 DEVICE TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '/u01/oracle/backup/FULL_%d_%u_%s_%T.bkp';
BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL not backed up 1 times FORMAT '/u01/oracle/backup/Archivelogs_%d_%u_%s_%T.bkp';
BACKUP CURRENT CONTROLFILE FORMAT '/u01/oracle/backup/CONTROLFILE%d_%u_%s_%T.bkp';
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
RELEASE CHANNEL CH3;
RELEASE CHANNEL CH4;
RELEASE CHANNEL CH5;
RELEASE CHANNEL CH6;
RELEASE CHANNEL CH7;
RELEASE CHANNEL CH8;
}

[oracle@test01 backup]$ scp * oracle@test02:/u01/oracle/backup/

 

4.Adim: Production dan Standby controlfile ve pfile dosyasi olusturulup DG ye gönderilir. Password file da DG ye kopyalanir.

create pfile='/home/oracle/pfile.ora' from spfile;
alter database create standby controlfile as '/u01/oracle/backup/standbycontrol.ctl';

[oracle@test01 ~]$ scp pfile.ora oracle@test02:/home/oracle/
[oracle@test01 ~]$ scp /u01/oracle/backup/standbycontrol.ctl oracle@test02:/u01/oracle/backup/standbycontrol.ctl

[oracle@test01 ~]$ scp orapwORCL oracle@test02:/u01/app/oracle/product/11.2.0/dbhome/dbs/orapwORCLDG

 

5.Adim: Production ve DG tarafinda TNS ler tnsnames.ora ya yazilir.

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test01.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)

ORCLDG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test02.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLDG)
)
)

Burada Tnsping ve password file testleri yapılır sonuçları düzgün olmalı ki dataguard ve production birbiriyle konuşabilsin.

tnsping ORCLDG
tnsping ORCL



sqlplus /nolog
SQL> connect sys/oracle@ORCLDG as sysdba
Connected.
SQL> connect sys/oracle@ORCL as sysdba
Connected.


—————————————– Standby Tarafinda yapilmasi gerekenler —————————–

1.Adim: Her iki node un /etc/hosts dosyasinda birbirlerinin hostname tanimlari olmalidir.

Standby sunucusunda Oracle Software Only olarak kurulmalı ve Oracle home hazır olmalıdır. Bilmeyenler için bu yazımdaki adımlar takip edilip Oracle Home kurulmalıdır. Linkte verdiğim makalemdeki 13.adıma kadar gelinip Oracle Software kurulmuş olmalı ve Software versiyonları aynı olmalıdır. Ben bu makalemde 11.2.0.4 ortam için adımları anlattım.

Standby tarafinda listener ayaga kaldirilmalidir

[oracle@test01 ~]$ cat /etc/hosts
192.168.56.75 test01 test01.localdomain
192.168.56.76 test02 test02.localdomain

[oracle@test02 ~]$ cat /etc/hosts
192.168.56.75 test01 test01.localdomain
192.168.56.76 test02 test02.localdomain
[oracle@test02 admin]$ vi listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = test02)(PORT = 1521))
)
)

ADR_BASE_LISTENER = /u01/app/oracle

ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent

lsnrctl stop
lsnrctl start

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test01.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)

ORCLDG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = test02.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLDG)
)
)

tnsping ORCLDG
tnsping ORCL
------------------------------------------------------------------------------------------------------------------------

2.Adim: Prod dan alinan Pfile dosyasi asagidaki gibi düzenlenir. Özellikle dataguard kurulumu için db_unique_name parametresi eklenir ve DB Nameden farklı bir isim verilir. Ve ilgili eksik directory ler create edilir

[oracle@test02 ~]$ vi pfile.ora
TEST.__db_cache_size=293601280
TEST.__java_pool_size=4194304
TEST.__large_pool_size=4194304
TEST.__pga_aggregate_target=339738624
TEST.__sga_target=503316480
TEST.__shared_io_pool_size=0
TEST.__shared_pool_size=192937984
TEST.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/ORCLDG/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/ORCLDG/control01.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='ORCL'
*.db_unique_name='ORCLDG'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=TESTXDB)'
*.memory_target=839909376
*.open_cursors=300
*.processes=150
*.recyclebin='OFF'
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'


Pfile da yazdığımız directory ler aşağıdaki gibi create edilir.

[oracle@test02 adump]$ mkdir -p /u01/app/oracle/ORCLDG
[oracle@test02 ~]$ mkdir -p /u01/app/oracle/admin/ORCLDG/adump

 

Bash profile düzenlenir.

 

[oracle@test02 ~]$ vi .bash_profile

# .bash_profile
export PATH
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export LIBPATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export ORACLE_SID=ORCLDG
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P9

 

Bash profile set edildikten sonra Standby instance sı aşağıdaki gibi ayağa kaldırılır.

[oracle@test02 ~]$ sqlplus / as sysdba
SQL> startup nomount pfile='pfile.ora';

 

3.Adim: Standby Veritabaninda parametre degisikligi yapilir

alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCLDG)' scope=BOTH;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=ORCL LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCL' scope=BOTH;
alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=BOTH;
alter system set FAL_SERVER=ORCL scope=BOTH;
alter system set FAL_CLIENT=ORCLDG scope=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='%t_%s_%r.arc' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=30 scope=BOTH;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=BOTH;

4.Adim: Proddan alinan standby controlfile restore edilerek Standby DB si mount moda getirilir. Backup lar catalog start with ile veritabanına tanıtılır ardından DB restore u baslatilir.

[oracle@test02 ~]$ rman target /
RMAN> restore standby controlfile from '/u01/oracle/backup/standbycontrol.ctl';

RMAN> alter database mount;

RMAN> catalog start with '/u01/oracle/backup/';

connect target /
run{
ALLOCATE CHANNEL CH1 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH2 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH3 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH4 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH5 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH6 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH7 DEVICE TYPE DISK;
ALLOCATE CHANNEL CH8 DEVICE TYPE DISK;
restore database;
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
RELEASE CHANNEL CH3;
RELEASE CHANNEL CH4;
RELEASE CHANNEL CH5;
RELEASE CHANNEL CH6;
RELEASE CHANNEL CH7;
RELEASE CHANNEL CH8;
}


5.Adim —– Standby Veritabaninda standby redologs larini olustur.

alter database add standby logfile group 4 '/u01/app/oracle/ORCLDG/standby01.log' size 20737418;
alter database add standby logfile group 5 '/u01/app/oracle/ORCLDG/standby02.log' size 20737418;
alter database add standby logfile group 6 '/u01/app/oracle/ORCLDG/standby03.log' size 20737418;
alter database add standby logfile group 7 '/u01/app/oracle/ORCLDG/standby04.log' size 20737418;
alter database add standby logfile group 8 '/u01/app/oracle/ORCLDG/standby05.log' size 20737418;

 

6.Adim: Son olarak Dataguard aşağıdaki gibi start edilir. Ben Standby loglarıda eklediğim için aşağıdaki gibi using current logfile seçeneğiyle başlattım böylece standbylog lar kullanılarak lag in 0 olması sağlanmaktadır.

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

 

Son olarak Dataguard başlatıldıktan sonra aşağıdaki scriptlerle Dataguard monitor edilir.

Bu scriptle RFS,ARC ve MRP processi takip edilir. MRP process i mutlaka ayakta olmalıdır.

select process, client_process,thread#,sequence#,status from v$managed_standby;

Bu scriptlede Dataguard ın Lag i kontrol edilir senkron mu değil mi ne kadar fark var bu scriptle bakılır.

select name,value from v$dataguard_stats;


 

Böylece bu yazınında sonuna gelmiş bulunmaktayım bir sonraki yazıda görüşmek dileğiyle esen kalın…

 

Oracle Exadata SQL Server Goldengate Weblogic EBS ve Linux konusunda aşağıdaki konularda 7×24 Uzman Danışmanlara yada Eğitimlere mi İhtiyacınız var mehmet.deveci@gridgroup.com.tr adresine mail atarak Bizimle iletişime geçebilirsiniz.

– Oracle Veritabanı Danışmanlığı
– Oracle Veritabanı Bakım ve Destek
– Exadata Danışmanlığı
– Exadata Bakım ve Destek
– SQL Server Veritabanı Danışmanlığı
– SQL Server Veritabanı Bakım ve Destek
– Goldengate Danışmanlığı
– Goldengate Bakım ve Destek
– Linux Danışmanlığı
– Linux Bakım ve Destek
– Oracle EBS Danışmanlığı
– Oracle EBS Bakım ve Destek
– Weblogic Danışmanlığı
– Weblogic Bakım ve Destek
– Oracle Veritabanı Eğitimleri
– Oracle VM Server Danışmanlığı
– Oracle VM Server Bakım ve Destek
– Oracle EPPM Danışmanlığı
– Oracle EPPM Bakım ve Destek
– Oracle Primavera Danışmanlığı
– Oracle Primavera Bakım ve Destek
– Oracle Eğitimleri
– SQL Server Eğitimleri
– Goldengate Eğitimleri
– Exadata Eğitimleri
– Linux Eğitimleri
– Oracle EBS Eğitimleri
– Oracle VM Server Eğitimleri
– Weblogic Eğitimleri
– Oracle EPPM Eğitimleri
– Oracle Primavera Eğitimleri

Leave a Reply

Your email address will not be published. Required fields are marked *