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;
[oracle@localhost 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
[oracle@localhost stby]$ cp control01.ctl control02.ctl
[oracle@localhost 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下
[oracle@localhost oradata]$cp orcl/* stby
三、进入Primary库的密码文件存放路径,复制密码文件
[oracle@localhost ~]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ cp orapworcl orapwstby
四、在Physical Standby库上操作
1、编辑standby库参数文件
[oracle@localhost tmp]$vi /tmp/initstby.ora,增加下面内容
并且修改相关数据库文件的路径为standby库的真实存放路径,请见下图
2、用编辑好的initstby.ora参数文件打开standby库
[oracle@localhost 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文件,增加以下内容
[oracle@localhost admin]$ vi listener.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/