六.實施步驟
Physical Standby配置
修改控制檔案,修改最大日志組為10
alter database backup controlfile to trace;
ORACLE_HOME為/export/home/oracle/app/oracle/product/9.2.0
190作為primary,185作為Standby
建立Standby的Oracle軟體
打包Primary上的oracle軟體
cd /export/home/oracle/app/oracle/product
tar cvf db.tar 9.2.0
ftp到Standby伺服器相應目錄
建立Standby上的Oracle軟體目錄結構
mkdir -p /export/home/oracle/app/oracle/product
tar xvf db.tar
cd /export/home/oracle/app/oracle
mkdir -p admin/ctsdb/bdump
mkdir -p admin/ctsdb/cdump
mkdir -p admin/ctsdb/udump
建立Standby上的dba組,oracle使用者,修改oracle使用者的環境變量,修改/etc/system檔案
1。設定Primary強制Logging
ALTER DATABASE FORCE LOGGING;
2。設定Primary為歸檔模式,啟動自動歸檔
3。檢查Primary中所有資料檔案
4。關閉Primary,關閉應用伺服器,停止監聽
5。cp所有資料檔案到本地備份路徑
6。啟動Primary,保持監聽和應用伺服器處于停止狀态
7。生成Standby控制檔案
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/control01.ctl';
8。生成初始化參數檔案
CREATE PFILE='/tmp/initctsdb.ora' FROM SPFILE;
9。将5,7,8中生成的所有檔案以及密碼檔案cp到Standby伺服器
10。修改Standby的初始化參數檔案
添加下面行:
*.standby_archive_dest='/export/spare/oradata/ctsdb/archive'
*.fal_server='ctsdb.primary'
*.fal_client='ctsdb.standby'
*.standby_file_management=auto
*.remote_archive_enable=TRUE
11。修改Primary和Standby的lisener.ora和tnsnames.ora檔案
# LISTENER.ORA Network Configuration File: /export/home/oracle/app/oracle/product/9.2.0/
network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER_DG =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ctsdb)
(ORACLE_HOME = /export/home/oracle/app/oracle/product/9.2.0)
(SID_NAME = ctsdb)
)
LISTENER_DG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.5.210)(PORT = 1522))
# TNSNAMES.ORA Network Configuration File: /export/home/oracle/app/oracle/product/9.2.0/
network/admin/tnsnames.ora
CTSDB.STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.5.211)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = ctsdb)
CTSDB.PRIMARY =
12。設定Standby的SQLNET.ORA檔案
添加SQLNET.EXPIRE_TIME=2,該配置表示在Standby由于故障不可用時,Primary将持續檢測2分鐘,如果仍然不可用,則傳回網絡連接配接錯誤。
13。建立Standby的spfile
CREATE SPFILE FROM PFILE='/tmp/initctsdb.ora';
14。啟動Standby
STARTUP NOMOUNT;
ALTER DATABASE MOUNTSTANDBY DATABASE;
如果要使用LGWR程序傳遞redo資料,那麼需要添加standby redolog,如果使用ARCH程序傳遞redo資料,那麼這步可以省略
alter database add standby logfile group 4
('/global/oradata/ctsdb/stdby_redo04.log') size 1024K;
alter database add standby logfile group 5
('/global/oradata/ctsdb/stdby_redo05.log') size 1024K;
alter database add standby logfile group 6
('/global/oradata/ctsdb/stdby_redo06.log') size 1024K;
alter database add standby logfile group 7
('/global/oradata/ctsdb/stdby_redo07.log') size 1024K;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL
<CPU*2> DISCONNECT FROM SESSION;
為了防止以後primary和standby切換,可以在primary上也建立相應的standby redolog
15。設定Primary的歸檔位址
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=CTSDB.STANDBY LGWR' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;
16。測試Primary的歸檔能否應用到Standby
ALTER SYSTEM ARCHIVE LOG CURRENT;
17。停止Standby
alter database recover managed standby database cancel;
shutdown immediate;
18。切換到隻讀模式
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN READ ONLY;
19。切換回管理恢複模式
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL 8 DISCONNECT FROM SESSION;
以上為MAX PERFORMANCE模式的DataGuard
如果要改為MAX AVAILABILITY,進行如下操作:
檢查目前Primary庫的保護模式
select protection_mode from v$database;
轉換資料庫模式為MAX AVAILABILITY:
startup mount;
alter database set standby database to maximize availability;
alter database open;
如果要強制Primary一分種歸檔一次,那麼設定Primary的初始化參數ARCHIVE_LAG_TARGET:
alter system set ARCHIVE_LAG_TARGET=60 scope=both;
如果想要自動在Standby上應用Primary中建立資料檔案等操作,需要在Standby上設定:
alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both;
使用RMAN進行DataGuard環境的快速配置總結:
1. 預先設定好Standby上所需的參數檔案和路徑, 修改standby的fal_server和fal_client參數
2. 作Primay的聯機RMAN備份
3. 啟動Primay,随時都可以生成standby control file
4. 在Standby端,用生成的standby control file, mount database
5. 在Standby端,RMAN中作restore databse
6. 設定standby到RECOVER MANAGED狀态
Pirmay和Standby之間作switchover,此時Primary和Standby均為正常狀态,并且網絡正常。
Primary:
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
SHUTDOWN IMMEDIATE;
Standby:
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
SHUTDOWN;
STARTUP;
Primay:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Standby Failover到Primary,此時由于故障Primary當機或者網絡不通