Oracle 11gR2 Üzerine Dataguard Kurulumu Türkçe
1. Primary veritabanının arşiv modda olduğu doğrulanır, değilse arşiv moda alınır. SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 249 Next log sequence to archive 251 Current log sequence 251 2. Primary veritabanında force logging açılır: SQL> select force_logging from v$database; FOR --- NO SQL> alter database force logging; Database altered. SQL> select force_logging from v$database; FOR --- YES 3. Primary veritabanı üzerinde standby redo logfileları oluşturulur: Oluşturulacak olan standby redo logların boyutlarının mevcut online redo logların boyutlarıyla aynı olması gerekmektedir. Bu ayarlama maximum performans durumunda zorunlu olmamasına rağmen önerilmektedir. Kaç adet oluşturulacağı (maximum number of logfiles for each thread + 1 * maximum number of threads formülü ile belirlenir. Yani single instance bir db server üzerinde 3 adet logfile varsa -> (3+1*1= 4 adet oluşturmak gereklidir. SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/u01/app/oracle/oradata/polldb/redo04s.log' SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/u01/app/oracle/oradata/polldb/redo05s.log' SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/u01/app/oracle/oradata/polldb/redo06s.log' SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/u01/app/oracle/oradata/polldb/redo07s.log'
4. Primary veritabanı üzerindeki gerekli parametreler değiştirilir: SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(POLLDB,POLLDBS' sid='*' scope=both; SQL> alter system set LOG_ARCHIVE_DEST_1= 'LOCATION=/u01/FRA VALID_FOR= (ALL_LOGFILES, ALL_ROLES DB_UNIQUE_NAME=POLLDB' sid='*' scope=both; SQL> alter system set LOG_ARCHIVE_DEST_2= 'SERVICE=POLLDBS LGWR ASYNC VALID_FOR = (ONLINE_LOGFILES,PRIMARY_ROLE DB_UNIQUE_NAME=POLLDBS' sid='*' scope=both; SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE sid='*' scope=both; SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE sid='*' scope=both; SQL> alter system set REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE sid='*' scope=spfile; SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO sid='*' scope=both; SQL> alter system set FAL_SERVER='POLLDBS' sid='*' scope=both; SQL> alter system set FAL_CLIENT='POLLDB' sid='*' scope=both; SQL> alter system set log_file_name_convert='/u01/fra','/u01/fra' sid='*' scope=spfile; SQL> alter system set db_file_name_convert= '/u01/app/oracle/oradata/polldbs/', '/u01/app/oracle/oradata/polldb/' sid='*' scope=spfile; 5. Primary ve Standby sunucularda TNS ayarı yapılır. (tnsnames.ora POLLDB = POLLDBS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = 192.168.174.100(PORT = 1521 (CONNECT_DATA = (SERVER = DEDICATED (SID = POLLDB (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP(HOST = 192.168.174.101(PORT = 1521 (CONNECT_DATA = (SERVER = DEDICATED (SID = POLLDBS 6. Primary veritabanının yedeği alınır ve standby için controlfile oluşturulur: RMAN> run { ALLOCATE CHANNEL d1 DEVICE TYPE DISK FORMAT /u01/backup/%d-%i-%t-%u ; backup database plus archivelog; backup current controlfile for standby format /u01/backup/control.ctl ; release channel d1; } 7. Dosyaların Standby a taşınması -> Backup, pfile, passwordfile. PFILE yok ise aşağıdaki gibi oluşturulabilir: SQL> create pfile='/u01/backup/pfileforstby' from spfile; File created.
8. Standby üzerindeki pfile aşağıdaki gibi editlenir ve diziner oluşturulur: POLLDB. db_cache_size=188743680 POLLDB. java_pool_size=4194304 POLLDB. large_pool_size=4194304 POLLDB. oracle_base='/u01/app/oracle'#oracle_base set from environment POLLDB. pga_aggregate_target=293601280 POLLDB. sga_target=545259520 POLLDB. shared_io_pool_size=0 POLLDB. shared_pool_size=331350016 POLLDB. streams_pool_size=8388608 *.audit_trail='db' *.compatible='11.2.0.0.0' *.db_block_size=8192 *.db_domain='' *.db_file_name_convert='/u01/app/oracle/oradata/polldbs/','/u01/app/oracle/oradata/polldb/' *.db_name='polldb' *.db_unique_name='polldbs' *.CONTROL_FILES = '/u01/app/oracle/oradata/polldbs/control01.ctl', '/u01/app/oracle/oradata/polldbs/control02.ctl' *.audit_file_dest='/u01/app/oracle/admin/polldbs/adump' *.db_create_file_dest='/u01/app/oracle/oradata/polldbs/' *.resource_limit=true *.sec_case_sensitive_logon=false *.sessions=55 *.fal_client='polldbs' *.fal_server='polldb' *.log_archive_dest_1='location=/u01/fra VALID_FOR=(ALL_LOGFILES,ALL_ROLES DB_UNIQUE_NAME=POLLDBS' *.log_archive_dest_2='service=polldb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE DB_UNIQUE_NAME=POLLDB' *.log_archive_config='dg_config=(polldbs,polldb' *.log_file_name_convert='/u01/app/oracle/oradata/polldb/','/u01/app/oracle/oradata/polldbs/' *.db_file_name_convert='/u01/app/oracle/oradata/polldb/','/u01/app/oracle/oradata/polldbs/' *.db_recovery_file_dest_size=4294967296 *.db_recovery_file_dest='' *.diagnostic_dest='/u01/app/oracle' *.dispatchers='(protocol=tcp (SERVICE=POLLDBXDB' *.log_archive_dest_state_1='enable' *.log_archive_dest_state_2='enable' *.memory_target=838860800 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='exclusive' *.standby_file_management='auto' *.undo_tablespace='undotbs1' mkdir /u01/app/oracle/oradata/polldbs/ mkdir /u01/app/oracle/admin/polldbs/adump 9. Standby üzerinde PFILE ile açıp SPFILE oluşturma: (SPFILE kullanılmak isteniyorsa SQL> startup nomount pfile='/u01/backup/pfileforstby'; ORACLE instance started. Total System Global Area 835104768 bytes Fixed Size 2217952 bytes Variable Size 641730592 bytes Database Buffers 188743680 bytes Redo Buffers 2412544 bytes SQL> create spfile from pfile='/u01/backup/pfileforstby'; File created. //Bounce DB
10. Standby üzerinde -> Controlfile larını ilgili lokasyona restore etme: rman target / Recovery Manager: Release 11.2.0.1.0 - Production on Thu Mar 7 14:15:48 2013 Copyright (c 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database (not started RMAN> startup nomount Oracle instance started Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers 835104768 bytes 2217952 bytes 641730592 bytes 188743680 bytes 2412544 bytes RMAN> restore standby controlfile to '/u01/app/oracle/oradata/polldbs/control01.ctl' from '/u01/backup/control.ctl'; Starting restore at 07-MAR-13 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=20 device type=disk channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 Finished restore at 07-MAR-13 RMAN> restore standby controlfile to '/u01/app/oracle/oradata/polldbs/control02.ctl' from '/u01/backup/control.ctl'; Starting restore at 07-MAR-13 using channel ORA_DISK_1 channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 Finished restore at 07-MAR-13 11. Standby -> Shutdown & Startup Mount SQL> shutdown abort ORACLE instance shut down. SQL> startup nomount ORACLE instance started. Total System Global Area 835104768 bytes Fixed Size 2217952 bytes Variable Size 641730592 bytes Database Buffers 188743680 bytes Redo Buffers 2412544 bytes SQL> ALTER DATABASE MOUNT STANDBY DATABASE; Database altered.
12. Restore [oracle@polldb ~]$ rman target / Recovery Manager: Release 11.2.0.1.0 - Production on Thu Mar 7 16:02:19 2013 Copyright (c 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: POLLDB (DBID=3473704548, not open RMAN> RMAN> RMAN> CATALOG START WITH '/u01/backup/polldb-'; using target database control file instead of recovery catalog searching for all files that match the pattern /u01/backup/polldbno files found to be unknown to the database RMAN> restore database; Starting restore at 07-MAR-13 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=25 device type=disk channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/polldbs/system01.dbf channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/polldbs/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/polldbs/undotbs01.dbf channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/polldbs/users01.dbf channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/polldbs/alpha01.dbf channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/polldbs/rman01.dbf channel ORA_DISK_1: reading from backup piece /u01/backup/polldb-3473704548-20130306- 5bo3s0lg_1_1 channel ORA_DISK_1: piece handle=/u01/backup/polldb-3473704548-20130306-5bo3s0lg_1_1 tag=tag20130306t170448 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:01:06 Finished restore at 07-MAR-13 13. Standby Recover [oracle@polldb BACKUP]$ rman target / Recovery Manager: Release 11.2.0.1.0 - Production on Thu Mar 7 14:55:40 2013 Copyright (c 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: POLLDB (DBID=3473704548, not open RMAN> CATALOG START WITH '/u01/backup/polldb-'; using target database control file instead of recovery catalog searching for all files that match the pattern /u01/backup/polldbno files found to be unknown to the database ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;