Oracle 数据库访问故障(TNS-12535、TNS-00505)解决思路

目录

  • Oracle 数据库访问故障(TNS-12535、TNS-00505)解决思路
    • 一、问题描述
    • 二、故障原因
    • 三、解决思路

用户的两节点 Oracle(11g) 集群10月4日突然无法访问,修复后于10月10日又发生同样的故障。把解决思路做一下记录,希望对从事数据库的同行有一点启发。

一、问题描述

1、10月4日

数据库无法连接,置看主机 IP 地址发现,集群没有分配 scanlP,查看服务器状态发现如下问题:

(1)节点1集群无法连接,节点2正常,但集群的 scanlP 没有漂移到节点2;

(2)查看主机信息,发现主机存储空间占用过多(几百个 GB 的存储空间被使用),经过查询发现是生成了大量的监听日志。

listener.log 文件的大小达到了 200 多个 GB,alert 目录下生成了大量的 xml 文件,文件总大小达到200 多个 GB。

listener.log 文件如下(下面的截图是清理过的,没有保存清理之前的截图):

alert 目录内容如下(该目录中的总文件大小达到 200GB):

解决方法:

(1)把 listener.log 文件清空;

(2)把 alert 目录下的 xml 文件删除,只保留 log.xml。

清理日志之后,集群恢复正常,业务恢复正常。

2、10月10日

数据库访问速度变慢,查看服务器状态也是正常的(没有查看主机的磁盘利用情况),但客户反映所有业务已经停止。征得客户同意,重启 oracle 集群,但在关闭集群时发生异常,集群也无法启动。然后重启操作系统。

服务器重启后2号节点能够正常运行,scanIP 也自动分配到2号节点,用户业务恢复。但发现1号节点的 oracle 集群不能启动。查看主机信息发现和10月4号的情况完全相同,也是生成了大量的监听日志,文件大小占据了所有磁盘空间。如下图所示:

清理了 listener.log 文件了 alert 目录下的 xml 文件之后,服务器和 oracle 集群恢复正常。

考虑到相同的问题在一周以内连续发生两次,这次清理之后还可能再发生同样的问题,需要查找问题的根源所在。

二、故障原因

导出 alert 日志(/u01/app/oracle/diag/rdbms/hisdb/hisdb1/trace/alert_hisdb1 .log),查看其中的错误信息.查看日志发现有大量的客户端访问超时信息:

#################################################################################
# 9月23号, 客户端: 172.170.51.55
#################################################################################
Fatal NI connect error 12170.VERSION INFORMATION:TNS for Linux: Version 11.2.0.4.0 - ProductionOracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - ProductionTCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - ProductionTime: 23-SEP-2022 14:08:23Tracing not turned on.Tns error struct:ns main err code: 12535TNS-12535: TNS:operation timed outns secondary err code: 12560nt main err code: 505TNS-00505: Operation timed outnt secondary err code: 110nt OS err code: 0Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=172.170.51.55)(PORT=1900))#################################################################################
# 10月9号, 客户端: 172.170.51.41
#################################################################################
Fatal NI connect error 12170.VERSION INFORMATION:TNS for Linux: Version 11.2.0.4.0 - ProductionOracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - ProductionTCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - ProductionTime: 09-OCT-2022 18:52:20Tracing not turned on.Tns error struct:ns main err code: 12535TNS-12535: TNS:operation timed outns secondary err code: 12560nt main err code: 505TNS-00505: Operation timed outnt secondary err code: 110nt OS err code: 0Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=172.170.51.41)(PORT=56590))#################################################################################
# 10月10号, 客户端: 192.168.0.64
#################################################################################
Fatal NI connect error 12170.VERSION INFORMATION:TNS for Linux: Version 11.2.0.4.0 - ProductionOracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - ProductionTCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - ProductionTime: 10-OCT-2022 03:24:14Tracing not turned on.Tns error struct:ns main err code: 12535TNS-12535: TNS:operation timed outns secondary err code: 12560nt main err code: 505TNS-00505: Operation timed outnt secondary err code: 110nt OS err code: 0Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.64)(PORT=3430))

查阅相关资料发现:

该问题产生的原因为:由于 Automatic Diagnostic Repository 中的 Oracle Net diagnostic 在默认情况下是开启的,当数据库和客户端的连接超过特定时间,就会把连接信息写入到 alert 日志中,产生大量的监听日志,导致相关的日志文件不断增大。

三、解决思路

1、修改 listener.ora 文件,增加如下内容:

DIAG_ADR_ENABLED_LISTENER=OFF
INBOUND_CONNECT_TIMEOUT_LISTENER=180

如下图所示:

2、重新加载监听配置文件,如下图所示:

3、查看监听状态,如下图所示:

修复之后运行24小时,查看主机存储空间以及监听日志信息,没有出现异常。如下图所示:

(1)磁盘占用信息:

(2)alert 目录信息:

(3)oracle.log 文件信息

Oracle 数据库访问故障(TNS-12535、TNS-00505)解决思路相关推荐

  1. oracle 39083,oracle数据库导入导出时ORA-39083;ORA-00439错误解决思路

    ORA-39083: Object type TABLE:TEST.TEST_SS_NAME failed to create with error: ORA-00439: feature not e ...

  2. Oracle数据库中scott用户不存在的解决方法

    Oracle数据库中scott用户不存在的解决方法 参考文章: (1)Oracle数据库中scott用户不存在的解决方法 (2)https://www.cnblogs.com/hjweifans/p/ ...

  3. 关于Navicat Premium连接Oracle数据库闪退(失败)的解决办法(带ocl.dll)

    关于Navicat Premium连接Oracle数据库闪退(失败)的解决办法(带ocl.dll) 先下载这两个文件(oci.dll.sqlPlus) oci.dll:https://download ...

  4. 数据库正常运行,突然变慢的解决思路

    <数据库正常运行,突然变慢的解决思路> 数据库正常运行,突然变慢的解决思路: 1.查看数据库版本(select * from v$version) 2.查看操作系统的进程(top,ps - ...

  5. mysql数据库突然变慢_数据库正常运行,突然变慢的解决思路

    数据库正常运行,突然变慢的解决思路: 1.查看数据库版本(select * from v$version) 2.查看操作系统的进程(top,ps -ef) 3.查看操作系统的IO情况(sar 1 10 ...

  6. Oracle数据库访问性能优化

    一.百万级数据库优化方案 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断 ...

  7. oracle数据库访问sqlserver2008,透过SQL Server 2008访问Oracle 10g的配置方法

    之前写过一篇关于SQL Server 访问MySQL数据库的文章,最近正好又遇到需要访问Oracle 的情况,将配置过程记录下来也供大家参考. 准备工作 事先在需要访问Oracle 数据库的主机上完成 ...

  8. oracle数据库常见故障及灾难情况分析

    Oracle数据库无法启动或者启动后无法正常工作 从技术角度而言,如果上述故障为突发性的出现,则通常情况下可恢复性极高.检查system表是否损坏,如未损坏则恢复数据难度降低,如果system表损坏就 ...

  9. Oracle数据库性能问题分析的一种常规思路

    点击上方"数据和云" 关注我们! 这两天微信群里在讨论一个Oracle数据库性能问题引起业务问题的案例,一位朋友把分析报告发到了群里.正好有空就看了看,感觉这份报告颇有Oracle ...

  10. 关于Oracle数据库用户密码过期的预防和解决办法

    适用范围:各业务平台Oracle11g数据库 数据库软件:Oracle 故障现象: Oracle11g中默认在default概要文件中设置了"PASSWORD_LIFE_TIME=180天& ...

最新文章

  1. 想学python看什么书-想学习Python做数据分析,应该看哪些书?
  2. linux集群巡检,Linux巡检
  3. (转)浅析当今视频文件的格式
  4. Android系统中自定义按键的短按、双击、长按事件
  5. MySQL5.5的安装,连接和操作
  6. 一直在构建工作空间_大华股份殷俊:AI,构建数字世界的基础
  7. Linux内核设计的艺术
  8. 【蓝桥杯单片机】PWM(LED亮度调节)
  9. [搬运] mac下安装GDB
  10. 屌丝giser成长记-研一篇(上)
  11. 面对性骚扰,Siri Alexa等AI助手如何应对
  12. unity3d 台球源码_基于Unity3d的桌球游戏的设计与实现
  13. 系统服务器iis如何启动不了,win7系统iis启动不了的详细解决步骤
  14. 面试: 华为综合测试
  15. php开发之文件指针,文件锁定
  16. 快速批量删除新浪微博内容
  17. 简单Java的商品模块功能
  18. 小人物走路、奔跑的VC++游戏特效,适合刚学习VC++游戏编程的朋友
  19. I2C的基础概念和框架
  20. 高校GIS系统有何作用?

热门文章

  1. appstore软件销售数据统计分析软件Prismo
  2. 一个程序员的个人感悟
  3. Matlab视觉处理模块定位控制全向轮小车运动:目标跟踪测试
  4. 微信文章如何自动排版
  5. flowable Activiti7 会签
  6. 硬件接口之S/PDIF
  7. CSS指北——浮动(Floating)规则详解
  8. Pyqt5的QGraphicsView的使用-选择图片,显示在GUI中
  9. 解决IntelliJ IDEA中打开JSP文件(使用快捷键Alt+F2)时,弹出的浏览器网页只显示JSP源码
  10. 网易美学-系统架构系列1-分布式与服务化