ARCHIVE_LAG_TARGET参数的作用 -from others

本文详细介绍了Oracle数据库中ARCHIVE_LAG_TARGET参数的作用及其合理设置方法。此参数能够控制日志文件的切换时间,确保数据同步效率,并在Data Guard环境中减少数据丢失的风险。

ARCHIVE_LAG_TARGET参数的作用 -from others


(一) 设置archive_lag_target参数

1.     一旦设置了archive_lag_target初始化参数,数据库将会周期性的检查实例的当前重做日志。如果遇到下列情况,实例将会切换日志:

n 当前日志n秒前创建,当前日志的归档时间估计为m秒,n+m的值超过archive_lag_target参数设置。

n 当前日志包含重做记录。

2.     RAC环境中,实例总是使其他线程切换并归档他们的日志(如果他们滞后的话)。这是特别有用的,当集群中的一个实例比其他实例更空闲。

3.     archive_lag_target初始化参数指定在主数据库关闭或失效的事件中,备用数据库可以损失多少秒的重做数据(如果data guard环境没有被配置为no-data-loss模式)。它同时也指定了主数据库的当前日志可以跨越的时间上限(秒)。因为归档时间是个估计数,所以这不是一个精准的日志切换时间。

4.     以下语句设置日志切换间隔为30分钟(典型配置)

archive_lag_target=1800

5.     该参数的默认值为零,表示禁用基于时间的日志切换功能;

6.     即使没有备用数据库也可以设置archive_lag_target参数。例如:archive_lag_target可以设置为强制日志切换和归档;

7.     archive_lag_target是动态参数,应该使用alter system语句设置。

8.     在RAC环境中,每个实例的archive_lag_target参数必须设置为相同的值。

(二) 影响设置archive_lag_target的因素

1.     如果想设置archive_lag_target参数,应该考虑下列因素:

n 切换日志(也归档)的负载;

n 正常日志切换的频率;

n 备用数据库可以承受的重做数据丢失是多少。

2.     如果自然的日志切换已经比指定的切换间隔更频繁,设置archive_lag_target可能并不是非常有用。然而,重做日志产生的速度不规则的情况下,间隔可以为当前日志的覆盖时间范围提供一个上限限制;

3.     如果archive_lag_target被设置为很低的值,可能会影响性能。因为这样会强制频繁地切换日志;

4.     archive_lag_target应该设置成一个不会降低主数据库性能的值。

在DataGuard环境中,为了减少故障时数据损失,我们可以设置ARCHIVE_LAG_TARGET参数,强制进行日志切换。

ARCHIVE_LAG_TARGET参数可以设置一个时间,通过时间限制,指定数据库强制进行Log Switch,进行归档。

这个参数的缺省值是0,即为不启用该参数。该参数合理的取值范围在60 ~ 7200之间。
通常大于7200和小于1800不被推荐,低于30分钟的切换时间可能导致性能问题。

以下是我的一个生产环境的设置效果。
设置之前:

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

SQL> col name for a60
SQL> select name,COMPLETION_TIME from v$archived_log where name is not null;

NAME COMPLETION_TIME
------------------------------------------------------------ -------------------
/data2/oradata/STAT/archive/1_5441_593258512.dbf 2006-11-20 10:49:57
/data2/oradata/STAT/archive/1_5442_593258512.dbf 2006-11-20 15:49:50

由于数据库并不繁忙,日志很久才会切换一次。

设置archive_lag_target参数:

SQL> show parameter archive_lag

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
SQL> alter system set archive_lag_target=1800;

System altered.

SQL> show parameter archive_lag

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 1800

此时可以看到日志切换时间发生改变:

[oracle@STAT ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.2.0 - Production on Mon Nov 20 21:31:31 2006

Copyright (c) 1982, 2005Oracle. All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options

SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /data2/oradata/STAT/archive
Oldest online log sequence 5449
Next log sequence to archive 5451
Current log sequence 5451
SQL> !
[oracle@STAT ~]$ ll /data2/oradata/STAT/archive
total 125776
-rw-r----- 1 oracle oinstall 43030016 Nov 20 10:49 1_5441_593258512.dbf
-rw-r----- 1 oracle oinstall 43122688 Nov 20 15:49 1_5442_593258512.dbf
-rw-r----- 1 oracle oinstall 14172672 Nov 20 17:31 1_5443_593258512.dbf
-rw-r----- 1 oracle oinstall 3620864 Nov 20 18:02 1_5444_593258512.dbf
-rw-r----- 1 oracle oinstall 3511296 Nov 20 18:32 1_5445_593258512.dbf
-rw-r----- 1 oracle oinstall 3626496 Nov 20 19:02 1_5446_593258512.dbf
-rw-r----- 1 oracle oinstall 4903936 Nov 20 19:32 1_5447_593258512.dbf
-rw-r----- 1 oracle oinstall 3521536 Nov 20 20:02 1_5448_593258512.dbf
-rw-r----- 1 oracle oinstall 5144576 Nov 20 20:32 1_5449_593258512.dbf
-rw-r----- 1 oracle oinstall 3916800 Nov 20 21:02 1_5450_593258512.dbf

这个参数在DataGuard/Standby环境中是非常有效的。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25574072/viewspace-762145/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25574072/viewspace-762145/

<think>我们正在查询Oracle中ARCHIVE_LAG_TARGET参数的默认值。 根据引用[1]:在示例中,设置archive_lag_target参数前,通过`show parameter archive_lag_target`命令显示其默认值为0。 引用[2]提到:这个参数的缺省值是0,即为不启用该参数。 引用[3]中同样显示:在设置之前,该参数的值为0。 引用[5]也明确指出:archive_lag_target 的默认值为0。 因此,综合多个引用,我们可以确定:ARCHIVE_LAG_TARGET参数的默认值是0。 回答用户的问题:在Oracle中,ARCHIVE_LAG_TARGET参数的默认值为0。 同时,根据用户要求,生成相关问题: 1. 如何设置ARCHIVE_LAG_TARGET参数来优化归档日志切换? 2. 修改ARCHIVE_LAG_TARGET参数后需要重启数据库吗? 3. ARCHIVE_LAG_TARGET参数设置不当可能导致哪些问题? 注意:引用标识添加在回答中引用的位置。由于我们在回答中引用了多个引用的内容,可以在最后统一标注引用,但根据要求,我们在引用的段落末尾自然地添加引用标识。由于我们的回答是基于多个引用综合得出的,因此可以在关键结论处添加引用。 但是,请注意,用户的问题只要求查询默认值,因此我们可以直接给出答案,并在结论处标注引用。 按照要求,使用中文回答。 </think>### Oracle中ARCHIVE_LAG_TARGET参数的默认值 Oracle数据库的`ARCHIVE_LAG_TARGET`参数用于控制日志切换的强制时间间隔,主要影响Data Guard环境中的归档行为。根据官方文档和多个引用确认: - **默认值**: `ARCHIVE_LAG_TARGET`的默认值为 **0** 这意味着参数默认处于禁用状态,不会强制触发日志切换[^2][^5]。 具体验证方式: ```sql SQL> show parameter archive_lag_target; ``` 查询结果将显示: ```text NAME TYPE VALUE -------------------- ----------- ------------------------------ archive_lag_target integer 0 ``` (如引用[1][3]所示,修改前默认显示为0)[^1][^3]. #### 参数特性说明: 1. **禁用状态(0)**: 当值为0时,Oracle完全依赖redo log写满后的自然切换机制,不会基于时间间隔强制切换日志。 2. **启用状态(>0)**: 设置为正整数(单位:秒)后,系统会在指定时间间隔后强制切换日志并归档,例如: ```sql ALTER SYSTEM SET archive_lag_target=1800; -- 每30分钟强制切换 ``` 有效范围建议在60~7200秒(1分钟~2小时)之间[^2]。 3. **特殊用途**: 主要用于Data Guard环境,通过控制归档频率来平衡主备库间的数据延迟风险[^2][^5]。 > **注意**:修改此参数属于动态调整,通常不需要重启数据库实例[^1][^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值