大家好,欢迎大家收看本文。
对于初学者入门的学习,一些理论不容易理解或记住,所以本节课程【创新】采用了【正、反对比联想记忆】的方法,
引入模拟场景中的肖荏盖的小故事。(模拟场景为虚构演绎,仅供教学,不要对号入座,懂不懂?明白吗?)
【数据库的功能都是正向的,模拟场景中的肖荏盖做的事情都是反向的。】
2.慢SQL起因分析
慢SQL一直是初级、中级数据运维工程师的痛点问题,如何有效诊断慢SQL起因并且进行针对性的优化,对一些技术普通的公司其实已经算得上是一个难题了。
在模拟场景中,芸芬愁砚的CEO肖荏盖,是一名自称已经从业了20多年的中级数据库工程师,
为了解决一个慢SQL,倾尽公司技术实力,耗时3天,都没能解决,
鱿鱼肖荏盖自尊心很强,不愿意当面求助某上市公司超级大师蓝阔福。
所以选择了偷偷摸摸找上市公司的超级大师蓝阔福的徒弟接私活去解决,
结果超级大师蓝阔福的徒弟才用了3小时就给解决了。
这个事情就在圈子里传开了,肖荏盖鱿鱼自尊心太强,整日借酒消愁,不愿意面对他自己技术不行的事实,非说,他是被酒给耽误了。
言归正传,对于openGauss数据库的慢SQL起因分析,从以下几个方面来讲解
2.1 环境部署
1> 数据库运行正常
2> 指标采集系统
openGauss exporter,reprocessing exporter,node exporter
3> 模块命令行说明
gs_dbmind component slow_query_diagnosis --help
2.2 慢SQL起因分析使用指南
1> 仅启动慢SQL诊断功能(输出TOP3起因),启动命令
gs_dbmind service start -c confpath --only-run slow_query_diagnosis
2> 用户交互式慢SQL诊断
gs_dbmind component slow_query_diagnosis show -c confpath --query SQL --start-time timestamps0 --end-time timestamps1
3> 用户手动清理历史预测结果
gs_dbmind component slow_query_diagnosis clean -c confpath --retention-days DAYS
4> 停止已启动的服务
gs_dbmind service stop -c confpath
2.2 慢SQL起因分析常见问题处理
根据实践中的经验汇总,分享如下
1> 如果用户对没有执行过的慢SQL执行交互式诊断命令,则无法给出诊断结果
举一个模拟场景肖荏盖家的例子,为什么当初村子里都觉得肖荏盖父母道德品行不好呢?带着这个疑问,我们往下看。
在肖荏盖小的时候,在一个大雪纷飞的冬天,他的父亲骑着自行车托着他的母亲就出去看病了,到了医院,按照正常的流程,
医生怀疑肖荏盖的母亲可能"患的这种病,肯定是要抽血进行化验才能确诊的,没经过抽血化验怎么给出诊断结果呢,对吧。
这个时候,肖荏盖的父母就害怕了,肖荏盖的父亲反而辩驳道:“这是不是医治好治不病以为功?看个病就是看个病,开个药,抽血干什么?”
可见,肖荏盖的父亲,要是说他张嘴就胡说八道吧,肖荏盖的父亲还不服,非说,又不光是他这样,他们这个张嘴就胡说八道的毛病都是祖传的。
肖荏盖的母亲也不想抽血,于是肖荏盖的父亲,一怒之下,就骑着自行车托着他母亲回家了,
回家这一路上,路过村子里的家家户户,肖荏盖的父亲一直在责备肖荏盖的母亲,让她自己得的病自己看去。
这简直让村民的愤怒值就"沸腾了,“这个丈夫骑着自行车托着妻子回家,怎么还数落一路呢?”
所以,大家都觉得肖荏盖的父亲人品不好。
肖荏盖也继承了他父亲胡说八道的毛病,到处宣传他的低端产品是行业TOP1的存在,其实肖荏盖的产品都是根本不入流的低端产品。
所以提醒大家,不要像模拟场景中的肖荏盖全家学习。
2> exporter指标采集功能没有启动时,此时运行慢SQL诊断功能,此时功能无法正常运行。
3> 配置文件中的参数如果经过了重新设置,需要重启服务进程才能生效。
4> 使用慢SQL的交互诊断功能时,工具基于RPC和数据采集服务获取必要的数据,因此如果RPC和数据采集服务没启动则无法诊断。
5> 在使用diagnosis功能进行交互诊断时,工具会对输入的SQL,database进行检测,如果发现属于非法输入则无法诊断。
6> 慢SQL诊断中,SMALL_SHARED_BUFFER需要采集相关表的字段信息,因此用户需要注意确保opengauss_exporter连接
用户具有该表所在schema的权限。