查看原文
其他

DBA最好的“枕边故事”丨真实世界Oracle故障诊断之一千零一夜

张维照 数据和云 2024-03-03
云和恩墨大咖系列报道

2019数据技术嘉年华于11月16日在京落下了帷幕。大会历时两天,来自全国各地上千名学术精英、数据库领袖人物、数据库专家、技术爱好者在这里汇聚一堂,围绕“开源 • 智能 • 云数据 - 自主驱动发展 创新引领未来”的大会主题,共享"开源自研,云和数据,智能运维,智能业务,数据前沿,用户实践"六大主题盛宴。


近期,小编为大家精心准备了“2019数据技术嘉年华——云和恩墨大咖系列”分享。在此次嘉年华大会上,云和恩墨专家团聚焦行业热点,分析典型案例,探索数据价值,共论智能未来。

让我们跟随云和恩墨专家团一同回顾嘉年华的精彩瞬间,领略他们眼中的数据之美吧~



2019数据技术嘉年华 张维照先生现场演讲图

本期,我们请到云和恩墨交付总监 张维照先生,张维照有超过10年的一线数据库维护经验, 热衷于数据库性能调优和故障诊断,是一名 Oracle ACE-A。本次嘉年华他带来题为:真实世界Oracle故障诊断之一千零一夜主题分享。下面,让我们跟随张维照的文字,走进他的 “一千零一夜” 篇章。


注: 点击文章底部“阅读原文”,立即下载张维照老师本次大会PPT!


今天很高兴来到这里, 我是张维照,“运维”的“维”,(~o_o~)。从事Oracle DBA一线工作十年有余, Oracle ACE-A,工作之余会在我的Blog(anbob.com)分享一些日常维护工作中遇到的有意思的案例和学习成果。开始为了督促自己进步,利用google搜索自己文档方便,后来就这么坚持至今, 可能世界上所有的坚持都是因为热爱。

身处在知识大爆炸的时代,获取知识的途径更加廉价和丰富, 数据库类型更是“百花齐放”,“万象更新”,开源、国产、云数据库开始崛起。首先,开源不是免费午餐,更不能只关注开源本身,重要的是开放的生态不能选择进入技术堡垒。再者,正如本次大会主会场行业大咖们所说, 如果国产库总是“慢一步”,那是不会有未来的。也希望国产数据库的崛起, 性能不是数据库的全部,稳定与安全同样应该放在首位。 最后,我想提一点,不能上了某云就无法换云,选择国产也不应该是重走长征路。于我个人而言,我也关注学习其它几个数据库,我喜欢所有数据库,但是发现Oracle依旧是我“初恋“。

  ”一千零一夜“系列故事集可能是家中有小孩子床头必备书,刚开始接到分享任务时,我不确认要分享什么。我突然想到,几年前做好的电子书整理,但一直没有分享, 这次我希望把我分析故障的案例中一部分经验分享出来, 望大家在做相同操作起到一点预防或运维规范参考作用。非一线城市的客户在最佳实践、规范化方面还是相对较弱,我希望今天的分享能让他们多一些预防,少一些救火。Oracle技术是个知识的海洋,我只能分享点滴,诊断故障是一种能力,避免故障同样也是能力。

1Oracle日常维护中风险

1. CPU


2. 内存


3. 网络


4. OS



5. 同样还有存储空间也不是一次给足,一劳永逸,同样存在数据库db_files资源上限,文件系统inode上限,directory index上限等。

6. 一次One-off patch28423598 安装后,因为启动方式的不同,sqlplus启动报错,srvctl start instance正常,结果发现补丁缺陷导致oracle执行文件权限存在差异。

7. 同一个数据库不同实例看到的参数不一致,但opatchlsinv显示的版本又相同时,但也不一定是真实,如何诊断?Oracle0文件是上一个版本oracle文件的备份,确认了之前升级失败导致。

8. 11.2.0.4 迁移PL/SQL package一个很平常的操作,居然在导入后package body总是invalid, 导入过程中corrupted, 后分析原来是时wraped PL/SQL中如果首尾出现“/”符号,会出来这个问题是当前版本的BUG。

9. 平时一个很平常的RMAN备份还原迁移,结果因为在备份还原中使用了parallelism, 在写入Veritas 文件系统后,因为veritas 也是和Oralce table一样是extent的结构,结果写不连续,一个8G的数据文件生成了17万个碎片,而导致在检索巨大的元数据时,耗费了大量的CPU, 影响了IO效率出现约10倍左右的衰减。

10.  数据库中存入的一个‘\0‘字符,而导致了C 语言程序在读取字符时,自认为是字符串结束符,而出现的截断,影响了应用程序字符解析。

2升级12C 后容易遇到的问题

1. 升级12c存在一些情景过度生成trace 文件


2. 参数建议


3. 升级后优化器 语法转换失败的解决方法




3案例优化SQL解析高而引入了bug


Dbms_shared_pool.markhot() 用于降低lib cache 的对象操作wait Library cache: mutex X, 如version count 高时search ,pin,unpin child  的cursor. cursor: mutex s/x , Markhot 会依赖CPU 个数创建不同的副本, 当然最佳是改应用代码加 虚拟hint
如/*copy1*/  /*copy2*/ ….  , 所以建议不要所有问题都偷懒从数据库端解决。




问题时间 ASH 出现较高的log file sequential read等待。


分析是又触发了一个内部错误,而自动生成的redo dump。



相比其它同类RDBMS, MySQL每个SQL都是硬解析,延伸记录一下PostgreSQL 12中对于SQL游标共享的处理方法Prepared Statements。Oracle会把执行计划存储在shared pool(Library cache)中对于所有会话可以共享,但同时高并发时可能会出现librarycache争用,但是PG不同,其存储在program的本地内存中,只能给会话级复用。在PostgreSQL V12版本中引入一个参数 plan_cache_mode,有三个值auto(default) 、force_custom_plan 和 force_generic_plan,记录三个参数对于CBO带来了哪些影响。

4Oracle19c 自动索引的一种应用场景

Oracle的很多技术不得不感叹,确实是走在关系型数据库的前沿。Oracle 19c自动索引技术首次引入,是AI在DB领域一次创新。
 



之前版本Index monitor是一种排除法, 19c的自动索引更像是一种清空后的加法。使用在线克隆PDB的功能,复制一套测试环境,然后调用dbms_auto_index.DROP_SECONDARY_INDEXES清理掉所有不影响业务完整性约束的索引。然后根据测试SQL按需评估创建AI索引。这样就可以比对原系统人工创建和AI自动索引的差异性。
 
规范化、标准化是自动化的前提,希望在前期规划和维护前多一些思考与敬畏,减少一次故障的发生。Oracle有很多最佳实践, 也许在不同行业有一些不同的触发场景, 规范也略有不同, 只有多测试方可找到适合自己的最佳实践。例如我在一个关于癌症的宣传中看到,世界卫生组织把65度以上热饮归为致癌物,而我们还在一直强调“趁热喝”,道理是相通的,不是么?


小编提醒关于《2019数据技术嘉年华PPT》共有两个获取途径:
1. 在“数据和云”公众号后台回复:2019dtc,即可下载!
2.在“墨天轮”上,已按13个会场整理了目前所有已经开放的PPT,大家可以选择感兴趣的主题下载,详情:https://www.modb.pro/db/11553,复制到网页中打开。
PPT还在不断更新完善,请持续关注!



扩展阅读



  1. 倏忽相聚,共论创新:干货满满的嘉年华落下帷幕

  2. 自控力差,你可能忽略了一种更底层的能力

  3. 企业级分布式 HTAP 数据库管理系统,腾讯 TBase 正式开源  

  4. PostgreSQL学习的九层宝塔

  5. MySQL和PostgreSQL在多表连接算法上的差异

  6. 分布式事务中间件你知道哪些?

  7. 史上最全Oracle数据泵常用命令

  8. 如何巧妙处理enq: TX - index contention问题?

  9. 如何在ORACLE CLOUD中创建和访问容器集群丨内附官方文档链接

  10. 替换Oracle,从阿里巴巴到亚马逊-他们在逃离什么?



数据和云

ID:OraNews

如有收获,请划至底部,点击“在看”,谢谢!


资源下载

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

help,30万+下载的完整菜单栏

2019DTCC,数据库大会PPT

2018DTCC , 数据库大会PPT

2018DTC,2018 DTC 大会 PPT

ENMOBK《Oracle性能优化与诊断案例》

DBALIFE,“DBA 的一天”海报

DBA04,DBA 手记4 电子书

122ARCH,Oracle 12.2体系结构图

2018OOW,Oracle OpenWorld 资料

产品推荐

云和恩墨Bethune X企业版,集监控、巡检、安全于一身,你的专属数据库实时监控和智能巡检平台,漂亮的不像实力派,你值得拥有!



云和恩墨zData一体机现已发布超融合版本和精简版,支持各种简化场景部署,零数据丢失备份一体机ZDBM也已发布,欢迎关注。


云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群


请备注:云和恩墨大讲堂

戳这里,阅读原文(注: 点击下方“阅读原文”立即下载本次大会张维照老师PPT
继续滑动看下一个

DBA最好的“枕边故事”丨真实世界Oracle故障诊断之一千零一夜

张维照 数据和云
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存