分析ARCH wait on SENDREQ等待事件

63次阅读
没有评论

共计 3891 个字符,预计需要花费 10 分钟才能阅读完成。

本篇内容介绍了“分析 ARCH wait on SENDREQ 等待事件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

客户库,AWR 报告采样间隔 8 小时,ARCH wait on SENDREQ 等待事件平均等待时间较长,约 3 秒。

恰巧告警日志中提示无法分配日志,虽然 archive_lag_target 参数设置较小(为 900),但是数据库有 5 个重做日志组,按理说应该不会出现无法分配日志组的情况出现。由于这个等待事件的出现,故猜想主备库之间的网络可能较差,导致主库的归档无法及时归档到备库上,从而引发 cannot allocate new log。

Tue Jul 19 22:19:33 2011
Thread 1 cannot allocate new log, sequence 26887
Private strand flush not complete

从 Metalink(MOS)上可查到如下关于 ARCH wait on SENDREQ 等待事件的信息

《Data Guard Wait Events》

“ARCH wait on SENDREQ”This wait event monitors the amount of time spent by all archiver processes to write the received redo to disk as well as open and close the remote archived redo logs.

《Troubleshooting 9i Data Guard Network Issues》

The‘ARCH wait on SENDREQ’wait event increases during a log switch period. This event’s average wait time also increases as the network round trip time (RTT) increases. If this wait event is in the top 5, then it may be indicative of a saturated network or a poorly configured network. Also, make sure that enough redo log groups are configured so that any delay in remote archiving does not result in a hung database due to no available online redo logs.

在 log switch 阶段会出现 ARCH wait on SENDREQ 等待事件,如果此事件出现在 Top5 等待事件中,说明网络满负载或网络配置问题(总之,网络较差)

还有一篇,说是 metalink 上的,不过没找到原文:

1)It means that there is a slow network between primary and standby database.

2)It also means that there is a chance of slow performance on disk where remote archiving is happening.

Solution:

1.Please get in touch with your network admin and check the network response.

2.If the remote destination is slow and archiver is taking longer to archive to that destination, then the user needs to allocate more redo log groups so that there is a logfile available for a logswitch to switch into, and not wait for the archiver to finish archiving to the destination.

3.One more workaround you can use is to set below parameter in primary site:

_LOG_ARCHIVE_CALLOUT=’LOCAL_FIRST=TRUE’

第三种解决方案提示修改隐含参数:_LOG_ARCHIVE_CALLOUT

_LOG_ARCHIVE_CALLOUT=’LOCAL_FIRST=TRUE’

If the above parameter is set then the ARCH process will begin archiving to the local destination first.  Once the redo log has been completely and successfully archived to at least one localdestination, it will then be transmitted to the remote destination. This is the default behavior. beginning with 
Oracle Database 
10g Release 1.

Starting in 9.2.0.7 patchsets, one ARCH process will begin acting as a‘dedicated’archiver, handling only local archival duties. It will not perform. remote log shipping or service FAL requests. This is a backport of behavior. from 10gR1 to 9iR2.

我对上文 This is the default behavior. beginning with 
Oracle Database 
10g Release 1. 表示质疑,因为从我本地 11.2.0.1 的库来看,此隐含参数默认还是空。

尝试在非生产库上修改此隐含参数做测试:

SQL set linesize 132
SQL column name format a30
SQL column value format a25
SQL select
2  x.ksppinm  name,
3  y.ksppstvl  value,
4  y.ksppstdf  isdefault,
5  decode(bitand(y.ksppstvf,7),1,’MODIFIED’,4,’SYSTEM_MOD’,’FALSE’)  ismod,
6  decode(bitand(y.ksppstvf,2),2,’TRUE’,’FALSE’)  isadj
7  from
8  sys.x$ksppi x,
9  sys.x$ksppcv y
10  where
11  x.inst_id = userenv(‘Instance’) and
12  y.inst_id = userenv(‘Instance’) and
13  x.indx = y.indx and
14  x.ksppinm like‘%_ par%’
15  order by
16  translate(x.ksppinm,‘_’,‘‘)
17  /
输入 par 的值:  callout
原值   14:  x.ksppinm like‘%_ par%’
新值   14:  x.ksppinm like‘%_callout%’

NAME  VALUE  ISDEFAULT ISMOD  ISADJ
—————————— ————————- ——— ———- —–
_log_archive_callout  TRUE  FALSE  FALSE

SQL alter system set“_log_archive_callout”=’LOCAL_FIRST=TRUE

系统已更改。

SQL set linesize 132
SQL column name format a30
SQL column value format a25
SQL select
2  x.ksppinm  name,
3  y.ksppstvl  value,
4  y.ksppstdf  isdefault,
5  decode(bitand(y.ksppstvf,7),1,’MODIFIED’,4,’SYSTEM_MOD’,’FALSE’)  ismod,
6  decode(bitand(y.ksppstvf,2),2,’TRUE’,’FALSE’)  isadj
7  from
8  sys.x$ksppi x,
9  sys.x$ksppcv y
10  where
11  x.inst_id = userenv(‘Instance’) and
12  y.inst_id = userenv(‘Instance’) and
13  x.indx = y.indx and
14  x.ksppinm like‘%_ par%’
15  order by
16  translate(x.ksppinm,‘_’,‘‘)
17  /
输入 par 的值:  callout
原值   14:  x.ksppinm like‘%_ par%’
新值   14:  x.ksppinm like‘%_callout%’

NAME  VALUE  ISDEFAULT ISMOD  ISADJ
—————————— ————————- ——— ———- —–
_log_archive_callout  LOCAL_FIRST=TRUE  TRUE  SYSTEM_MOD FALSE

综上:我认为应该仔细检查一下用户主备库网络情况,检查客户备库磁盘 IO。

“分析 ARCH wait on SENDREQ 等待事件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计3891字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)