前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >19c BUG 导致大量gc quiesce等待事件

19c BUG 导致大量gc quiesce等待事件

作者头像
数据和云
发布2020-08-12 14:53:45
6170
发布2020-08-12 14:53:45
举报
文章被收录于专栏:数据和云数据和云

墨墨导读:某省级运营商客户今年进行3套核心数据库迁移19c项目,项目进行过程中遇到不少Oracle BUG。本文介绍在业务测试过程中,由于BUG导致数据库产生大量gc quiesce等待。

问题现象

其中一套数据库在业务测试过程中,业务反馈入库进程缓慢。入库是程序调用SQL*LOADER,在入库前进程会先将表进行truncate。

问题分析

首先从v$session中,可以看到有一些gc quiesce等待,且sql_id不断变化,证明等待的时间不算太长,而且持续不断的发生,sql文本显示都是一些truncate语句,跟入库进程相关。

取awr分析,绝大部分的BD time消耗在gc quiesce等待上,平均等待时间1ms。

且等待全部消耗在truncate语句上。

gc quiesce不是一个常见的等待事件,通过搜索相关资料,信息比较有限。 下面的说明显示:该等待本身不是问题,只是其他一些问题(如:ORA-600)的副作用。 The process was waiting for a GC lock to quiesce. In general, this event should NOT be severe. The wait event itself is not a problem, it is a side effect of other problem (eg, ora-600 or other problem which prevent it from processing further)

且搜索到在10.2.0.3版本上,有一个跟truncate相关的BUG介绍,虽然版本差距较大,但隐约感觉当前的问题依然是BUG引起。

通过SR沟通,答复与Bug 29908777的现象匹配度较高,该BUG目前没有公开的文档资料,但已经有针对我们19.6版本的补丁发布。 具体问题是buffer上的锁在关闭时存在不必要的处理,可能造成导致1秒以内的"gc quiesce"等的等待事件。而这个等待事件是否出现,可能与当时各个节点的缓存状况以及是否有热块有关;而且在涉及较多Buffer的TRUNCATE处理上会表现得明显一些。

问题解决

通过打上29908777补丁,经观察gc quiesce等待基本消失。 平均等待时间由原来的1s降为0.08ms,问题解决。

墨天轮原文链接:https://www.modb.pro/db/27354

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题现象
  • 问题分析
  • 问题解决
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档