关注我们,下载更多资源

作者 | 张维照,Oracle ACEA,2006年起从事数据库管理工作,2009年转 Oracle,从事过多套 TB 级省级工商、医疗、交通、人社、电信运营等数据库维护优化工作,擅长Oracle 数据库性能问题的分析与解决,Oracle数据库故障分析,Oracle数据库升级迁移。

case 1


之前有套 11.2.0.3 RAC on HPUX 数据库环境突然出现较高的 latch: free wait event, 该 event 在 10G 以后的版本较为少见(已经细化为具体latch) ,  通过 p1 或者 p2 值可以确认具体 latch. 下面记录一下这个问题。

注意:
具体的 latch 是“transaction branch allocation” 常见于多个新会话logon开始新trasactions时。

收集该时段AWR

注意:

注意latch free, transaction branch allocation占用较高的db time, latch 位置主要是ksupuc(kernel service user processes push user call), 和ktcsbr(kernel transaction control component state branch), 同时每秒logon在10, 每秒事务在860左右, 是一个较忙的数据库, 同时CPU 使用率高达98%。 是否在是CPU 较高时触发了某个BUG? 在MOS中查找发现命中一Bug 20130575 .

该BUG在影响11.2.0.3 、11.2.0.4 、12cR1 ,在12c R2版本中修复,在一些版本中提供one off patch, 但是在当前平台版本没有相应的bug. 因版本已过服务期,无法提供新的BUG. 该问题会在经过一段时间后自愈,还会间隔出现, 属于一种程序代码缺陷,没有其它有效的手段, 我分析该bug 应该于cpu high usage 有间接关系,于时建议部分应用调整到了另一节点, 规避该问题,调整后CPU降到70%左右后,该问题没有再出现。

case 2


问题背景:此问题发生在 Oracle RAC 环境11.2.0.3,db 警报日志显示SMON频繁引发 Ora-21780故障,这些错误无法清除某些对象时,这篇文章简单记录了这个案例,以及如何修复这个故障。


#db警报日志

Fri Nov 02 09:55:59 2018
Errors in file /oracle/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_smon_12872.trc:
ORA-21780: Maximum number of object durations exceeded.
Errors in file /oracle/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_smon_12872.trc:
ORA-21780: Maximum number of object durations exceeded.
Errors in file /oracle/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_smon_12872.trc:
ORA-21780: Maximum number of object durations exceeded.
Errors in file /oracle/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_smon_12872.trc:
ORA-21780: Maximum number of object durations exceeded.
Errors in file /oracle/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_smon_12872.trc:
ORA-21780: Maximum number of object durations exceeded.
Errors in file /oracle/app/oracle/diag/rdbms/anbob/anbob1/trace/anbob1_smon_12872.trc:
ORA-21780: Maximum number of object durations exceeded.


注:

Rais Ora-21780

#Smon跟踪文件

*** 2018-11-02 09:59:27.930
SMON: following errors trapped and ignored:
ORA-21780: Maximum number of object durations exceeded.*** 2018-11-02 09:59:29.468Drop transient type:   SYSTPeJCgNOyAXhHgVEgPz2hhrg==*** 2018-11-02 09:59:29.468
SMON: following errors trapped and ignored:
ORA-21780: Maximum number of object durations exceeded.*** 2018-11-02 09:59:34.478Drop transient type:   SYSTPeJCgNOyAXhHgVEgPz2hhrg==*** 2018-11-02 09:59:34.478
SMON: following errors trapped and ignored:
ORA-21780: Maximum number of object durations exceeded.Drop transient type:   SYSTPeJCgNOyAXhHgVEgPz2hhrg==

注:
似乎要多次删除同一个对象,对象是名为“SYSTPeJCgNOyAXhHgVEgPz2hhrg=”的瞬态类型,此问题似乎只发生在RAC环境中,默认清理时间为12小时。

什么是“瞬态类型”对象?

瞬态对象:在名称上,瞬态对象是在应用程序期间任何时候创建和销毁的临时对象,其寿命不超过应用程序的寿命。不能将它们转换为持久对象,因为这些对象仅用于存储临时值以供计算。

对象类型可用作:

1.Oracle表中列的数据类型。
2.对象实例在PL/SQL程序单元中声明期间的数据类型。
3.另一个对象或集合类型的属性。
4.程序和函数签名中的形式参数。
5.函数的返回类型。

提示:从Oracle数据库第12c版和第12.2版开始,可以在活动数据保护实例上创建瞬态类型,条件是:
实时应用程序是在活动数据保护程序上运行的,而逻辑待机时间并不远远落后于主站(通常是秒的顺序)。


解决办法:

1]首先,您可以禁用以前推荐的事件,因为我们已经有了错误堆栈跟踪:

$ sqlplus / as sysdba
alter system set events '21780 trace name context off';
exit

[2]第二,请手动删除当前顺泰类型如下:

$ sqlplus / as sysdba
SQL> select 'drop type "'||o.name ||'" FORCE; --'||o.owner#||o.ctime
from obj$ o, type$ t
where o.oid$ = t.tvoid and
bitand(t.properties,8388608) = 8388608 and (sysdate-o.ctime) > 0.0007;

一旦遇到问题,缓冲区缓存Flushing可以解决它。

注:

我们可以重新安排这个自动清理每一个小的时间段。例如将其设置为30分钟如下

$ sqlplus / as sysdba
alter system set event='22834 trace name context forever, level 30' scope=spfile;
shut immediate
startup

通过设置事件22834,可以防止SMON清理瞬态类型。但是,这会导致瞬态类型增加。

原创:张维照


资源下载

关注公众号:数据和云(OraNews)回复关键字获取

2018DTCC , 数据库大会PPT

2018DTC,2018 DTC 大会 PPT

DBALIFE ,“DBA 的一天”海报

DBA04 ,DBA 手记4 电子书

122ARCH ,Oracle 12.2体系结构图

2018OOW ,Oracle OpenWorld 资料

PRELECTION ,大讲堂讲师课程资料

近期文章

企业数据架构的云化智能重构和变革(含大会PPT)

Oracle研发总裁Thomas Kurian加盟Google Cloud

变与不变: Undo构造一致性读的例外情况

Oracle 18c新特性:动态 Container Map 增强 Application Container 灵活性

Oracle 18c新特性:Schema-Only 帐号提升应用管理安全性

Oracle 18c新特性:多租户舰队 CDB Fleet (含PPT)

为什么看了那么多灾难,还是过不好备份这一关?

如何处理会话等待事件与ORA-21780故障相关推荐

  1. oracle 会话数上不去_程序员笔记|全面解析Oracle等待事件的分类、发现及优化

    一.等待事件由来 大家可能有些奇怪,为什么说等待事件,先谈到了指标体系.其实,正是因为指标体系的发展,才导致等待事件的引入.总结一下,Oracle的指标体系,大致经历了下面三个阶段: 以命中率为主要参 ...

  2. ORACLE等待事件:direct path write

    2015年4月27日,晚上6点左右,电渠3g2库ORACLE RAC系统节点1出现大量的direct path write等待事件,导致大量的会话堆积,节点1几乎无法使用,应用受到影响,相关处理流程如 ...

  3. 11g oracle xe启动_详解Oracle等待事件的分类、发现及优化

    一.等待事件由来 大家可能有些奇怪,为什么说等待事件,先谈到了指标体系.其实,正是因为指标体系的发展,才导致等待事件的引入.总结一下,Oracle的指标体系,大致经历了下面三个阶段: 以命中率为主要参 ...

  4. 全面解析Oracle等待事件的分类、发现及优化

    作者介绍 韩锋,宜信技术研发中心数据库架构师.精通多种关系型数据库,曾任职于当当网.TOM在线等公司,曾任多家公司首席DBA.数据库架构师等职,多年一线数据库架构.设计.开发经验.著有<SQL优 ...

  5. mysql 有等待事件,排查性能详情中活动会话正在 SYNCH 等待事件状态下等待的问题...

    为什么我的 MySQL 数据库实例在性能详情中显示大量活动会话正在 SYNCH 等待事件状态下等待? 上次更新时间:2020 年 12 月 14 日 我有 RDS MySQL.RDS MariaDB ...

  6. mysql 查看等待事件_分享两个实用SQL--查看故障时间等待事件、问题sql及会话访问次数...

    分享两个SQL,这两个SQL只是基础原型,大家自己自定义条件去做一些调整.主要是在前面讲过的dba_hist_active_sess_history相关sql上总结出来的比较实用的sql. DBA_H ...

  7. shell sqlplus执行sql文_如何通过 Shell 监控异常等待事件和活跃会话

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,分开这么久很高兴又和 ...

  8. 如何通过 Shell 监控异常等待事件和活跃会话

    前几天有网友在墨天轮平台上问到"如何写一个定时任务监控用户会话连接数"的问题,由于当时比较忙,回答的比较简单也比较匆忙.最近也因为公司新项目老是加班,运维保障,安装 RAC.搭建 ...

  9. 遭遇cursor:pin x等待事件定位阻塞会话诊断过程

    环境描述:DB:10.2.0.4.0 /OS:AIX 5.3 (64bit) 问题描述: 1.会话A执行如下命令被挂起 SQL> exec dbms_shared_pool.purge('070 ...

最新文章

  1. Spring Boot 2.2.1 正式发布,需特别注意这个注解的使用!
  2. HTML 5 Web 音频
  3. Java程序员从笨鸟到菜鸟之(七十)细谈Spring(三)IOC和spring基本配置详解
  4. arcsoft panorama maker 6_葫芦娃 本领大——中国邮政将于2020年6月1日发行动画——葫芦兄弟特种邮票...
  5. AUTOSAR从入门到精通100讲(八十五)-AUTOSAR基础篇之BswM
  6. 一直想说的,技术职业化
  7. 锁底层之内存屏障与原语指令
  8. java 观察者模式_重学 Java 设计模式:实战观察者模式「模拟类似小客车指标摇号过程,监听消息通知用户中签场景」...
  9. 招聘 | 微生太高薪招聘多组学生信官(硕士及以上),月薪12k(北京为例),全国均可办公,推荐成功者奖励2000元...
  10. 微型计算机中的80586指,一级B考试模拟试题-套,DOS版本:6.0
  11. LeetCode1.两数之和
  12. 64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本
  13. [linux]redhat7.6 安装telnet
  14. 班级管理系统java_基于Java班级管理系统
  15. 暑假学习打卡【3】——北理工乐学第三周作业
  16. 如何在Java中将字符转换为ASCII
  17. Android开发环境的搭建教程
  18. easyUI中combobox中idFeild和textFeild的取值方法
  19. Win系统 - 如何添加新用户,怎么添加管理员帐户?
  20. 笔记本电脑外放没声音,或外放有声音/插耳机没声音———Realtek High Definition Audio Driver安装

热门文章

  1. 为什么我选择工作很难做选择_为什么公开工作(即使很难)
  2. HTML div元素
  3. Bootstrap 导航条
  4. mlag 堆叠_三分钟了解VRRP、堆叠、M-LAG
  5. Vrep中支持的运动规划算法
  6. 深度学习笔记(10) 优化算法(二)
  7. linux 分段路由怎么添加,一种IPv6实现分段路由的方法及装置与流程
  8. linux中wait()系统调用的例子,linux进程管理之wait系统调用
  9. android获取其他app布局,android - 如何从App的(布局)XML变量中获取Manifest版本号?...
  10. Python基础-ConfigParser模块