SQL> alter database force logging;
Database altered
SQL> select force_logging from v$database;
FORCE_LOGGING
-------------
YES
下面构建standby log file在主库中。一些文献没有这个步骤,而只关注physical standby端的standby log创建。Standby log file是作为Redo Transfer过程的一个中转。通常而言,当日志被传递到Standby端,就应该立即应用Apply。如果此时没有开启应用过程,是会把日志暂存在这个地方的。对每一个standby,都需要创建一个或者多组standby log group。对于Primary Database,由于可能有role transition的情况,所以也需要进行配置。
注意:Primary Database中使用了OMF,我们可以很方便的进行创建standby log group。
SQL> alter database add standby logfile size 100m;
Database altered
SQL> alter database add standby logfile size 100m;
Database altered
SQL> alter database add standby logfile size 100m;
Database altered
也形成了配置镜像结构。
SQL> select group#, member from v$logfile where type='STANDBY';
GROUP# MEMBER
---------- --------------------------------------------------------------------------------
4 /u01/app/oradata/ORA11G/onlinelog/o1_mf_4_9nn5ntsv_.log
4 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_4_9nn5o0jw_.log
5 /u01/app/oradata/ORA11G/onlinelog/o1_mf_5_9nn5oq6d_.log
5 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_5_9nn5owlv_.log
6 /u01/app/oradata/ORA11G/onlinelog/o1_mf_6_9nn5p82m_.log
6 /u01/app/fast_recovery_area/ORA11G/onlinelog/o1_mf_6_9nn5pc70_.log
6 rows selected
视图v$standby_log,可以查看日志使用情况。
SQL> select group#, dbid, bytes from v$standby_log;
GROUP# DBID BYTES
---------- ---------------------------------------- ----------
4 UNASSIGNED 104857600
5 UNASSIGNED 104857600
6 UNASSIGNED 104857600
最后进行主库参数修改,具体来说需要修改六个参数。
参数log_archive_config用于指定环境中DG范围。
SQL> show parameter log_archive_config
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_config string
SQL> alter system set log_archive_config='DG_CONFIG=(ora11g,ora11gsy)' scope=spfile;
System altered
要添加归档日志传输位置,archive_dest参数包括两种类型位置,location和service。Location参数表示本地目录归档日志存放,而service表示通过Oracle NET服务传输过去。要实现Dataguard组件,需要将日志指定到service里面。
SQL> alter system set log_archive_dest_2='SERVICE=ora11gsy valid_for=(online_logfiles,primary_role) db_unique_name=ora11gsy' scope=spfile;
System altered
SQL> alter system set log_archive_dest_state_2=enable;
System altered
注意:valid_for参数表示这个传递通道在什么时候发挥作用。Online_logfiles和Primary_role表示当前实例为Primary角色的时候,才传递日志。这样的配置是最常用的方式。
Name convert参数配置,对日志文件和数据库文件而言,目录是一个重要标识项目。Primary和Standby在转换过程中,要确立变换替换规则,这个过程需要进行实际的研究。
SQL> alter system set db_file_name_convert='ORA11G','ORA11GSY' scope=spfile;
System altered
SQL> alter system set log_file_name_convert='ORA11G','ORA11GSY' scope=spfile;
System altered
注意:在一些资料中,介绍11g里如果采用了OMF策略,这个参数是可以不设置的。
最后参数是standby_file_management策略,默认是manual。该参数用于控制Primary与Standby之间文件创建的方式。标准的DG环境下,在Primary DB下添加数据文件,会自动在Standby中增加文件。
SQL> show parameter standby_file_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
stand