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