客户数据库版本为oracle 11.2.0.4,在给客户巡检数据库过程中,进行DB Alert Log分析,发现alertSID.log特别大,使用vi进行编辑查看发现,日志文件中出现大量Fatal NI connect error 12170/TNS-12535: TNS:operation timed out/TNS-00505: Operation timed out告警信息,如下图所示:
大量的12710/12535/00505告警日志使alert log变得非常大,使整个告警日志易读性很差,为了后期维护方便,对alert日志大量连接报错告警信息进行处理。
1、原因分析
查询官方文档了解到本次相关alert告警信息本质上还是消息,其实不属于报错范畴,消息显示指定的客户端(IP地址)连接超时。在11gR1之前,类似‘Fatal NI connect error 12170’的信息将被记录到 sqlnet.log,在11gR1以后,是由于数据库新特性自动诊断存储仓库(ADR)特性默认开启导致这些信息写入到了alert日志文件。
2、解决办法
2.1、oracle单实例(windows环境为例)
windows环境下直接找到相应文件进行内容添加即可,若是linux单机非ASM环境,切换到oracle用户下操作即可。
在sqlnet.ora文件里面增加如下内容:
SQLNET.EXPIRE_TIME=10
DIAG_ADR_ENABLED = OFF
SQLNET.INBOUND_CONNECT_TIMEOUT=0
在listener.ora文件中增加如下内容:
DIAG_ADR_ENABLED_LISTENER = OFF
INBOUND_CONNECT_TIMEOUT_LISTENER = 0
进行监听的重启或者重新加载监听,让新增参数生效,如图:
在接下来的时间进行trace日志的观察,不在生成Fatal NI connect error 12170日志。
2.2、rac数据库处理
若数据库为rac数据库,处理方式和单机基本差不多。修改完成了为了不影响使用,两个节点都需要进行监听的重新加载。具体操作如下:
1、使用lsnrctl status查看listener.ora路径,如下:
su - grid
[grid@xiaozc2:/home/grid]$lsnrctl status
2、修改监听文件,将如下内容添加进文件,需要rac两个节点都执行,如下:
[grid@xiaozc1:/home/grid]$cd /g01/grid/app/11.2.0/grid/network/admin
[grid@xiaozc1:/g01/grid/app/11.2.0/grid/network/admin]$ls
endpoints_listener.ora listener.ora listener.ora.bak samples shrept.lst sqlnet.ora
[grid@xiaozc1:/g01/grid/app/11.2.0/grid/network/admin]$vi listener.ora
INBOUND_CONNECT_TIMEOUT_LISTENER = 0 --new add
DIAG_ADR_ENABLED_LISTENER = OFF --new add
[grid@xiaozc2:/home/grid]$cd /g01/grid/app/11.2.0/grid/network/admin
[grid@xiaozc2:/g01/grid/app/11.2.0/grid/network/admin]$ls
endpoints_listener.ora listener.ora listener.ora.bak samples shrept.lst sqlnet.ora
[grid@xiaozc2:/g01/grid/app/11.2.0/grid/network/admin]$vi listener.ora
INBOUND_CONNECT_TIMEOUT_LISTENER = 0 --new add
DIAG_ADR_ENABLED_LISTENER = OFF --new add
3、修改sqlnet.ora文件
修改sqlnet.ora文件里,在两个节点的文件里都需要添加如下内容
[grid@xiaozc1:/g01/grid/app/11.2.0/grid/network/admin]$vi sqlnet.ora
# sqlnet.ora.xiaozc1 Network Configuration File: /g01/grid/app/11.2.0/grid/network/admin/sqlnet.ora.xiaozc1
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /g01/grid/app/grid
DIAG_ADR_ENABLED = OFF --new add
SQLNET.INBOUND_CONNECT_TIMEOUT =0 --new add
[grid@xiaozc2:/g01/grid/app/11.2.0/grid/network/admin]$vi sqlnet.ora
# sqlnet.ora.xiaozc2 Network Configuration File: /g01/grid/app/11.2.0/grid/network/admin/sqlnet.ora.xiaozc2
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ADR_BASE = /g01/grid/app/grid
DIAG_ADR_ENABLED = OFF --new add
SQLNET.INBOUND_CONNECT_TIMEOUT =0 --new add
4、两个节点都重新加载监听
[grid@xiaozc1:/home/grid]$lsnrctl
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-MAY-2022 18:11:16
Copyright (c) 1991, 2013, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information.
LSNRCTL> reload
[grid@xiaozc2:/home/grid]$lsnrctl
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-MAY-2022 18:12:16
Copyright (c) 1991, 2013, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information.
LSNRCTL> reload
重新加载监听后,经过观察,alert日志文件的Fatal NI connect error 12170告警消失。