`
mikixiyou
  • 浏览: 1100670 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353680
社区版块
存档分类
最新评论

Oracle监听器crash问题

阅读更多

数据库Oracle 10.2.0.4 for linux x86 64bit,正常运行430天。在今天早上10点钟,Oracle监听器进程突然宕机。

在操作系统的message中显示错误信息为tnslsnr segfault error 4”,监听器日志文件因为体积达到4GB,没有记录下这次出错日志。

根据错误关键字“tnslsnr segfault error 4”,搜索发现该问题是在负载比较大时,物理内存不足出现页面换入换出触发了bug  6139856 ,从而导致了监听器进程宕机。

说明一点,监听器进程宕机,不会影响已有的连接,只是新建连接不可以了。对于使用连接池的WEB应用影响不大。只要监控机制及时发现该问题,及时重启监听器,就不会带来多大危害。如果内存页面换入换出频繁发生,则需要想办法解决这个问题。

Oracle提供了三种解决方法。第一个方法是增加服务器的物理内存;第二个方法是下载补丁包修复该bug;第三个方式是采用hugepage内存管理机制,替代目前的内存管理机制。

我们去metalink上下载补丁包”p6139856_10204_Linux-x86-64.zip”,安装一下即可。

 

(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1596293)

 

1. 问题

在操作系统日志文件( (/var/log/messages)中错误提示如下:

Jul 17 10:08:44 db200 kernel:tnslsnr[29794]: segfault at 0000000000000018 rip 0000003eab66854d rsp 0000007fbfff9230 error 4 

listener.log中没有记录了,因为该日志文件大小已经4GB,不再有新日志记录进来。

在网上查到的类似日志是这样:

19-NOV-2007 13:40:49 * (CONNECT_DATA=(SID=ORAC)(CID=(PROGRAM=C:\pegasos\te\usys\bin\uniface.exe)(HOST=TERVI-NB179)(USER=kjokioja))) * (ADDRESS= (PROTOCOL=tcp)(HOST=10.12.152.5)(PORT=1670)) * establish * ORAC * 12518 
TNS-12518: TNS:listener could not hand off client connection 
TNS-12571: TNS:packet writer failure 
TNS-12560: TNS:protocol adapter error 
TNS-00530: Protocol adapter error 
Linux Error: 104: Connection reset by peer 
19-NOV-2007 13:40:49 * (CONNECT_DATA=(SID=ORAC)(CID=(PROGRAM=C:\pegaos\te\usys\bin\uniface.exe)(HOST=TERVI-0184A)(USER=paitasal))) * (ADDRESS=(PROTO COL=tcp)(HOST=10.12.176.136)(PORT=1574)) * establish * ORAC * 12518 
TNS-12518: TNS:listener could not hand off client connection 
TNS-12547: TNS:lost contact 
TNS-12560: TNS:protocol adapter error 
TNS-00517: Lost contact 
Linux Error: 32: Broken pipe 

 

2. 分析

因为这个错误可能是bug,所以官方对这个bug的现象列出了下列特征信息。

        nCPU的使用率直达100%

  n数据库的会话数接近于初始化参数的会话数配置

        nCPU使用率负载下监听器突然宕机生成core文件

        n监听器配置文件有这个配置,SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF


该数据库系统没有配置OSW的性能监控,只有一个CACTI的监控,看到的CPU负载情况如下所示:

 

从时间上看,在1008分时,系统的CPU使用率确实快到100%,系统负载也很高。

该信息符合bug描述的特征点。

但是,因为没有详细的vmstat的数据,所以也看不到真实的swap in swap out的大小。

3. 解决

本着解决问题的思路,我们下载补丁,安装后继续观察。增加OSW的性能监控配置,实时记录系统的性能数据,便于诊断类似问题。

0
0
分享到:
评论

相关推荐

    oracle监听器深入讲解

    Oracle 监听器可能会出现的一些常见问题包括监听器无法启动、监听器无法连接到数据库、监听器性能不佳等问题。解决这些问题需要检查监听器的配置文件、Oracle 实例的参数文件、操作系统的网络配置等。 Oracle 监听...

    配置Oracle监听器

    Oracle监听器是Oracle数据库系统的重要组成部分,它负责管理和控制数据库实例与客户端应用程序之间的网络通信。在Oracle数据库环境中,监听器是运行在服务器端的一个后台进程,它的主要职责是监听来自客户端的连接...

    如何配置Oracle监听器

    ### 如何配置Oracle监听器 在Oracle数据库管理与维护中,正确配置监听器是确保数据库服务正常运行的关键步骤之一。监听器的主要职责是接收客户端连接请求,并将其分发到相应的数据库实例。如果监听器配置不当,则会...

    Oracle 监听器 Listener资料.docx

    Oracle 监听器 Listener 资料 Oracle 监听器 Listener 是一个重要的数据库服务器组件,在整个 Oracle 体系结构中,扮演着重要的作用。它负责管理 Oracle 数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是...

    oracle监听器配置

    tnsnames,呵呵,办公室网速不是很好,只能先上传比较小一点的文件来赚取积分了

    oracle监听程序安装

    oracle监听程序安装 实用简单

    说说Oracle监听器(二)

    Oracle监听器还涉及到注册机制,分为静态注册和动态注册。静态注册在启动监听器时就指定要监听的实例和服务名,即使实例尚未启动。静态注册的配置在listener.ora文件中,每个SID_DESC代表一个配置项,包括实例名...

    windows 启动关闭Oracle监听和服务

    本文将详细解释如何启动和关闭Oracle监听及服务,以及如何重新配置监听。 首先,Oracle监听是Oracle数据库系统中的一个重要组件,它的主要职责是接收客户端的连接请求,并将这些请求转发到相应的数据库实例。监听...

    Oracle监听器维护管理v1.1

    Oracle监听器是数据库系统的重要组成部分,它在Oracle数据库与客户端应用程序之间起着桥梁的作用。本文档详细介绍了Oracle监听器的工作原理、主要功能、基本操作、动态注册与静态注册、监听日志管理和分析以及针对...

    centos,linux安装oracle监听,常用oracle命令.docx

    安装 Oracle 监听器和常用 Oracle 命令 在本文中,我们将详细介绍如何在 CentOS Linux 上安装 Oracle 监听器,并介绍一些常用的 Oracle 命令。 一、安装 Oracle 监听器 在安装 Oracle 监听器之前,需要检查相关的...

    浅析Oracle监听器安装与配置.pdf

    浅析Oracle监听器安装与配置.pdf

    oracle监听服务无法启动问题解决

    oracle监听服务无法启动问题解决,ORA-12541解决办法

    解决oracle监听器不能识别描述符

    解决oracle监听器不能识别描述符

    Oracle监听器服务不能启动的问题.docx

    ### Oracle监听器服务不能启动的问题解析 #### 一、问题背景 在尝试通过客户端连接到Oracle服务器时,遇到“ORA-12541: TNS: no listener”错误提示,这表明Oracle监听器服务未能正常工作。进一步操作时,在服务器...

    快速关闭oracle和监听器

    快速关闭oracle和监听器,节约资源!

    oracle监听程序安装.pdf

    通过以上步骤,可以有效地配置Oracle监听器和本地服务名,实现客户端与服务器之间的稳定连接。此外,还应定期检查监听器的日志文件,以便及时发现和解决问题。在大型企业级应用中,可能还需要考虑高可用性和性能优化...

    Oracle 单一主机多个实例多个监听器配置

    在Oracle数据库环境中,为了满足高可用性和资源优化的需求,常常会遇到在单一主机上配置多个实例和多个监听器的情况。这种配置方式不仅能够提高资源利用率,还能实现更细粒度的管理和控制。本文将深入探讨如何在...

Global site tag (gtag.js) - Google Analytics