ORA-12609报错分析
问题:监控不断告警ORA-12609
Wed 10/14/2020 10:40 AM
12CRAC1-ALERT中出现ORA错误,请检查
171- nt OS err code: 0
172- Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=xx)(PORT=1910))
173-2020-10-14T10:29:26.605709+08:00
174-Errors in file /u01/app/oracle/diag/rdbms/bjivradg/bjivradg1/trace/bjivradg1_tt03_5501.trc:
175:ORA-12609: TNS: Receive timeout occurred
176-2020-10-14T10:29:26.605874+08:00
177-LGWR: Error 12609 closing archivelog file 'acscnprd'
178-TT03: Standby redo logfile selected for thread 1 sequence 4067 for destination LOG_ARCHIVE_DEST_3
ORA-12609???
这个报错啥意思?
ORA-12609: TNS: Receive timeout occurred 接收超时!
也就是说你传输或者接收的session 连接断开了,然后Alert报错ORA 12609
可能性是不是太多了??? 场景:12c主库,有3个备库!只有北京的备库不间断报错???
可能性1,SQLNET参数???
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
$ cat sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
#SQLNET.ALLOWED_LOGON_VERSION=8
#sqlnet.allowed_logon_version_server=9
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.INBOUND_CONNECT_TIMEOUT=600
SQLNET.EXPIRE_TIME= 5
SQLNET.RECV_TIMEOUT = 600
SQLNET.SEND_TIMEOUT = 600
接受超时时间(单位秒)
RECV_TIMEOUT
发送超时时间(单位秒)
SEND_TIMEOUT
https://docs.oracle.com/cd/E11882_01/network.112/e10835/sqlnet.htm#NETRF227
SQLNET.RECV_TIMEOUT
指定建立连接后数据库服务器等待客户端数据的时间(以秒为单位)。客户端必须在该时间间隔内发送一些数据。
对于客户端偶尔关闭或异常关闭的环境,建议设置此参数。如果客户端未在指定的时间内发送任何数据,则数据库服务器将记录日志ORA-12535: TNS:operation timed out和消息到文件。没有此参数,数据库服务器可能会继续等待来自可能已关闭或遇到问题的客户端的数据。ORA-12609: TNS: Receive timeout occurredsqlnet.log
您还可以在客户端设置此参数,以指定连接建立后客户端等待来自数据库服务器的响应数据的时间(以秒为单位)。如果没有此参数,则客户端可能会等待很长一段时间,以等待来自饱含请求的数据库服务器的响应。如果选择设置该值,则将该值设置为初始低值,然后根据系统和网络容量进行调整。如有必要,将此参数与SQLNET.SEND_TIMEOUT参数一起使用。
SQLNET。SEND_TIMEOUT
目的
指定建立连接后数据库服务器完成向客户端的发送操作的时间(以秒为单位)。对于客户端偶尔或异常关闭的环境,建议设置此参数。
如果数据库服务器无法在指定的时间内完成发送操作,则它将记录 ORA-12535: TNS:operation timed out 和 ORA-12608: TNS: Send timeout occurred消息到sqlnet.log文件。如果没有此参数,则数据库服务器可能会继续向由于计算机故障或繁忙状态而无法接收数据的客户端发送响应。
您也可以在客户端设置此参数,以指定客户端在建立连接后完成向数据库服务器发送操作的时间(以秒为单位)。如果没有此参数,客户端可能会继续将请求发送到已经饱和了请求的数据库服务器。如果选择设置该值,则将该值设置为初始低值,然后根据系统和网络容量进行调整。如有必要,将此参数与SQLNET.RECV_TIMEOUT参数一起使用
Archived: Dead Connection Detection (DCD) Explained (Doc ID 151972.1)
How To Automate Disconnection of Idle Sessions (Doc ID 159978.1)
Description of Parameter SQLNET.INBOUND_CONNECT_TIMEOUT (Doc ID 274303.1)
Oracle Net (SQL*Net) Timeout Parameters (Doc ID 1560775.1)
使用SQLNET.INBOUND_CONNECT_TIMEOUT参数以
秒为单位指定客户端与数据库服务器连接
并提供必要的身份验证信息所允许的时间(以秒为单位)。
如果客户端未能
在指定的时间内建立连接并完成身份验证,则数据库服务器将终止连接。
https://www.askmaclean.com/archives/12c-ttnn-tmon-new-background-process.html
但从版本12c开始 使用TTnn 例如TT00进程来负责async 异步的redo传输。 另一个后台进程TMON来负责做Redo transport monitor。
备库SQLNET.ora
$ cat sqlnet.ora
# sqlnet.ora Network Configuration File: /opt/ora11g/product/11.2.3/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.EXPIRE_TIME=10
SQLNET.INBOUND_CONNECT_TIMEOUT=600
ADR_BASE = /u02/app/oracle
#TCP.VALIDNODE_CHECKING=yes
#TCP.INVITED_NODES=(10.35.179.134,172.31.150.70,172.31.150.71,10.35.179.142,10.35.179.129,10.35.179.9,172.31.150.81,172.30.19.240,172.30.19.247,172.29.147.79,10.35.179.135,172.31.153.141,172.30.8.230,172.30.19.188,10.35.181.152,10.35.179.49,10.35.179.10,172.30.19.19,172.31.150.152,10.35.179.247,172.29.147.69,10.35.179.242,10.35.179.15,172.30.19.122,172.30.19.250,172.31.150.103,10.35.179.215,172.31.150.76,172.31.150.92,172.31.150.93,172.31.150.155,172.31.150.117,172.31.150.118,172.31.150.119,172.31.150.120,172.31.150.121,172.31.150.122,172.31.150.123,172.29.147.91,10.35.179.241,10.35.180.17,10.35.179.61,10.35.179.15,172.30.19.120,172.31.153.151,172.30.8.9)
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.INBOUND_CONNECT_TIMEOUT=600
SQLNET.EXPIRE_TIME= 5
可能性排除: 通过检索文档,信息都是加大这两个参数的值,可以减少或避免这个问题! 但是这个是之前的DBA,参数从60调整至600,但是报错的频率及次数并未降低,因此可以排除!!!
SQLNET.RECV_TIMEOUT = 600
SQLNET.SEND_TIMEOUT = 600
思路:加大这两个参数后,例如原本50s就中断了的信息,现在600s无法传输或者接收才超时,如果有用,那么报错的频率将减少!
可能性2,防火墙
通过操作系统检查无防火墙! 数据库服务器一般也不配置防火墙,并且只有北京的DG有问题,其它地区DG无问题???
SQLNET.EXPIRE_TIME=5 oracle会间隔一定时间进行tcp探测,因此这种情况下,很少存在超时被防火墙策略断开的情况。
可能性3,北京dg与其它dg有什么差异???
select INST_ID,dest_name,status,recovery_mode from gv$archive_dest_status where DEST_NAME in('LOG_ARCHIVE_DEST_3','LOG_ARCHIVE_DEST_5'); INST_ID DEST_NAME STATUS RECOVERY_MODE
---------- ------------------------------ --------- -----------------------
1 LOG_ARCHIVE_DEST_3 VALID MANAGED REAL TIME APPLY
1 LOG_ARCHIVE_DEST_5 VALID MANAGED
3 LOG_ARCHIVE_DEST_3 VALID MANAGED REAL TIME APPLY
3 LOG_ARCHIVE_DEST_5 VALID MANAGED
2 LOG_ARCHIVE_DEST_3 VALID MANAGED REAL TIME APPLY
2 LOG_ARCHIVE_DEST_5 VALID MANAGED
DG重置远程归档参数后,主库观察备库连通性,无意中发现问题报错的DG 是非实时应用!!! 思路反思,如果是非实时应用,那么主库只有切换归档,主库才会真正传输数据!否则这个连接没活干???
那么如果主库长时间并未切换dg的情况下,是不是这个会话容易被断开???
dg开始实施应用后,问题解决! 不在出现该报错。
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> recover managed standby database using current logfile disconnect;
Media recovery complete.
SQL> select INST_ID,dest_name,status,recovery_mode from gv$archive_dest_status where DEST_NAME in('LOG_ARCHIVE_DEST_3','LOG_ARCHIVE_DEST_5')
INST_ID DEST_NAME STATUS RECOVERY_MODE
---------- ------------------------------ --------- -----------------------
1 LOG_ARCHIVE_DEST_3 VALID MANAGED REAL TIME APPLY
1 LOG_ARCHIVE_DEST_5 VALID MANAGED REAL TIME APPLY
3 LOG_ARCHIVE_DEST_3 VALID MANAGED REAL TIME APPLY
3 LOG_ARCHIVE_DEST_5 VALID MANAGED REAL TIME APPLY
2 LOG_ARCHIVE_DEST_3 VALID MANAGED REAL TIME APPLY
2 LOG_ARCHIVE_DEST_5 VALID MANAGED REAL TIME APPLY
6 rows selected.
ORA-12609报错分析的更多相关文章
- const变量赋值报错分析
const变量赋值报错分析 const变量赋值报错 从变量到常量的赋值是合法C++的语法约定的, 如从char 到const char顺畅: 但从char **到 const char **编译器就会 ...
- mysql5.7密码修改与报错分析
1.修改密码 修改密码: vim /etc/my.cnf 的mysqld字段加入skip-grant-tables 重启MySQL,service mysqld restart 终端输入 mysql ...
- std::unique_ptr使用incomplete type的报错分析和解决
Pimpl(Pointer to implementation)很多同学都不陌生,但是从原始指针升级到C++11的独占指针std::unique_ptr时,会遇到一个incomplete type的报 ...
- DUBBO报错分析—1(连接zookeeper成功,调用方法无反应,不报错)
思路分析 调用方法时,最后调用执行的是mapper的sql语句,既然调用对应的方法无法获取返回值,多是sql错误,但是并未报sql错误,说明可能是与sql相关的数据源配置错误. 过程调试 经尝试,当直 ...
- SSM框架报错分析(一)——There is no getter for property named 'XXX' in 'class java.lang.String'
一.发现问题 <select id="queryStudentByNum" resultType="student" parameterType=&quo ...
- 【原创】MySQL Can't create a new thread报错分析
今天有两台服务器都出现了Can't create a new thread报错. [故障处理过程] 故障发生后登录服务器,检查mysql进程正常,但登录mysql报下面错误 ERROR 1135 (H ...
- Dev C++编写C/C++程序 出现[Error] ld returned 1 exit status报错分析及解决
debug系列第一弹,不知道大家写程序的时候是不是都遇到过如题的报错. 我本人是经常遇到这行熟悉的令人不知所措的报错,可能是我太笨了 有时候百度无果也差不到原因,那就汇总一下目前我遇到的情况吧--持续 ...
- SSH报错分析
排错设计思路 1.配置文件的端口号修改 2.禁用root 3./etc/hosts.allow /etc/hosts.deny 4.iptables 5.密钥文件及目录的权限修改 1. 报错的原因:是 ...
- C++编译连接过程中关于符号表的报错分析
是这样的,在学习郑莉老师的多文件结构和编译预处理命令章节时候,看到书里有这么一张图描述如下:#include指令作用是将指定的文件嵌入到当前源文件中#include指令所在的位置. 然后我就想5_10 ...
随机推荐
- springboot中关于Long类型返回前端精度丢失问题处理
使用了HuTool这个雪花算法后,会出现丢失精度的问题 hutool算法使用地址 对于一些大的业务表,自增主键这里 接口层得注意下是否会产生大数值 设计接口的时候采用String类型. 在项目中,我们 ...
- Flutter学习二之Dart语言介绍
上次我记录了Flutter的环境搭建,这次来简单记录一下Drat语言,Flutter是 Google推出并开源的移动应用开发框架,开发语言是Dart,那么Dart语言和其他的语言在语法上有上面区别呢, ...
- 缓动公式整理(附:C#实现及WPF原版对比)
前言 缓动在动画效果中应用非常广泛,在合适的时候使用一些缓动效果会使得效果更加符合人的直观感受,简单来说,会显得更加自然. WPF提供了11种缓动效果,涵盖了大部分的使用场景.不过如果需要在非WPF下 ...
- C# NX二次开发环境搭建
在网上看到一篇C#二次开发环境搭建的文章:NX二次开发-使用NXOPEN C#手工搭建开发环境配置 ,写得非常好.我按照文章操作,过程中遇到几个问题,把问题分享给大家,希望对各位有帮助. 注意三点: ...
- fastjson 1.2.6以下版本 解析字符串末尾出现/x会陷入死循环 报oom异常
记一次使用阿里fastjson遇到的问题 项目最好将fastjson版本升级到1.2.6或以上版本 1.2.6以下版本存在漏洞,测试如下代码直接报错 public class FastJsonTest ...
- Kafka日志段读写分析
引子 之所以写这篇文章是因为之前面试时候被面试官问到(倒)了,面试官说:"你说你对Kafka比较熟?看过源码? 那说说kafka日志段如何读写的吧?" 我心里默默的说了句 &quo ...
- SpringMVC参数返回给页面
springMVC将后台参数返回给前台页面 方法一:利用ModelAndView返回值 1 @RequestMapping("/returnPage.do") 2 public M ...
- c#RSA的SHA1加密与AES加密、解密
前言:公司项目对接了一个对数据保密性要求较高的java公司.api接口逻辑是这样的:他们提供 SHA1私钥 与 AES的秘钥.我们需要将 传递查询参数 通过SHA1 私钥加密再转换成 十六进制 字符串 ...
- IP基础知识
请根据IP地址 和 子网掩码,计算出 网络地址.广播地址 IP地址分类 对3类主要IP地址的补充说明:
- 设计模式PDF下载了4.0万本!那,再肝一本《Java面经手册》吧!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 1. 先祝贺下自己拿下4.0万本下载量! <重学Java设计模式>PDF ...