数据库管理-第118期 记一次开启附加日志导致的性能问题(202301129)

数据库管理-第118期 记一次开启附加日志导致的性能问题(202301129)

本周二凌晨,为了配合某国产数据库从Oracle数据库能够实时同步数据,在X9M那套一体机上做了开启附加日志的操作,也正是因为这个操作带来了一些小问题。

1 干了些啥?

其实很标准,在主库CDB里面开启附加日志:

ALTER  DATABASE  ADD SUPPLEMENTAL  LOG  DATA;

而这时候在EMCC监控中发现某个PDB开始出现了一些问题:
在这里插入图片描述
数据库两条查询语句出现了大量的latch: cache buffers chains等待,业务方反馈主要是查询几乎卡死,对应操作无法执行。而这两条语句平时执行效率贼高,理应不会出现这个问题,那么根据最近做了啥操作,判定肯定是因为开启附加日志引起的。好的一点是开启附加日志的操作大概在15分钟内完成了,为了快速恢复业务,所以将对应PDB进行了重启操作:

alter pluggable database pdb_xxx close immediate instances=all;
alter pluggable database pdb_xxx open instances=all;
srvctl start service -db xxdbaas -s xxxdb

2 为什么会这样?

首先这里发生的问题很奇怪,如果是开启附加日志引起的异常等待,那么应该是所有PDB都会受到影响,然而受影响的只有一个PDB,在网上和MOS查了一圈过后也没找到具体原因,只能开个SR问问,上传了标准3件套:AWR报表、ASH、tfactl收集的文件之后,后台也很快给了答复:

根据Alter Database Add Supplemental Log Data Hangs (Doc ID 406498.1),启用Supplemental Log ,这个会让所有cursor cache 里的cursor失效,这个应该是导致这些SQL再次执行时候等待latch: cache buffers chains 的原因,通常来讲, 这个等待应该不会很长时间并且这么多会话同时等待,除非sql 性能很差,这个目前在您的环境中看不出来,因为在同一sample 里,很多会话执行同一sql,并且blocker是不同的。这个应该是正常的, 只是在增加supplemental log data 过程中很大概率遇到的一个情况。

这个问题也是我第一次遇到,因为附加日志开启造成的大量等待,也算是吃一堑长一智,以后所有数据库操作还是申请一个高级别的割接操作,割接期间任何影响就有据可依。这里也可以看到,一体机会给一些性能不大好的SQL带来一些幻觉,因为跑的很快;另一方面即是强如Exadata也不能在稍有异常的情况下跑出非凡性能。最终还好业务侧把出问题时间的坑给填了,不说了,看语句优化去了。

3 你以为就完了?

数据库的性能问题确实是解决了,但是还得去PDB里面开全列附加日志,因为要从ADG备库拉取数据,而备库用于日志存储的磁盘组空间很小,因此该国产数据库技术人员提供了下面的语句来开启需要同步的对应表的全列统计信息:

DECLAREsqltest VARCHAR2(200;);
BEGINFOR t IN (SELECT table_name FROM all_tables WHERE owner ='XXXX'))LOOPSqltest := 'ALTER TABLE '||t.table_name||'ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS';EXECUTE IMMEDIATE sqltest;;DBMS_OUTPUT.PUT_LINE(sqltest;);END LOOP;;
END;;

这里吐槽以下几点:

  • loop,查一条拼接一条执行一条,这效率,有点低
  • 变量大小写问题,主要是看着烦
  • 作为DBA不干预业务用户账号密码,那我肯定得用高权限用户去执行,那么只不是缺了个schema拼接内容
  • ADD前面少了一个空格(尴尬症还是强迫症抑或都给整出来了)

总结

老规矩,知道写了些啥!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/205339.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习 | 可视化系列】可视化系列 之 决策树可视化

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

MySQL(免密登录)

简介: MySQL免密登录是一种允许用户在没有输入密码的情况下直接登录到MySQL服务器的配置。这通常是通过在登录时跳过密码验证来实现的。 1、修改MySQL的配置文件 使用vi /etc/my.cnf,添加到【mysqld】后面 skip-grant-tables #配置项告诉mysql跳过权限验证&#…

Python基础语法之学习数据转换

Python基础语法之学习数据转换 一、代码二、效果 一、代码 #数字转换成字符串 num_str str(11) print(type(num_str))#字符串转整数 numint("11") print(type(num),num)#浮点数转整数 float_num int(11.1) print(type(float_num),float_num)#整数转浮点数 num_flo…

Jmeter工具学习三——CSV文件、关联、断言

Jmeter学习三——CSV文件和关联 jmeter做功能测试和做性能测试的区别CSV数据文件设置(读取外部文件,进行分数据驱动)文件设置字段介绍:文件名文件编码如果出现编码问题导致的乱码,如何解决? 变量名忽略首行…

品牌全渠道营销系统如何与不同经销商ERP打通

品牌商在与各经销商ERP系统打通方面面临的挑战。传统的ERP系统往往使得数据收集和合作变得繁琐且低效,导致市场响应迟缓,影响整体的供应链管理和市场决策。我们的解决方案旨在破解这一难题,提供一个全渠道营销系统,它能自动与各类…

Openlayer【三】—— 绘制多边形GeoJson边界绘制

1.1、绘制多边形 在绘制多边形和前面绘制线有异曲同工之妙,多边形本质上就是由多个点组成的线然后连接组成的面,这个面就是最终的结果,那么这里使用到的是Polygon对象,而传给这个对象的值也是多个坐标,坐标会一个个的…

Oracle Linux 9.3 发布

导读Oracle Linux 9 系列发布了第 3 个版本更新,支持 64 位 Intel 和 AMD (x86_64) 以及 64 位 Arm (aarch64) 平台。与所有的 Oracle Linux 版本一样,此版本与相应 RHEL 版本 100% 应用二进制兼容。 对于 x86_64 和 aarch64 架构,Oracle Li…

rabbitmq-server-3.11.10.exe

rabbitmq需要erlang环境 otp_win64_25.1.exe erlang-CSDN博客 https://www.rabbitmq.com/download.htmlhttps://www.rabbitmq.com/install-windows.htmlhttps://github.com/rabbitmq/rabbitmq-server/releases/download/v3.11.10/rabbitmq-server-3.11.10.exe C:\Users\Admi…

【蓝桥杯选拔赛真题25】C++两个数比大小 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++两个数比大小 一、题目要求 1、编程实现 2、输入输出 二、算法分析

多线程(进程池代码)

线程池介绍 那究竟什么是线程池呢? 线程池是一种线程使用模式. 线程过多会带来调度开销,进而影响缓存局部性和整体性能. 而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务. 这避免了在处理短时间任务时创建与销毁线程的代价. 线…

Java计算时间差,距结束还有几天几小时几分钟

文章目录 1、写法2、备份3、LocalDate、LocalDateTime、Date、String互转 1、写法 //静态方法,传入年月日时分秒 LocalDateTime startTime LocalDateTime.of(2023, 11, 22, 15, 09, 59); LocalDateTime endTime LocalDateTime.of(2023, 11, 30, 0, 0, 0); //计算…

关于免费SSL证书

JoySSL是一家提供免费SSL证书的服务商,它的免费SSL证书不仅包括单域名,还包括多域名和通配符的免费证书。这意味着,无论您是只有一个网站的个人用户,还是拥有多个子域名的企业用户,都可以在JoySSL找到适合您的免费SSL证…

Selenium 元素不能定位总结

目录 元素不能定位总结: 1、定位语法错误: 定位语法错误,如无效的xpath,css selector,dom路径错误,动态dom 定位语法错误,动态路径(动态变化) 定位策略错误,如dom没有id用id定位…

OpenAI神秘项目“Q星”浮出水面,它会威胁人类吗?

来源: 现代快报全媒体 2023-11-26 23:55:15 百年之后,人类再看这段OpenAI的“宫斗大戏”,或许会从商战之外,看到2023年的人类面对未知世界忧心忡忡。 是否要继续投入资源,催动AI进化?身处2023年的人类…

ElasticSearch01

ElasticSearch 版本:7.8 学习视频:尚硅谷 笔记:https://zgtsky.top/ ElasticSearch介绍 Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据&#xff1b…

一文读懂Asyncio

什么是Asyncio asyncio 是用来编写并发代码的库,使用async/await语法。 asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。 asyncio 往往是构建 IO 密集型和高层级结构化…

鸿蒙应用开发-初见:入门知识、应用模型

基础知识 Stage模型应用程序包结构 开发并打包完成后的App的程序包结构如图 开发者通过DevEco Studio把应用程序编译为一个或者多个.hap后缀的文件,即HAP一个应用中的.hap文件合在一起称为一个Bundle,bundleName是应用的唯一标识 需要特别说明的是&…

视频字幕处理+AI绘画,Runway 全功能超详细使用教程(4)

runway的视频字幕处理、AI绘图功能介绍,感觉完全就是为了做电影而布局,一整套功能都上线了!想系统学习的必收藏! 在深度研究Runway各个功能后,无论是AI视频生成及后期处理技术,还是AI图像生成技术&#xff…

大厂前沿技术导航

个人看到的,比较好的一些大厂的博客。他们都在积极的更新。在这些地方,总能看到他们最新的动态。这些都是大厂的官方博客,文章的质量都是相对比较高的。水文,肯定不会随便发出来,不然肯定打了自己公司的脸了。腾讯和美…

onlyoffice文件大小超出了服务器设置处理

onlyoffice文件大小超出了服务器设置处理 1.前言2. onlyoffice服务安装2.1 docker安装命令2.2 访问测试 3. 修改服务器文件大小限制方案3.1 旧方案-7.2版本不可行3.1.1 进入 OnlyOffice Document Server 容器3.1.2 编辑配置文件3.1.3 找到并修改文件大小限制3.1.4 保存并退出编…