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

Posted 数据和云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DBA最好的“枕边故事”丨真实世界Oracle故障诊断之一千零一夜相关的知识,希望对你有一定的参考价值。

云和恩墨 大咖系列报道

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


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

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



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

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


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

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

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

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

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

1
Oracle日常维护中风险

1. CPU

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


2. 内存

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


3. 网络

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


4. OS

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


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


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

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

7. 同一个数据库不同实例看到的参数不一致,但opatchlsinv显示的版本又相同时,但也不一定是真实,如何诊断?O racle0文件是上一个版本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 文件

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


2. 参数建议

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


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

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


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


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


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*/ ….  , 所以建议不要所有问题都偷懒从数据库端解决。

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


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


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


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

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


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

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


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


相比其它同类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带来了哪些影响。

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

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

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

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

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

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


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


之前版本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还在不断更新完善,请持续关注!



扩展阅读






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

数据和云

ID: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企业版,集监控、巡检、安全于一身,你的专属数据库实时监控和智能巡检平台,漂亮的不像实力派,你值得拥有!


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


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


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

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


请备注:云和恩墨大讲堂

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

以上是关于DBA最好的“枕边故事”丨真实世界Oracle故障诊断之一千零一夜的主要内容,如果未能解决你的问题,请参考以下文章

数据库周刊61丨2020年DBA薪资报告;Oracle 12c DG搭建;PG批量数据导入;TiDB集群部署……

DBA专栏丨ESGCI 2020开年工作坊:论文辅导1V1 · 量子管理学

DBA荐读丨德鲁克:人生的下半场该怎样渡过?

技术干货 | DBA之Oracle数据库的备份恢复

尼斯DBA毕业典礼回顾丨蔚蓝海岸最闪耀的中国星!

从Oracle DBA出发,走进GaussDB的世界