ORA-609频繁出现在alert.log,如何解决?

news2024/11/30 14:34:22

  ORA-609就alertlog中比较常见的一个报错,虽然并没有太大的影响,但是频繁的出现在alert log也是很让人厌烦的事情,本文介绍如何排查解决ORA-609问题。

1.ORA-609官方定义

could not attach to incoming connection Cause Oracle process could not answer incoming connection Action If the situation described in the next error on the stack can be corrected, do so; otherwise contact Oracle Support

简单的解释就是客户端和服务无法连接,如果排查需要看后续的跟着报错代码。

2.场景一: ORA-609 + TNS-12641

  2.1首先排查alert log

一般会在alert log看到如下报错,alert log中并无TNS相关报错。

 2.2排查$ORACLE_HOME/network/log/sqlnet.log

可以看到大量的TNS-12641报错    

Fatal NI connect error 12641, connecting to: (LOCAL=NO)  VERSION INFORMATION:        TNS for Linux: Version 11.2.0.4.0 - Production        Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production        TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production  Time: 27-APR-2024 22:14:00  Tracing not turned on.  Tns error struct:    ns main err code: 12641    TNS-12641: Authentication service failed to initialize    ns secondary err code: 0    nt main err code: 0    nt secondary err code: 0    nt OS err code: 0

从报错可以看到是和认证相关的,原因是因为在$ORACLE_HOME/network/admin/sqlnet.ora添加了

SQLNET.AUTHENTICATION_SERVICES= (ALL)

这里涉及到一个BUG

BUG 23728771 - ABOUT AN ACTUAL BEHAVIOR SQLNET.AUTHENTICATION_SERVICES

在将 SQLNET.AUTHENTICATION_SERVICES 设置为 ALL 时,服务器会默认选择认证适配器 KERBEROS5、RADIUS 和 KERBEROS5。如果在客户端/服务器的 sqlnet.ora 中未指定 sqlnet.authentication_kerberos5_service,则在执行 kerberos 认证时将失败,并出现 ORA-12641 错误。

2.3解决方案  
修改$ORACLE_HOME/network/admin/sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES= (ALL) 改为SQLNET.AUTHENTICATION_SERVICES= (NONE)

3.场景二:ORA-609 + ORA-12537

     

3.1 排查alert log


  一般alert log中会有 ORA-609和ORA-12537的报错

ORA-00609: could not attach to incoming connectionORA-12537: TNS:connection closedORA-609 : opiodr aborting process unknown ospid (xxxx)

 3.2 排查$ORACLE_HOME/network/log/sqlnet.log


可以看到sqlnet.log中有TNS-12537

Fatal NI connect error 12537, connecting to:(LOCAL=NO)VERSION INFORMATION:TNS for 64-bit Windows: Version 11.1.0.7.0 - ProductionOracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.1.0.7.0 - ProductionWindows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.1.0.7.0 - ProductionTime: 12-OCT-2009 10:03:39Tracing to file: E:\app\oracle\product\11.1.0\db_1\NETWORK\trace\svr1_7464.trcTns error struct:ns main err code: 12537TNS-12537: TNS:connection closedns secondary err code: 12560nt main err code: 0nt secondary err code: 0nt OS err code: 0


3.3 listener log中会有类似如下报错

日志显示连接已建立,没有明显错误。这是因为在listener将连接移交给服务器进程之后,连接失败了。

12-OCT-2009 10:03:39 * (CONNECT_DATA=(SID=ORCL)) * (ADDRESS=(PROTOCOL=tcp)(HOST=123.456.1.123)(PORT=3158)) * establish * ORCL * 012-OCT-2009 10:03:39 * (CONNECT_DATA=(SID=ORCL)) * (ADDRESS=(PROTOCOL=tcp)(HOST=123.456.1.123)(PORT=3159)) * establish * ORCL * 0

3.4 解决方案

ORA-609 错误是在客户端连接在完成或在连接/身份验证过程完成之前中断连接过程时引发的。很多时候,这种连接中断是由于超时引起的。从 10gR2 开始,入站连接超时的默认值已设置为 60 秒。这个时间限制通常不足以完成整个连接过程。当错误是间歇性的时,通常不表示存在严重问题。这只是意味着服务器进程在整个连接过程完成之前超时。

我们还发现,在由 DB Console 和 Enterprise Manager 代理(emagent)监视的数据库安装中,ORA-609 错误经常发生。在启动 DB Console 并且作为例行操作后,emagent 将反复尝试连接到目标实例。我们可以在 listener.log 中看到频繁的 emagent 连接,而不会出现错误。然而,偶尔可能会在数据库处未能完成连接过程,因此会引发 ORA-609 错误。emagent 将简单地重试连接,并可能在随后的尝试中成功。(前提是在监听器或数据库上没有发生真正的故障)。这种临时连接失败不会反馈给 DB Console,并且除了 ORA-609 之外,没有其他指示表明发生了故障。

综上引起ORA-609报错的原因有很多,要想真正的追踪到根本原因相对是比较难 的;但是可以有相对简单的办法来应对,常用的方案就是拉长连接超时的时间具体操作为修改$ORACLE_HOME/network/admin/sqlnet.ora(oracle 非grid)添加如下参数,无需重启DB和reload监听

SQLNET.INBOUND_CONNECT_TIMEOUT=120

3.5排查根本原因方案


  如果修改连接超时参数后还频繁的出现ORA-609,那么就需要更详细的排查官方建议方案如下:

A. 在客户端的 SQLNET.ORA 文件添加如下trace参数

DIAG_ADR_ENABLED=off                  # Disable ADR if version 11gTRACE_LEVEL_CLIENT = 16               # Enable level 16 traceTRACE_TIMESTAMP_CLIENT = ON           # Set timestamp in the trace filesTRACE_DIRECTORY_CLIENT = <DIRECTORY>  # Control trace file locationTRACE_FILELEN_CLIENT =<n>     #Control size of trace set in kilobytes eg 20480TRACE_FILENO_CLIENT =<n>      #Control number of trace files per process

如果连接模型是 JDBC thin,则需要对客户端进行 Javanet 跟踪。请参阅文档 793415.1 How to Perform the Equivalent of SQL*Net Client Tracing with Oracle JDBC Thin Driver.。

如果使用的是 11.2 版本的 JDBC thin 客户端,则可以使用以下说明文档 1050942.1 How to Trace the Network Packets Exchanged Between JDBC and the RDBMS in Release 11.2。

B. 在服务器端设置trace参数

DIAG_ADR_ENABLED=off                  # Disable ADR if version 11gTRACE_LEVEL_SERVER = 16               # Enable level 16 traceTRACE_TIMESTAMP_SERVER = ON           # Set timestamp in the trace filesTRACE_DIRECTORY_SERVER = <DIRECTORY>  # Control trace file locationTRACE_FILELEN_SERVER =<n>   #Control size of trace set in kilobytes eg 20480TRACE_FILENO_SERVER =<n>       #Control number of trace files per process


Cyclic tracing will allow you to control the size of and number of trace files that are produced.
The TRACE_FILELEN parameter is for the size of a trace file.
The TRACE_FILENO parameter is the number of traces per process.
 

C. 设置错误堆栈以捕获失败。 当捕获 Oracle Net 客户端跟踪不可行时,这可能会特别有用. 

SQL> alter system set events '609 errorstack(3)';Once a few traces have been collected while the error is reproduced:SQL> alter system set events '609 off';

然后开SR把这些log上传给oracle support去做进一步排查​。
 

参考文档

NOTE:609.1 - ORA-609 TNS-12537 and TNS-12547 in 11g Alert.log​

11g and Newer: ORA-609 TNS-12537 and TNS-12547 or TNS-12170 in DB Alert.log (Doc ID 1116960.1)

Troubleshooting Guide ORA-609 : Opiodr aborting process unknown ospid (Doc ID 1121357.1) 

Alert Log Errors: ORA-609 & TNS-12641 -Authentication Service Failed To Initialize (Doc ID 2426368.1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1667751.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通过linux花里胡哨的控制台,学习linux基础命令

今天这个B我装定了&#xff01; 前言命令集 开始1、cowsay &#xff08;让牛说话&#xff0c;够无聊的&#xff0c;但牛说的话是你输入的&#xff0c;细思极恐&#xff01;&#xff09;Debian/Ubuntu 安装命令&#xff1a;RHEL/CentOS/Fedora 安装&#xff1a;运行解释 2、fort…

libssh C++封装之七(File)

1 概述 libssh是一个在客户端和服务器端实现SSHv2协议的多平台C库。使用libssh,您可以远程执行程序、传输文件、使用安全透明的隧道、管理公钥等等。本文描述的对libssh客户端功能的C++封装。 libssh下载地址 3 实现 3.6 File File类型可以读写远程文件。 3.6.1 File定义 …

李宏毅-注意力机制详解

原视频链接&#xff1a;attention 一. 基本问题分析 1. 模型的input 无论是预测视频观看人数还是图像处理&#xff0c;输入都可以看作是一个向量&#xff0c;输出是一个数值或类别。然而&#xff0c;若输入是一系列向量&#xff0c;长度可能会不同&#xff0c;例如把句子里的…

Attention Sink

论文发现自回归LLM存在的一个有趣现象&#xff1a;对于输入文本最靠前的少量几个token&#xff0c;无论它们在语义上与语言建模任务的相关性如何&#xff0c;大量的注意力分数都会分配给他们&#xff0c;如下图所示&#xff1a; 模型的前两层还能保持attention score更多分配给…

第四步->手撕spring源码之bena注入实现和依赖

本步骤目标 上述几个步骤 定义和注册Bean (opens new window)、实例化Bean (opens new window)&#xff0c;按照是否包含构造函数实现不同的实例化策略 (opens new window)&#xff0c;那么在创建对象实例化这我们还缺少什么&#xff1f;其实还缺少一个关于类中是否有属性的问题…

【应用浅谈】Odoo的库存计价与产品成本(二)

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo的库存&#xff08;Stock&#xff09;模块拥有众多功能&#xff0c;其中库存计价是一项非常重要的功能&#xff0c;原生的成本方法分三种&#xff1a;【标准成本】&#xff0c;【平均成本】&#xff0c;【先进先出】&#…

【算法】竞赛常用知识之字符串1

前言&#xff1a; 本系列是学习了董晓老师所讲的知识点做的笔记 董晓算法的个人空间-董晓算法个人主页-哔哩哔哩视频 (bilibili.com) 动态规划系列&#xff08;还没学完&#xff09; 【算法】动态规划之线性DP问题-CSDN博客 【算法】动态规划之背包DP问题&#xff08;2024…

Mybatis-Plus大批量插入数据到MySQL

MyBatis-Plus的saveBatch方法 GetMapping("/save1") public void save1() {// 数据准备List<MallOrder> orderList getMallOrderList();// mybatis-pluslong start System.currentTimeMillis();mallOrderService.saveBatch(orderList);System.out.println(&…

java中EQ、NE、GE、GT、LE、LT

关系运算符 包括EQ、NE、GE、GT、LE、LT几个&#xff0c;关系运算符返回的是真“True”或假“False”。 eq&#xff08;Equal to&#xff09; 等 运算符 &#xff0c;如果运算符两边相同则返回真&#xff0c;否则返回假&#xff1b; ne&#xff08;Not Equal to&#xff09; 不…

美术:模型动画

游戏模型制作流程&#xff0c;SP和BP根据情况来选择软件对UV进行处理 3Dmax 制作模型和动画&#xff08;橘肉&#xff09;RizomUV 对模型进行展UV&#xff08;橘皮&#xff09;Substance Painter 纹理手绘&#xff08;给橘皮制定想要的皮肤&#xff09;BodyPaint 3D 纹理手绘&a…

Hive Transaction事务表(含实现原理)

Hive Transaction事务表 在Hive中&#xff0c;事务表&#xff08;Transactional Tables&#xff09;允许用户执行事务性操作&#xff0c;包括ACID&#xff08;原子性、一致性、隔离性、持久性&#xff09;特性。事务表是在Hive 0.14版本引入的&#xff0c;并且在后续版本中不断…

最新的云渲染100活动有哪些?渲染100邀请码1a12

随着科技的进步&#xff0c;云渲染已经成为设计行业的必备工具&#xff0c;各个云渲染平台为了吸引用户也推出各种各样的活动&#xff0c;今天我们以广受好评的渲染100为例&#xff0c;来说下它们的活动体系。 1、新用户活动 渲染100对新用户很友好&#xff0c;提供了充足的测…

PyTorch的卷积和池化

卷积计算 input 表示输入的图像filter 表示卷积核, 也叫做滤波器input 经过 filter 的得到输出为最右侧的图像&#xff0c;该图叫做特征图 卷积的计算是将卷积核放入左上角&#xff0c;在局部区域间做点积&#xff0c;然后将卷积核在Input上面依次从左向右&#xff0c;从上到下…

STM32串口通信入门

文章目录 一、串口协议和RS-232标准&#xff0c;以及RS232电平与TTL电平的区别1.串口通信协议2.RS-232标准3.RS232电平与TTL电平的区别4.USB/TTL转232“模块&#xff08;CH340芯片为例&#xff09; 二、补充实验&#xff08;一&#xff09;几个常见的库函数、结构体1.时钟配置函…

LeetCode—用队列实现栈

一.题目 二.思路 1.后入先出的实现&#xff1a; 创建两个队列来实现栈&#xff08;后入先出&#xff09;&#xff1a; 两个队列&#xff0c;保持一个存数据&#xff0c;另一个为空&#xff0c;入数据&#xff08;push&#xff09;要入不为空的队列&#xff0c;&#xff08;p…

深圳晶彩智能ESP32-1732S019实时观看GPIO的状态

深圳晶彩智能ESP32-1732S019介绍 ESP32-1732S019开发板是基于ESP32-S3-WROOM-1模块作为主控&#xff0c;双核MCU ,集成WI-FI和蓝牙功能&#xff0c;主控频率可达240MHz , 512KB SRAM , 384KB ROM&#xff0c;8M PSRAM&#xff0c;16MB Flash&#xff0c;显示分辨率为170*320 I…

冯喜运:5.12黄金回撤继续上涨,下周原油走势分析

【黄金消息面分析】&#xff1a;本周&#xff0c;黄金市场迎来了自4月中旬以来的最佳单周表现。周五&#xff08;3月9日&#xff09;&#xff0c;金价攀升至2360.54美元/盎司&#xff0c;涨幅0.62%&#xff0c;而纽约商品交易所6月交割的黄金期货价格上涨1.5%&#xff0c;收报2…

Springboot+Vue项目-基于Java+MySQL的毕业就业信息管理系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

其他的 框架安全:Apache Shiro 漏洞序列.(CVE-2016-2807)

什么是 Apache Shiro Apache Shiro 是一个强大且易用的Java安全框架&#xff0c;它为应用程序提供了身份验证、授权、加密和会话管理等常见的安全功能。漏洞大多会发生在登录处&#xff0c;返回包里包含remeberMedeleteMe字段.&#xff08; Shiro 这个属于第三方的&#xff0c…

表的创建与操作表

1. 创建表 创建表有两种方式 : 一种是白手起家自己添&#xff0c;一种是富二代直接继承. 2. 创建方式1 (1). 必须具备条件 CREATE TABLE权限存储空间 (2). 语法格式 CREATE TABLE IF NOT EXISTS 表名(字段1, 数据类型 [约束条件] [默认值],字段2, 数据类型 [约束条件] [默…