资讯专栏INFORMATION COLUMN

ORA-07445导致RAC节点一频繁重启问题排查和解决方案

IT那活儿 / 1128人阅读
ORA-07445导致RAC节点一频繁重启问题排查和解决方案
环境介绍

数据库版本:11.2.0.4

操作系统内核版本:CentOS Linux release 7.4.1708 (Core)

数据库架构:11G R2 RAC环境


问题背景

巡检发现数据库最近发生了重启,通过GV$DATABASE视图查到具体的时间点,初步定为认为是数据库负载过大导致的,尝试打印相应的awr报告和通过对应时间点的alter日志查看是否有报错。


问题分析

1. 巡检数据库状态:

找到最近一次重启的时间点,按照时间点打印对应的awr或是ash报告分析数据库负载。

set feedback off
set linesize 256
set pagesize 50000
set long 999999999
alter session set nls_date_format=yyyy-mm-dd hh24:mi:ss;
alter session set NLS_TIMESTAMP_FORMAT=YYYY-MM-DD HH24:MI:SS.FF;
alter session set NLS_TIMESTAMP_TZ_FORMAT=YYYY-MM-DD HH24:MI:SS.FF TZH:TZM;
select d.inst_id,d.name,i.instance_name,i.startup_time,i.status,d.open_mode from gv$database d,gv$instance i where d.inst_id=i.inst_id;

2. 打印AWR报告

通过打印AWR报告发现12号当天固定时间点出现断点,从awr报告的断点中可以知道12号0点,2点,4点,6点直到当天的14点,固定整点发生节点一重启问题。

3. 通过分析alter日志查询对应整点的情况

less log.xml

查询/ORA-07445报错,核实对应时间点都有ORA-07445报错,初步猜测数据库一节点自动重启和这个报错相关,时间点刚好吻合。

4. 按照alter日志打印的trc核实相应trc日志:

发现trace日志中有一个存储过程,采用拼接的方式绑定大量变量,绑定变量的个数查过数据库上线65535。

5. MOS上查询相关报错:

按照截图收缩可以找到对应的mos文章737378.1。核实数据库触发了 Bug 12578873

,此bug完全符合此场景。

6. 解决方案

经核实目前11.2.4版本,此bug提供的修复平台只有exadata和windows平台,因此只能采取Workaround给出的建议,协调开发修改存储过程逻辑,减少变量的绑定,避免触发此bug,最终开发修改了相关逻辑,数据库因此导致的宕机问题消除。

Description

This bug is only relevant when using PL/SQL
When using more than 65535 bind variables from PL/SQL we could
get a crash under opiaba(). This issue can also cause a memory corruption
and a subsequent ORA-600 and/or instance failure.

Workaround

Reduce the number of bind variables


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129861.html

相关文章

  • DBASK问答集萃(2)

    摘要:新晋技术专家下面是墨天轮部分新晋的技术专家。大家可以点击往期阅读墨天轮技术专家邀请函了解详情,申请成为我们的技术专家,加入专家团队,与我们一起创建一个开放互助的数据库技术社区。新关联公众号墨天轮是一个开放互助的数据库技术社区。 引言 近期我们在DBASK小程序增加了数据库 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的专题栏目和一些新的技术...

    liuchengxu 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<