Merhaba arkadaşlar bu yazımda Data Guard kurulumunu anlatacagım.
Benim senaryoma göre ;
Birinci makineye Oracle Enterprise Linux 6.4 kurup onunda üzerine de Oracle 11gR2 yazılımı ve veritabanı kurulmuştur.Ve ben bu makineyi bundan sonra primary makine ismiyle anacagım.
İkinci makineye de aynı şekilde Oracle Enterprise Linux 6.4 kurulacagım bu aşamadan sonra ise buraya sadece Oracle 11gR2 yazılımını kuracagım.Bu makineyi de secondary ismiyle anacagım.
Yani benim canlı(production) veritabanım primary,ondan beslenen standby veritabanım da secondary olacak.
Primary | Secondary | |
Hostname | primary | secondary |
IP | 192.168.1.125 | 192.168.1.126 |
ORACLE_SID | ORCL | ORCLSTBY |
ORACLE_UNQNAME | ORCL | ORCLSTBY |
ORACLE_NAME | ORCL | ORCL |
Data Guard kurulumu yapmanın birden fazla yöntemi vardır.Duplicate komutuyla kurulabilecegi gibi alınan rman backup ile de kurulumu yapabiliriz bunların yanı sıra 3. parti uygulamaları(dbvisit,12c cloud control,Broker vb.) kullanarak da kurulum yapabiliriz aslında bunlarda arka planda duplicate veya alınan backup’ı kullanma vb. işlemler yapıyor,bu 3.parti uygulamaların tek yararı kurulumu daha basite indirgemek.
Biz bu dökümanda 2 şekilde kurulum yapacagız aslında bu kurulumların mantıgıda aynı.İlk alınan rman backup ile Data Guard kurulumu yapacagız daha sonra ise Duplicate komutu ile Data Guard kurulumu yapacagız.
1.RMAN Backup İle Data Guard Kurulumu
- 2 makinenin’de ip ve host bilgilerini birbirine tanıtırız.(primary-secondary)
Benim örneğime göre /etc/hosts dosyaları aşağıda ki gibi olmalıdır.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.125 primary.localdomain primary 192.168.1.126 secondary.localdomain secondary
NOT : tnsnames dosyasında hostname üzerinden gideceğim için bu tanımlamayı yapmam gerekir istenilirse bu tanımlama yapılmadan ip üzerinden de gidilebilir.
- Primary veritabanı ARCHIVELOG modda olmalıdır.Veritabanının ARCHIVELOG modunu control etmek için aşagıda ki sorguyu çalıştırabiliriz.(primary)
SELECT log_mode FROM v$database;
Eger sonuç NOARCHIVELOG mod dönüyorsa ARCHIVELOG moda almak için aşağıda ki adımları uygularız.
SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
- Bütün aktivitelerin log dosyalarına yazılması ve standby veritabanına uygulanması için bütün nesnelerin loglanmasını başlatmalıyız.(primary)
ALTER DATABASE FORCE LOGGING;
- Production ve standby veritabanlarının unqname parametrelerini ayarlarız.(primary)
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(ORCL,ORCLSTBY)';
- Redo veri göndermemizi sağlayan parametreyi ayarlarız.(primary)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORCLSTBY NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLSTBY'; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
- Password file,archivelog formatını ve maksimum proses sayısını belirleriz.(primary)
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;
- fal_server,fal_client vb. parametreleri ayarlarız. (primary)
ALTER SYSTEM SET FAL_SERVER=ORCLSTBY; ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO; ALTER SYSTEM SET FAL_CLIENT=ORCL;
- Standby makine de gerekli dizinleri oluşturuz.(secondary)
mkdir -p /u01/app/oracle/admin/ORCLSTBY/adump mkdir -p /u01/app/oracle/fast_recovery_area/ORCLSTBY mkdir -p /u01/app/oracle/oradata/ORCLSTBY
- Standby makinede listener oluşturuz.Benim örnegime göre aşagıda ki gibi olmalıdır.(secondary)
vi /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCLSTBY) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = ORCLSTBY) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = secondary.localdomain)(PORT = 1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = /u01/app/oracle
Daha sonra listener kapatır yeniden başlatırız.
lsnrctl reload
- iptables kapatırız her iki makinede de.(primary-secondary)
NOT : işletim sistemi root kullanıcısı ile kapatılır.
/etc/init.d/iptables stop chkconfig iptables off
- tnsnames.ora dosyası düzenlenir,her iki tarafda da.Benim örnegime gore aşagıda ki gibi olur.(primary-secondary)
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = primary)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) ORCLSTBY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = secondary)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLSTBY) ) )
NOT : tnsping atıp atmadığı kontrol edilir,her iki makinede de.
tnsping ORCL tnsping ORCLSTBY
- Standby veritabanını nomount modda açmak için production veritabanından pfile üretirim.(primary)
CREATE PFILE='/tmp/initORCLSTBY.ora' FROM SPFILE;
Oluşturdugum pfile’ın içinde ORCL olan yerleri ORCLSTBY ile degiştiririm benim örnegime göre.
Bunun dışında aşagıda ki parametreleri pfile’a ekler veya varsa güncellerim.
db_name='ORCL' db_unique_name='ORCLSTBY' fal_client='ORCLSTBY' fal_server='ORCL' standby_file_management='AUTO' log_archive_config='dg_config=(ORCL,ORCLSTBY)' log_archive_dest_2='service=ORCL ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=ORCL' ; db_file_name_convert='/ORCL/','/ORCLSTBY/' log_file_name_convert='/ORCL/','/ORCLSTBY/'
Benim örnegime gore pfile’ımı ilk oluşturdugumda aşagıda ki gibiydi.
ORCL.__db_cache_size=331350016 ORCL.__java_pool_size=4194304 ORCL.__large_pool_size=4194304 ORCL.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment ORCL.__pga_aggregate_target=335544320 ORCL.__sga_target=503316480 ORCL.__shared_io_pool_size=0 ORCL.__shared_pool_size=150994944 ORCL.__streams_pool_size=4194304 *.audit_file_dest='/u01/app/oracle/admin/ORCL/adump' *.audit_trail='db' *.compatible='11.2.0.0.0' *.control_files='/u01/app/oracle/oradata/ORCL/control01.ctl','/u01/app/oracle/fast_recovery_area/ORCL/control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='ORCL' *.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area' *.db_recovery_file_dest_size=4322230272 *.diagnostic_dest='/u01/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)' *.fal_client='ORCL' *.fal_server='ORCLSTBY' *.log_archive_config='DG_CONFIG=(ORCL,ORCLSTBY)' *.log_archive_dest_2='SERVICE=ORCLSTBY NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORCLSTBY' *.log_archive_dest_state_2='ENABLE' *.log_archive_format='%t_%s_%r.arc' *.log_archive_max_processes=30 *.memory_target=838860800 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.standby_file_management='AUTO' *.undo_tablespace='UNDOTBS1'
Standby için pfile’ımın en son güncellenmiş hali ise aşağıda ki gibidir.
ORCLSTBY.__db_cache_size=327155712 ORCLSTBY.__java_pool_size=4194304 ORCLSTBY.__large_pool_size=4194304 ORCLSTBY.__oracle_base='/u01/app/oracle' ORCLSTBY.__pga_aggregate_target=335544320 ORCLSTBY.__sga_target=503316480 ORCLSTBY.__shared_io_pool_size=0 ORCLSTBY.__shared_pool_size=155189248 ORCLSTBY.__streams_pool_size=4194304 *.audit_file_dest='/u01/app/oracle/admin/ORCLSTBY/adump' *.audit_trail='db' *.db_file_name_convert='/ORCL/','/ORCLSTBY/' *.log_file_name_convert='/ORCL/','/ORCLSTBY/' *.compatible='11.2.0.0.0' *.control_files='/u01/app/oracle/oradata/ORCLSTBY/control01.ctl','/u01/app/oracle/fast_recovery_area/ORCLSTBY/control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='ORCL' *.db_unique_name='ORCLSTBY' *.fal_client='ORCLSTBY' *.fal_server='ORCL' *.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area' *.db_recovery_file_dest_size=4322230272 *.diagnostic_dest='/u01/app/oracle' *.log_archive_config='DG_CONFIG=(ORCL,ORCLSTBY)' *.log_archive_dest_2='service=ORCL ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=ORCL' *.log_archive_dest_state_2='ENABLE' *.log_archive_format='%t_%s_%r.arc' *.log_archive_max_processes=30 *.memory_target=838860800 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.standby_file_management='AUTO' *.undo_tablespace='UNDOTBS1'
- Production veritabanında rman’e bağlanırım ve rman yedek alırım.(primary)
rman target;
run { sql 'ALTER SYSTEM SWITCH LOGFILE'; allocate channel t1 type disk; allocate channel t2 type disk; allocate channel t3 type disk; allocate channel t4 type disk; allocate channel t5 type disk; allocate channel t6 type disk; allocate channel t7 type disk; allocate channel t8 type disk; backup as compressed backupset database format '/u01/app/oracle/rman/dbf_%d_%t_%s.rman'; backup archivelog all delete input format '/u01/app/oracle/rman/arc_%d_%t_%s.rman'; release channel t8; release channel t7; release channel t6; release channel t5; release channel t4; release channel t3; release channel t2; release channel t1; }
- Standby veritabanım için production veritabanımda control file oluştururum.(primary)
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/orclstby.ctl';
- Production sunucumda ki dosyaları standby sunucuma gönderirim.(primary)
#pfile scp /tmp/initORCLSTBY.ora oracle@secondary:/u01/app/oracle/product/11.2.0/db_1/dbs/initORCLSTBY.ora #Password File scp /u01/app/oracle/product/11.2.0/db_1/dbs/orapwORCL oracle@secondary:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwORCLSTBY #Rman backup scp -r /u01/app/oracle/rman/ oracle@secondary:/u01/app/oracle/ #Control File scp /tmp/orclstby.ctl oracle@secondary:/u01/app/oracle/oradata/ORCLSTBY/control01.ctl scp /tmp/orclstby.ctl oracle@secondary:/u01/app/oracle/fast_recovery_area/ORCLSTBY/control02.ctl
- Standby veritabanımı MOUNT modda açarım.(secondary)
STARTUP MOUNT;
- Yedek’ten veritabanını kurtararak standby’de kurulum yapmak için restore yaparız.(secondary)
rman target /
restore database;
- Production veritabanında redo log dosyalarını oluşturuz.(primary)
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL; ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/ORCL/online_redo01.log') SIZE 50M; ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/ORCL/online_redo02.log') SIZE 50M; ALTER DATABASE ADD LOGFILE ('/u01/app/oracle/oradata/ORCL/online_redo03.log') SIZE 50M; ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;
- Standby veritabanında redo log dosyalarını oluşturuz.(secondary)
ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCLSTBY/standby_redo01.log') SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCLSTBY/standby_redo02.log') SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCLSTBY/standby_redo03.log') SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCLSTBY/standby_redo04.log') SIZE 50M;
- Standby prosesının başlaması için aşagıda ki komutu çalıştırırız.(secondary)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
2.Duplicate İle Data Guard Kurulumu
- 2 makinenin’de ip ve host bilgilerini birbirine tanıtırız.(primary-secondary)
Benim örneğime göre /etc/hosts dosyaları aşağıda ki gibi olmalıdır.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.125 primary.localdomain primary 192.168.1.126 secondary.localdomain secondary
NOT : tnsnames dosyasında hostname üzerinden gideceğim için bu tanımlamayı yapmam gerekir istenilirse bu tanımlama yapılmadan ip üzerinden de gidilebilir.
- Primary veritabanı ARCHIVELOG modda olmalıdır.Veritabanının ARCHIVELOG modunu control etmek için aşagıda ki sorguyu çalıştırabiliriz.(primary)
SELECT log_mode FROM v$database;
Eger sonuç NOARCHIVELOG mod dönüyorsa ARCHIVELOG moda almak için aşağıda ki adımları uygularız.
SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
- Bütün aktivitelerin log dosyalarına yazılması ve standby veritabanına uygulanması için bütün nesnelerin loglanmasını başlatmalıyız.(primary)
ALTER DATABASE FORCE LOGGING;
- Veritabanı kullanıcı şifreleri için production veritabanında ki password file’ı standby makineye kopyalarız ve kopyalarken de standby makinenin unqname’ine göre password file’ın ismini değiştiririz.(primary)
scp /u01/app/oracle/product/11.2.0/db_1/dbs/orapwORCL oracle@secondary:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwORCLSTBY
- Standby makine de gerekli dizinleri oluşturuz.(secondary)
mkdir -p /u01/app/oracle/admin/ORCLSTBY/adump mkdir -p /u01/app/oracle/fast_recovery_area/ORCLSTBY mkdir -p /u01/app/oracle/oradata/ORCLSTBY
- Standby makine’de parameter file oluşturur ve db_name adını ekleriz.(secondary)
vi /u01/app/oracle/product/11.2.0/db_1/dbs/initORCLSTBY.ora
db_name='ORCLSTBY'
- Standby makinede listener oluşturuz.Benim örnegime göre aşagıda ki gibi olmalıdır.(secondary)
vi /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCLSTBY) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = ORCLSTBY) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = secondary.localdomain)(PORT = 1521)) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) ADR_BASE_LISTENER = /u01/app/oracle
Daha sonra listener kapatır yeniden başlatırız.
lsnrctl reload
- iptables kapatırız her iki makinede de.(primary-secondary)
NOT : işletim sistemi root kullanıcısı ile kapatılır.
/etc/init.d/iptables stop chkconfig iptables off
- tnsnames.ora dosyası düzenlenir,her iki tarafda da.Benim örnegime gore aşagıda ki gibi olur.(primary-secondary)
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = primary)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) ORCLSTBY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = secondary)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCLSTBY) ) )
NOT : tnsping atıp atmadığı kontrol edilir,her iki makinede de.
tnsping ORCL tnsping ORCLSTBY
- Primary veritabanımda bulunan redo log dosya sayısının bir fazlası kadar standby redo log dosyası oluşturmamız gerekiyor.(primary)
Normal şartlar altında bu standby redo loğlarını standby veritabanın da oluşturmamız yeterli ama ileride ki switcover işlemlerini de düşünerek aynı standby loğlarını production veritabanından da oluşturuyorum.
Benim örneğim de primary veritabanında 3 tane redo log olduğu için ben örneğim de 4 tane standby redo log oluşturuyorum.
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/standby01.log' size 50M; alter database add standby logfile '/u01/app/oracle/oradata/ORCL/standby02.log' size 50M; alter database add standby logfile '/u01/app/oracle/oradata/ORCL/standby03.log' size 50M; alter database add standby logfile '/u01/app/oracle/oradata/ORCL/standby04.log' size 50M;
NOT : Duplicatekomutu çalıştıracagımız için standby veritabanıma redo loglarım dosyalarım gönderilecektir.Bu yüzden yukarıda ki komutu production veritabanında çalıştırmamız yeterli.
- Standby sunucumuzu NOMOUNT modda açalım.(secondary)
STARTUP NOMOUNT;
- Production veritabanımızdan rman ile auxiliary olarak bağlanır daha sonra duplicate komutunu çalıştırırz ve standby’ımızın kurulumu tamamlanmış olur.(primary)
rman target sys/oracle@ORCL auxiliary sys/oracle@ORCLSTBY
run { allocate channel prmy1 type disk; allocate channel prmy2 type disk; allocate channel prmy3 type disk; allocate channel prmy4 type disk; allocate auxiliary channel stby type disk; duplicate target database for standby from active database nofilenamecheck spfile parameter_value_convert 'ORCL','ORCLSTBY' set db_file_name_convert='/ORCL/','/ORCLSTBY/' set log_file_name_convert='/ORCL/','/ORCLSTBY/' set db_unique_name='ORCLSTBY' set control_files='/u01/app/oracle/oradata/ORCLSTBY/control01_ORCLSTBY.ctl' set log_archive_max_processes='5' set fal_client='ORCLSTBY' set fal_server='ORCL' set standby_file_management='AUTO' set log_archive_config='dg_config=(ORCL,ORCLSTBY)' set log_archive_dest_1='service=ORCL LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=ORCL' ; sql channel prmy1 "alter system set log_archive_config=''dg_config=(ORCL,ORCLSTBY)''"; sql channel prmy1 "alter system set log_archive_dest_2=''service=ORCLSTBY LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=ORCLSTBY''"; sql channel prmy1 "alter system set log_archive_max_processes=10"; sql channel prmy1 "alter system set fal_client=ORCL"; sql channel prmy1 "alter system set fal_server=ORCLSTBY"; sql channel prmy1 "alter system set standby_file_management=AUTO"; sql channel prmy1 "alter system set log_archive_dest_state_1=enable"; sql channel prmy1 "alter system archive log current"; sql channel stby "alter database recover managed standby database using current logfile disconnect"; }
Apply Prosesini Başlatmak ve Sonlandırmak
Apply işlemini başlatmak için aşağıdaki scriptlerden birini çalıştırabiliriz.
#Apply prosesini başlatır ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; #30 dk geçilme ile apply işlemini yapar ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DELAY 30 DISCONNECT FROM SESSION; #Gecikmesiz apply işlemi yapar ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY DISCONNECT FROM SESSION; #Real-time apply yapar ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
Apply işlemini başlatmak için aşağıdaki scriptlerden birini çalıştırabiliriz.
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Protection Mode
Standby’ımızın hangi modda çalıştığını öğrenmek için aşağıda ki scripti kullanabiliriz.
SELECT protection_mode FROM v$database;
- Maximum Performance
- Maximum Availability
- Maximum Protection
Yukarıda ki 3 mod’danda bir önceki dökümanda bahsetmiştik varsayılan olarak Maximum Performance’da çalışır standby.
Modu değiştirmek için aşağıdaki scriptlerden istediğimizi kullanabiliriz.
-- Maximum Performance. ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY'; ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE; -- Maximum Availability. ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby AFFIRM SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY'; ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY; -- Maximum Protection. ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=db11g_stby AFFIRM SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB11G_STBY'; SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION; ALTER DATABASE OPEN;
NOT : Production veritabanimiz ve standby veritabanımız arasında ki redo transferini ve apply durumunu takip etmek için aşagıda ki scripti kullanabiliriz.
ALTER SESSION SET nls_date_format='DD-MON-YYYY HH24:MI:SS'; SELECT sequence#, first_time, next_time, applied FROM v$archived_log ORDER BY sequence#;
NOT : Standby veritabanımızı read only modda açmak istersek aşağıda ki scripti kullanabiliriz.
SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE OPEN READ ONLY; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Yararlı olması Dilegiyle …
Yazar : Mustafa Bektaş Tepe
10,755 total views, 4 views today