当前位置: 首页 > news >正文

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

  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)

相关文章:

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

ORA-609就alertlog中比较常见的一个报错&#xff0c;虽然并没有太大的影响&#xff0c;但是频繁的出现在alert log也是很让人厌烦的事情&#xff0c;本文介绍如何排查解决ORA-609问题。 1.ORA-609官方定义 could not attach to incoming connection Cause Oracle process cou…...

JVM 类加载机制

JVM 类加载机制分为五个部分&#xff1a;加载&#xff0c;验证&#xff0c;准备&#xff0c;解析&#xff0c;初始化&#xff0c;下面我们就分别来看一下这五个过程。 加载 加载是类加载过程中的一个阶段&#xff0c;这个阶段会在内存中生成一个代表这个类的 java.lang.class 对…...

亲测-wordpress文章实时同步发布修改删除多个站点的WP2WP插件

一款将wordpress文章同步到其他WordPress网站的插件&#xff0c;通过这款插件&#xff0c;可以保持不同博客之间文章发布、修改、删除的同步。 安装步骤&#xff1a; 主站和分站都要上传这个插件 1.把插件上传到wp-content\plugins解压出来wp2wp文件夹&#xff0c;然后启用插…...

npm无法安装node-sass 的问题

安装 node-sass 的问题呈现&#xff1a;4.9.0版本无法下载 Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-72_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-…...

springboot 引入第三方bean

如何进行第三方bean的定义 参数进行自动装配...

安装Nginx

如果没有gcc环境&#xff0c;需要安装gcc yum install gcc-c安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel工作目录 mkdir /opt/nginx && cd /opt/nginx下载安装包 wget http://nginx.org/download/nginx-1.32.1.tar.gz解压安装包…...

爬虫工具you-get

you-get是一个简单易上手的爬虫小工具&#xff0c;可以从网络中爬取多媒体信息&#xff0c;包括图片、音频和视频。you-get的github项目地址为&#xff1a;https://github.com/soimort/you-get 一、安装 以下为相关依赖&#xff0c;需要分别安装&#xff1a; Python 3 (必须…...

hal_stm32_RTC函数

1设置当前时间&#xff1a; 调用 HAL_RTC_SetTime 来设置小时、分钟、秒和亚秒。 调用 HAL_RTC_SetDate 来设置年、月、日和星期。 HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format); HAL_StatusTypeDef HAL_RTC_SetDat…...

【大数据·Hadoop】从词频统计由浅入深介绍MapReduce分布式计算的设计思想和原理

一、引入&#xff1a;词频统计问题 假如我们有一亿份文档&#xff0c;需要统计这一亿份文档的词频。我们会怎么做&#xff0c;有以下思路 使用单台PC执行&#xff1a;能不能存的下不说&#xff0c;串行计算&#xff0c;一份一份文档读&#xff0c;然后进行词频统计&#xff0…...

win10建立共享文件夹和ipad共享文件

win10端设置 查看自己的局域网IP 在任意地方新建一个文件夹 打开文件夹的属性,点到共享的地方 点击高级共享 然后点击应用,确认 再回到之前哪个地方,点击共享 把Everyone的权限改为读取/写入 最后点击共享就欧克了 失败的可能原因 ipad端设置 然后回出现一个要输入用户名和…...

手机在网状态多方面重要性

手机在网状态的重要性体现在多个方面&#xff0c;它是现代社会中人们保持联系、获取信息以及进行日常活动不可或缺的一部分。以下是一些关于手机在网状态重要性的详细解释&#xff1a; 通信联系&#xff1a; 手机是在现代社会中进行通信联系的主要工具。当手机处于在网状态时&…...

Multitouch for Mac:手势自定义,提升工作效率

Multitouch for Mac作为一款触控板手势增强软件&#xff0c;其核心功能在于手势的自定义和与Mac系统的深度整合。通过Multitouch&#xff0c;用户可以轻松设置各种手势&#xff0c;如三指轻点、四指左右滑动等&#xff0c;来执行常见的任务&#xff0c;如打开应用、切换窗口、滚…...

IDEA创建springboot项目时不能选择java 8或者java 11等等版本的问题,解决方案

文章目录 1. Project JDK 和 Java 的区别2. 没有 java 8 或 java 11 等版本2.1 方案一2.2 方案二2.3 方案三 1. Project JDK 和 Java 的区别 我们在利用 idea 创建 spring boot 项目时&#xff0c;会有以上两个选项&#xff0c;这两个选项有什么区别&#xff1f; 答&#xff…...

SpringCloudAlibaba:4.3云原生网关higress的JWT 认证

概述 简介 JWT是一种用于双方之间传递安全信息的简洁的、URL安全的声明规范。 定义了一种简洁的&#xff0c;自包含的方法用于通信双方之间以Json对象的形式安全的传递信息&#xff0c;特别适用于分布式站点的单点登录&#xff08;SSO&#xff09;场景 session认证的缺点 1.安…...

【机器学习】Reinforcement Learning-强化学习基本概念

1、Q值与V值 1.1 Q值和V值的定义 Q值&#xff1a;也称为动作价值函数&#xff0c;评估动作的价值&#xff0c;它代表了智能体选择这个动作后&#xff0c;一直到最终状态奖励总和的期望&#xff0c;表示为Q(s, a)&#xff0c;其中 s是状态&#xff0c;a是动作。 V值&#xff…...

vim编辑器---(1)vim编辑器介绍?

&#xff08;1&#xff09;vim编辑器介绍&#xff1f; 1 目录 &#xff08;a&#xff09;IC简介 &#xff08;b&#xff09;vim简介 &#xff08;c&#xff09;Verilog简介 &#xff08;d&#xff09;vim编辑器介绍&#xff1f; &#xff08;e&#xff09;结束 1 IC简介…...

解密 Unix 中的 “rc“ 后缀:自定义你的工作环境

在文件名中&#xff0c;rc 通常表示 “run commands”&#xff08;运行命令&#xff09;或者 “runtime configuration”&#xff08;运行时配置&#xff09;。这种命名惯例源自早期的 Unix 系统&#xff0c;用于指示这些文件包含了一系列要在程序运行时执行的命令或配置选项。…...

Java使用csv导出多字段大数据文件(无需写实体映射,自动遍历)

csv工具类CsvUtils 此处使用LinkedHashMap链表哈希表&#xff0c;实现键值中值为空时仍存在数据以及保证顺序与sql顺序一致。 package com.xxx.xxx.utils;import lombok.val; import org.springframework.util.CollectionUtils; import javax.servlet.http.HttpServletRespons…...

Redis 本机无法访问

问题 我在服务器上有两个 Redis 实例&#xff0c;服务端口号分别是 6379 和 6380&#xff0c;Redis 服务器地址假设为 10.0.0.12。其中 6379 这个实例不需要密码即可访问&#xff0c;6380 需要密码访问。 在正常使用几天后&#xff0c;本机突然无法访问 6379 这个实例&#x…...

【论文笔记】Training language models to follow instructions with human feedback B部分

Training language models to follow instructions with human feedback B 部分 回顾一下第一代 GPT-1 &#xff1a; 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式&#xff1b;模型架构是基于 Transformer 的叠加解码器&#xff08;掩码自注意…...

vue3-composition-admin TypeScript最佳实践:类型安全与开发效率的完美平衡

vue3-composition-admin TypeScript最佳实践&#xff1a;类型安全与开发效率的完美平衡 【免费下载链接】vue3-composition-admin &#x1f389; 基于vue3 的管理端模板(Vue3 TS Vuex4 element-plus vue-i18n-next composition-api) vue3-admin vue3-ts-admin 项目地址: http…...

OpenClaw多任务调度:nanobot并行处理邮件与文件整理

OpenClaw多任务调度&#xff1a;nanobot并行处理邮件与文件整理 1. 为什么需要多任务调度 当我第一次尝试用OpenClaw自动化处理日常工作流时&#xff0c;遇到了一个典型问题&#xff1a;当同时需要监控邮件和处理大文件时&#xff0c;系统资源会被单一任务占满。比如在整理几…...

终极指南:如何用 tf-quant-finance 实现 Hull-White 模型的百慕大式互换权定价

终极指南&#xff1a;如何用 tf-quant-finance 实现 Hull-White 模型的百慕大式互换权定价 【免费下载链接】tf-quant-finance High-performance TensorFlow library for quantitative finance. 项目地址: https://gitcode.com/gh_mirrors/tf/tf-quant-finance 在量化金…...

StructBERT-Large本地化部署实战:无需联网、不传数据、隐私安全的语义匹配解决方案

StructBERT-Large本地化部署实战&#xff1a;无需联网、不传数据、隐私安全的语义匹配解决方案 你是不是经常需要判断两句话是不是一个意思&#xff1f;比如&#xff0c;检查用户提交的答案是否和标准答案一致&#xff0c;或者判断两篇新闻稿是不是在说同一件事。过去&#xf…...

nanobot实操手册:Qwen3-4B模型温度(temperature)、top_p、max_tokens参数详解

nanobot实操手册&#xff1a;Qwen3-4B模型温度&#xff08;temperature&#xff09;、top_p、max_tokens参数详解 1. nanobot简介与快速上手 nanobot是一款超轻量级的个人人工智能助手&#xff0c;灵感来源于OpenClaw项目。它最大的特点是代码量极小&#xff0c;仅需约4000行…...

OpenClaw跨平台同步:GLM-4.7-Flash配置在多设备复用

OpenClaw跨平台同步&#xff1a;GLM-4.7-Flash配置在多设备复用 1. 为什么需要跨设备同步OpenClaw配置 去年冬天&#xff0c;我在家里配置好OpenClaw接入GLM-4.7-Flash模型后&#xff0c;第二天到办公室想继续调试时&#xff0c;发现所有配置都要从头再来。这种重复劳动让我意…...

欧拉Euler~21.10系统下OpenSSH 9.0升级与安全加固实战指南

1. 环境准备&#xff1a;从零搭建OpenSSH 9.0升级基础 在欧拉Euler~21.10系统上升级OpenSSH&#xff0c;就像给老房子换新门窗——既要保证新功能正常使用&#xff0c;又不能破坏原有结构。我最近刚在测试环境完成这套操作&#xff0c;整个过程踩过几个坑&#xff0c;这里把完整…...

三节点zookeeper集群搭建

1、环境准备 1.1、 设置三台虚拟机主机名# 在node1执行 sudo hostnamectl set-hostname node1 # 在node2执行 sudo hostnamectl set-hostname node2 # 在node3执行 sudo hostnamectl set-hostname node31.2、修改hosts# 使用vim编辑hosts文件 sudo vim /etc/hosts # 添加以下内…...

小白必看!收藏这份Agent思维链技术指南,轻松入门大模型世界

小白必看&#xff01;收藏这份Agent思维链技术指南&#xff0c;轻松入门大模型世界 本文深入解析了Agent模型中的思维链技术&#xff0c;介绍了不同模型如Claude、Gemini等对思维链的不同称谓及其核心原理&#xff0c;即通过将思考内容带入上下文来提升多轮推理性能。文章对比了…...

电子小白之二极管

很多年前我第一次看到电路图上各种二极管符号时&#xff0c;心里只有一个想法&#xff1a;这玩意儿到底干嘛用的&#xff1f;硬件部门同事告诉我一句话&#xff0c;瞬间就通了&#xff1a; 正向导通&#xff0c;反向截止&#xff1b;整流防反&#xff0c;稳压发光。 今天就用最…...