DG環境介紹
OS:CentOS
Oracle Version:10.2.0.4
Redo傳輸模式:LGWR ASYNC
Primary資料庫 :
ORACLE_SID=orcl
資料檔案、控制檔案與日志檔案存放路徑 /oracle/oradata/orcl
Physical standby資料庫:
ORACLE_SID=stby
資料檔案、控制檔案與日志檔案存放路徑 /oracle/oradata/stby
一、在Primary庫上操作
1、打開設定force logging
SQL>sqlplus / as sysdba
SQL>alter database force logging;
2、啟動歸檔
SQL>alter database archivelog;
3、修改Primary庫的參數檔案,步驟如下
SQL>create pfile='/tmp/initpri.ora' from spfile;
SQL>create pfile='/tmp/initstby.ora' from spfile;
[[email protected] tmp]$ vi initpri.ora,增加下面内容
4、用initpri.ora打開Primary庫
SQL>startup pfile='/tmp/initpri.ora' mount;
SQL>create spfile from pfile='/tmp/initpri.ora';
5、建立standby controlfile
SQL>alter database create standby controlfile as ‘/oracle/oradata/stby/control01.ctl’;
6、複制standby controlfile
[[email protected] stby]$ cp control01.ctl control02.ctl
[[email protected] stby]$ cp control01.ctl control03.ctl
7、建立standby online redo,大小與online logfile一樣,組數比online logfile多一組(這一步是為了以後主備切換用)
SQL>alter database add standby logfile group 4 '/oracle/oradata/orcl/standby_redo01.log' size 50m;
SQL>alter database add standby logfile group 5 '/oracle/oradata/orcl/standby_redo02.log' size 50m;
SQL>alter database add standby logfile group 6 '/oracle/oradata/orcl/standby_redo03.log' size 50m;
SQL>alter database add standby logfile group 7 '/oracle/oradata/orcl/standby_redo04.log' size 50m;
注:Data Guard在最大保護和最高可用性模式下,Standby資料庫必須配置standby redo log,正常情況下僅需要在Standby端進行配置,考慮到主備切換,在primary端亦進行配置。Standby redo log組數公式>=(每個instance日志組個數+1)*instance個數
二、關閉Primary庫,拷貝資料檔案到/oracle/oradata/stby下
[[email protected] oradata]$cp orcl/* stby
三、進入Primary庫的密碼檔案存放路徑,複制密碼檔案
[[email protected] ~]$ cd $ORACLE_HOME/dbs
[[email protected] dbs]$ cp orapworcl orapwstby
四、在Physical Standby庫上操作
1、編輯standby庫參數檔案
[[email protected] tmp]$vi /tmp/initstby.ora,增加下面内容
并且修改相關資料庫檔案的路徑為standby庫的真實存放路徑,請見下圖
2、用編輯好的initstby.ora參數檔案打開standby庫
[[email protected] tmp]$export ORACLE_SID=stby
SQL>startup pfile='/tmp/initstby.ora' mount;
SQL>create spfile from pfile='/tmp/initstby.ora';
3、建立standby online redo
SQL>alter database add standby logfile group 4 '/oracle/oradata/stby/standby_redo01.log' size 50m;
SQL>alter database add standby logfile group 5 '/oracle/oradata/stby/standby_redo02.log' size 50m;
SQL>alter database add standby logfile group 6 '/oracle/oradata/stby/standby_redo03.log' size 50m;
SQL>alter database add standby logfile group 7 '/oracle/oradata/stby/standby_redo04.log' size 50m;
五、編輯listener.ora與tnsnames.ora檔案,增加以下内容
[[email protected] admin]$ vi listener.ora
[[email protected] admin]$ vi tnsnames.ora
六、在standby庫上啟動redo應用
SQL>alter database recover managed standby database disconnect from session
七、測試redo傳輸
1、在Primary庫上切換日志
SQL>alter system switch logfile
2、驗證備庫是否有新的歸檔檔案
SQL>select sequence#,first_time,next_time from v$archived_log order by sequence#;
關于dataguard的理論介紹
http://blog.itpub.net/35489/viewspace-617885/