Oracle Dataguard Standby Redo Log的两个实验(一)

2014-11-24 17:24:08 · 作者: · 浏览: 0

在Data Guard环境中,Standby Redo Log是一个比较特殊的日志类型。从最新的DG安装指导中,都推荐在Primary和Standby端,都配置Standby Redo Log。

简单的说,Standby Redo Log就是在Standby端应用传递Redo Log过程中,逐步执行的online redo log。Standby端虽然也有online redo log,但是在redo apply应用的过程中,是不使用online redo log的。即使是11g Active Data Guard支持apply中读取standby数据,这个操作也是read-only的,并不涉及当前实例redo log的生成(注意是生成)。所以,如果一直是在Standby角色,online redo log是不需要的。

Primary传递过来的redo log信息,是存放在standby redo log组内进行apply的。并且随着主库Primary日志的切换动作而切换。这也就是为什么推荐standby redo log的大小和Primary online redo log的大小保持一致的原因。

下面会从维护角度,讨论Standby Redo log维护过程中的方法。


--------------------------------------分割线 --------------------------------------


相关参考:


--------------------------------------分割线 --------------------------------------


1、环境介绍



数据库版本为11.2.0.4,已经构建好DG环境。Primary数据库实例名ora11g。



SQL> select name, DATABASE_ROLE from v$database;



NAME DATABASE_ROLE


--------- ----------------


ORA11G PRIMARY



Primary上也是需要配置standby redo log的。但是,这个redo log和Standby端的online redo log一样,都是在角色switch/failover之后,才会发挥作用。


SQL> col dbid for a20;


SQL> select group#, dbid, sequence#, archived, status from v$standby_log;



GROUP# DBID SEQUENCE# ARCHIVED STATUS


---------- -------------------- ---------- -------- ----------


4 UNASSIGNED 0 YES UNASSIGNED


5 UNASSIGNED 0 YES UNASSIGNED


6 UNASSIGNED 0 YES UNASSIGNED



文件自动管理参数设置为Auto。



SQL> show parameter standby_file



NAME TYPE VALUE


------------------------------------ ----------- ------------------------------


standby_file_management string AUTO



2、Primary端Standby Redo Log配置



Primary角色下,Standby Redo Log是不使用的。原则上也没有什么特殊的用途。所以,我们查看v$standby_log视图时查看到的Primary端状态都是unsigned,也就是没有使用。

在Primary正常Read Write状态下,我们是可以添加standby log group的。



SQL> alter database add standby logfile group 8 size 100m;


Database altered



SQL> select group#, dbid, sequence#, archived, status from v$standby_log;



GROUP# DBID SEQUENCE# ARCHIVED STATUS


---------- -------------------- ---------- -------- ----------


4 UNASSIGNED 0 YES UNASSIGNED


5 UNASSIGNED 0 YES UNASSIGNED


6 UNASSIGNED 0 YES UNASSIGNED


8 UNASSIGNED 0 YES UNASSIGNED



在v$logfile中,可以看到对应的添加文件。由于使用的OMF特性,创建成员组为两个,在recovery area中有对应镜像。



SQL> select group#, type, member from v$logfile;



GROUP# TYPE MEMBER


---------- ------- --------------------------------------------------------------------------------

(篇幅原因,有省略……)


7 ONLINE /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_7_9pclt1lt_.log

8 STANDBY /u01/app/oradata/ORA11G/onlinelog/o1_mf_8_9pgqt9hg_.log


8 STANDBY /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_8_9pgqtcgj_.log


16 rows selected



在standby端,我们查看是否有对应standby redo log自动添加。



SQL> select group#, sequence#, dbid,status from v$standby_log;



GROUP# SEQUENCE# DBID STATUS


---------- ---------- -------------------- ----------


4 34 4239941846 ACTIVE


5 0 UNASSIGNED UNASSIGNED


6 0 UNASSIGNED UNASSIGNED



Primary端删除standby redo log。



SQL> alter database drop standby logfile group 8;


Database altered



SQL> select group#, dbid, sequence#, archived, status from v$standby_log;



GROUP# DBID SEQUENCE# ARCHIVED STATUS


----------