参数db_recovery_file_dest,log_archive_dest,log_archive_dest_n

今天看了下 oracle归档相关的三个参数(db_recovery_file_dest,log_archive_dest,log_archive_dest_n ),也做了下实验,体会了一下三个参数的区别,就将相关的内容记录下来。

下面对三个参数进行简单的说明:

DB_RECOVERY_FILE_DEST:指定闪回恢复区路径,默认的归档日志存放于DB_RECOVERY_FILE_DEST指定的闪回恢复区中;

LOG_ARCHIVE_DEST:指定归档文件存放的路径,该路径只能是本地磁盘,默认为’’;

LOG_ARCHIVE_DEST_n:默认值为’’。Oracle最多支持把日志文件归档到31个地方,n从1到31(好像oracle 10g是10个地方)。归档地址可以为本地磁盘,或者网络设备。


查看oracle的版本 及 是否归档

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE	11.2.0.3.0	Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

SQL> archive log list;
Database log mode<span style="white-space:pre">	</span>       Archive Mode
Automatic archival<span style="white-space:pre">	</span>       Enabled
Archive destination<span style="white-space:pre">	</span>       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     98
Next log sequence to archive   100
Current log sequence<span style="white-space:pre">	</span>       100

查看参数 db_recovery_file_dest

SQL> show parameter db_recovery;

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest		     string	 /u01/app/fast_recovery_area
db_recovery_file_dest_size	     big integer 4122M

查看参数 log_archive_dest,log_archive_dest_n

SQL> show parameter log_archive

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
log_archive_config		     string
log_archive_dest		     string
log_archive_dest_1		     string
log_archive_dest_10		     string
log_archive_dest_11		     string
log_archive_dest_12		     string
log_archive_dest_13		     string
log_archive_dest_14		     string
log_archive_dest_15		     string
log_archive_dest_16		     string
log_archive_dest_17		     string

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_18		     string
log_archive_dest_19		     string
log_archive_dest_2		     string
log_archive_dest_20		     string
log_archive_dest_21		     string
log_archive_dest_22		     string
log_archive_dest_23		     string
log_archive_dest_24		     string
log_archive_dest_25		     string
log_archive_dest_26		     string
log_archive_dest_27		     string

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_28		     string
log_archive_dest_29		     string
log_archive_dest_3		     string
log_archive_dest_30		     string
log_archive_dest_31		     string
log_archive_dest_4		     string
log_archive_dest_5		     string
log_archive_dest_6		     string
log_archive_dest_7		     string
log_archive_dest_8		     string
log_archive_dest_9		     string

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_1	     string	 enable
log_archive_dest_state_10	     string	 enable
log_archive_dest_state_11	     string	 enable
log_archive_dest_state_12	     string	 enable
log_archive_dest_state_13	     string	 enable
log_archive_dest_state_14	     string	 enable
log_archive_dest_state_15	     string	 enable
log_archive_dest_state_16	     string	 enable
log_archive_dest_state_17	     string	 enable
log_archive_dest_state_18	     string	 enable
log_archive_dest_state_19	     string	 enable

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_2	     string	 enable
log_archive_dest_state_20	     string	 enable
log_archive_dest_state_21	     string	 enable
log_archive_dest_state_22	     string	 enable
log_archive_dest_state_23	     string	 enable
log_archive_dest_state_24	     string	 enable
log_archive_dest_state_25	     string	 enable
log_archive_dest_state_26	     string	 enable
log_archive_dest_state_27	     string	 enable
log_archive_dest_state_28	     string	 enable
log_archive_dest_state_29	     string	 enable

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_3	     string	 enable
log_archive_dest_state_30	     string	 enable
log_archive_dest_state_31	     string	 enable
log_archive_dest_state_4	     string	 enable
log_archive_dest_state_5	     string	 enable
log_archive_dest_state_6	     string	 enable
log_archive_dest_state_7	     string	 enable
log_archive_dest_state_8	     string	 enable
log_archive_dest_state_9	     string	 enable
log_archive_duplex_dest 	     string
log_archive_format		     string	 %t_%s_%r.dbf

NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
log_archive_local_first 	     boolean	 TRUE
log_archive_max_processes	     integer	 4
log_archive_min_succeed_dest	     integer	 1
log_archive_start		     boolean	 FALSE
log_archive_trace		     integer	 0
可以看到,log_archive_dest,log_archive_dest_n都是没有设置值的,是处于默认状态, 且log_archive_dest_n中的n是从1-31的,与10g好像是不同的。


看看归档日志记录

SQL> SELECT RECID,STAMP,NAME,SEQUENCE#,ARCHIVED,DELETED,STATUS FROM V$ARCHIVED_LOG;

     RECID	STAMP NAME												    SEQUENCE# ARC DEL S
---------- ---------- ---------------------------------------------------------------------------------------------------- ---------- --- --- -
	 1  871828407 /u01/app/fast_recovery_area/ORCL/archivelog/2015_02_16/o1_mf_1_98_bg33sqkz_.arc				   98 YES NO  A
	 2  871828746 /u01/app/fast_recovery_area/ORCL/archivelog/2015_02_16/o1_mf_1_99_bg344b4q_.arc				   99 YES NO  A

可以发现,目前的归档日志都在闪回恢复区 db_recovery_file_dest 指定的路径” /u01/app/fast_recovery_area“中


上面只是查看一下基本信息,下面来对相关的参数进行设置

先来设置参数 

log_archive_dest

SQL> alter system set log_archive_dest='/home/oracle/archivelog' scope=both;
alter system set log_archive_dest='/home/oracle/archivelog' scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16018: cannot use LOG_ARCHIVE_DEST with LOG_ARCHIVE_DEST_n or DB_RECOVERY_FILE_DEST


SQL> alter system set db_recovery_file_dest='' scope=both;

System altered.

SQL> alter system set log_archive_dest='/home/oracle/archivelog' scope=both;

System altered.
可以看到,当db_recovery_file_dest 或者 log_archive_dest_n 有值的时候,是不能设置 log_archive_dest,所以需现将db_recovery_file_dest 和 log_archive_dest_n中的非空值设置为空。


再来切换归档日志,看看日志的相关信息

SQL> alter system switch logfile;

System altered.

SQL> SELECT RECID,STAMP,NAME,SEQUENCE#,ARCHIVED,DELETED,STATUS FROM V$ARCHIVED_LOG;

     RECID	STAMP NAME												    SEQUENCE# ARC DEL S
---------- ---------- ---------------------------------------------------------------------------------------------------- ---------- --- --- -
	 1  871828407 /u01/app/fast_recovery_area/ORCL/archivelog/2015_02_16/o1_mf_1_98_bg33sqkz_.arc				   98 YES NO  A
	 2  871828746 /u01/app/fast_recovery_area/ORCL/archivelog/2015_02_16/o1_mf_1_99_bg344b4q_.arc				   99 YES NO  A
	 3  871831654 /home/oracle/archivelog/1_100_870599824.dbf								  100 YES NO  A

可以看出,新的归档日志已经在log_archive_dest 设置的目录中了。

使用了log_archive_dest 这个参数,还有一个配套使用的参数 

log_archive_duplex_dest :该初始化参数用于指定归档日志所在的第二个目录,它与参数LOG_ARCHIVE_DEST同时使用,但不能与LOG_ARCHIVE_DEST_n同时使用。该初始化参数是动态参数,可以使用ALTER  SYSTEM命令进行修改

SQL> alter system set log_archive_duplex_dest='/home/oracle/archivelog_duplex' scope=both;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> SELECT RECID,STAMP,NAME,SEQUENCE#,ARCHIVED,DELETED,STATUS FROM V$ARCHIVED_LOG;

     RECID	STAMP NAME												    SEQUENCE# ARC DEL S
---------- ---------- ---------------------------------------------------------------------------------------------------- ---------- --- --- -
	 1  871828407 /u01/app/fast_recovery_area/ORCL/archivelog/2015_02_16/o1_mf_1_98_bg33sqkz_.arc				   98 YES NO  A
	 2  871828746 /u01/app/fast_recovery_area/ORCL/archivelog/2015_02_16/o1_mf_1_99_bg344b4q_.arc				   99 YES NO  A
	 3  871831654 /home/oracle/archivelog/1_100_870599824.dbf								  100 YES NO  A
	 4  871832397 /home/oracle/archivelog/1_101_870599824.dbf								  101 YES NO  A
	 5  871832397 /home/oracle/archivelog_duplex/1_101_870599824.dbf							  101 YES NO  A
可以看到新切换的归档日志已经 1_101_870599824.dbf 在目录 /home/oracle/archivelog 和 /home/oracle/archivelog_duplex 同时存在


log_archive_dest_n

下面看看这个参数,先来更改这个参数

SQL> alter system set log_archive_dest_1='location=/home/oracle/archivelog/log_archive_dest_1' scope=both;
alter system set log_archive_dest_1='location=/home/oracle/archivelog/log_archive_dest_1' scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST

也报错了,在LOG_ARCHIVE_DEST 或 LOG_ARCHIVE_DUPLEX_DEST 不为空时,是不能设置这个值,因为上面的实验我将这两个个值已经设置了。

还有一点要注意,由于log_archive_dest_n 可以备份到远程机器上,所以在路径的地方加了 location关键字,通过设置关键词location或service,该参数指向的路径可以是本地或远程的。

将参数 LOG_ARCHIVE_DEST 和 LOG_ARCHIVE_DUPLEX_DEST 设置为空

SQL> alter system set log_archive_dest='' scope=both;
alter system set log_archive_dest='' scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16022: LOG_ARCHIVE_DEST cannot be NULL because LOG_ARCHIVE_DUPLEX_DEST is non-NULL


SQL> alter system set LOG_ARCHIVE_DUPLEX_DEST='' scope=both;

System altered.

SQL> alter system set LOG_ARCHIVE_DEST='' scope=both;

System altered.
再次验证了,LOG_ARCHIVE_DUPLEX_DEST 是依赖与LOG_ARCHIVE_DEST的,在 LOG_ARCHIVE_DUPLEX_DEST不为空的情况下,是不能单独设置LOG_ARCHIVE_DEST为空的。

下面设置 log_archive_dest_1 和 log_archive_dest_2 两个参数

SQL> alter system set log_archive_dest_1='location=/home/oracle/archivelog_dest_1' scope=both;

System altered.

SQL> alter system set log_archive_dest_2='location=/home/oracle/archivelog_dest_2' scope=both;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> SELECT RECID,STAMP,NAME,SEQUENCE#,ARCHIVED,DELETED,STATUS FROM V$ARCHIVED_LOG;

     RECID	STAMP NAME												    SEQUENCE# ARC DEL S
---------- ---------- ---------------------------------------------------------------------------------------------------- ---------- --- --- -
	 1  871828407 /u01/app/fast_recovery_area/ORCL/archivelog/2015_02_16/o1_mf_1_98_bg33sqkz_.arc				   98 YES NO  A
	 2  871828746 /u01/app/fast_recovery_area/ORCL/archivelog/2015_02_16/o1_mf_1_99_bg344b4q_.arc				   99 YES NO  A
	 3  871831654 /home/oracle/archivelog/1_100_870599824.dbf								  100 YES NO  A
	 4  871832397 /home/oracle/archivelog/1_101_870599824.dbf								  101 YES NO  A
	 5  871832397 /home/oracle/archivelog_duplex/1_101_870599824.dbf							  101 YES NO  A
	 6  871834042 /home/oracle/archivelog_dest_1/1_102_870599824.dbf 							  102 YES NO  A
	 7  871834042 /home/oracle/archivelog_dest_2/1_102_870599824.dbf 							  102 YES NO  A

7 rows selected.
现在新的归档日志 1_102_870599824.dbf 已经分别存在于 /home/oracle/archivelog_dest_1 和 /home/oracle/archivelog_dest_2 中

总结:

1、 如果设置了DB_RECOVERY_FILE_DEST,就不能设置LOG_ARCHIVE_DEST,默认的归档日志存放于DB_RECOVERY_FILE_DEST指定的闪回恢复区中。可以设置LOG_ARCHIVE_DEST_n,如果这样,那么归档日志不再存放于DB_RECOVERY_FILE_DEST中,而是存放于LOG_ARCHIVE_DEST_n设置的目录中。如果想要归档日志继续存放在DB_RECOVERY_FILE_DEST中,可以通过如下命令:alter system set log_archive_dest_1=’location=USE_DB_RECOVERY_FILE_DEST’;
2、 如果设置了LOG_ARCHIVE_DEST,就不能设置LOG_ARCHIVE_DEST_n和DB_RECOVERY_FILE_DEST。如果设置了LOG_ARCHIVE_DEST_n,就不能设置LOG_ARCHIVE_DEST。也就是说,LOG_ARCHIVE_DEST参数和DB_RECOVERY_FILE_DEST、LOG_ARCHIVE_DEST_n都不共存。而DB_RECOVERY_FILE_DEST和LOG_ARCHIVE_DEST_n可以共存。
3、 LOG_ARCHIVE_DEST只能与LOG_ARCHIVE_DUPLEX_DEST共存。这样可以设置两个归档路径。LOG_ARCHIVE_DEST设置一个主归档路径,LOG_ARCHIVE_DUPLEX_DEST设置一个从归档路径。所有归档路径必须是本地的。
4、 如果LOG_ARCHIVE_DEST_n设置的路径不正确,那么Oracle会在设置的上一级目录归档。


其他的相关参数说明

LOG_ARCHIVE_DEST_STATE_N
该初始化参数用于指定归档目录的可用状态,默认值为ENABLE。当设置该参数为ENABLE时,会激活相应的归档位置;当设置该参数为DEFER时,会禁用相应的归档位置;当设置该参数为ALTERNATE时,如果归档到其他位置失败,则会使用该归档位置。该初始化参数是动态参数,可以使用ALTER  SESSION或ALTER  SYSTEM命令进行修改。


LOG_ARCHIVE_FORMAT
该初始化参数用于指定归档日志文件名称的格式。当指定归档日志的名称格式时,可以使用多种格式符,其中%S和%S(用0填充)用于标记日志序列号,%T和%T(用0填充)用于标记线程号,%D用于标记数据库ID号,%R用于标记数据库副本的ID号。因为该初始化参数是静态参数,所以修改后必须重新启动例程。


LOG_ARCHIVE_MAX_PROCESSES
该初始化参数用于指定要启动的归档进程个数,其数值范围为1~10,默认值为2。该初始化参数是动态参数,可以使用ALTER  SYSTEM命令进行修改。一般情况下不建议修改该值。


LOG_ARCHIVE_MIN_SUCCEED_DEST
该初始化参数用于指定归档到本地位置的最小成功次数,默认值为1.注意,当设置了该参数之后,只有归档到本地位置个数达到该参数值时,重做日志才能被覆盖。该初始化参数是动态参数,可以使用ALTER  SESSION或ALTER  SYSTEM命令进行修改。


LOG_ARCHIVE_TRACE
该初始化参数用于控制归档日志的跟踪级别,其数值范围为0、1、2、4、8、16、32、64、128,默认值为0。当设置该参数为0时,会禁止跟踪归档日志;当设置该参数为1时,会激活跟踪归档日志文件;当设置该参数为2时,会跟踪每个归档位置的状态;当设置该参数为4时,会跟踪归档操作步骤;当设置该参数为8时,会跟踪归档位置活动;当设置该参数为16时,会跟踪详细的归档位置活动;当设置该参数为32时,会跟踪归档位置参数的修改;当设置该参数为64时,会跟踪ARCn进程活动;当设置该参数为128时,会跟踪FAL进程的相关活动。该初始化参数是动态参数,可以使用ALTER  SYSTEM命令进行修改。



参考文档:

http://blog.itpub.net/25744374/viewspace-732083

http://blog.csdn.net/tanguooo19866/article/details/8508953








  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值