编辑手记:每一个优秀的DBA都值得拥有Bethune,一款最佳的数据库运维助手。
如果把运维工作从紧急/重要两个象限去进行划分,运维工程师通常关注,或者说价值体现在紧急而重要的事情上。
通常出现这些故障,数据库都无法为业务提供正常的数据存取服务。而企业的一切生产活动都是围绕数据展开。因此核心数据库出现这些问题,对于企业来说损失都是巨大的。
5年来,云和恩墨为客户恢复了无数套正常情况下已经宣布死亡的数据库。因此,在行业或者客户的眼里,我们的形象可能是这样的
一个面对灾难无所畏惧的消防人员,通过我们专业的技能持续奋战,挽救客户的数据于水火。为此我们感到骄傲,是的,我们是。但今天我想告诉大家:我们不只是这样。
熟悉云和恩墨的朋友都知道我们公司聚集了一批行业内的专家,特别是Oracle领域。在我们对客户的服务过程中又积累了大量的案例和经验。 因此,我们希望通过一个平台来汇集专家们的经验,结合数据分析和挖掘为IT系统提供智能化的分析服务。这就是我们推出的Bethune,一个强大的数据库健康分析平台。
1
白求恩的使用流程
- 在我们的产品网站(bethune.enmotech.com)上下载一个抓取脚本,用于采集数据库的配置、数据运行状态及历史数据等,并自动打成一个压缩包。这个数据包通常在几兆到十几兆左右。
- 在下载页面看到我们采集脚本的具体用法,我们的采集采集程序用perl 语言进行编写。由于perl 是Oracle 软件自带的语言,并且文本处理能力强大。所以我们选择了perl,并且将我们的采集脚本开源。用户下载了采集脚本后可以直接在编辑器里面浏览我们的源代码。
- 由于采集环境的不同,你可能在采集的时候需要按照我们的帮助文档去做一些设置调整。采集完成后的数据会自动达成一个zip包。你仍然可以解压之后查看Bethune采集的原始数据。以便对于数据安全非常谨慎的dba确认Bethune没有抓取系统里面的业务数据。
- 数据包成功上传后,新系统需要填写一些简单的描述信息。老系统会自动关联数包系统。
- 然后根据你的体检目的和关注项选择分析模板,生成一份系统诊断报告,或者根据历史数据,生成一份对比报告。
这是Bethune的控制台页面,你使用该平台的状况在上面可以直观地看到。
2
你最佳的运维助手
对没有使用过该平台的用户,我们做了友好的tour一步步的引导你使用,也可以通过帮助页面查看使用方式
有经验的dba都知道,一个全面的数据库巡检需要检查大量的数据。我们需要将大量的、多维度的数据进入到Bethune分析平台后,做数据清洗、结构化和聚合分析。 最终呈现出来的不仅仅是数据,而是符合工程师逻辑的,可视化的信息。
我们对信息进行了分类,你可以通过报告顶部的两层导航进行查看。数字提示你我们检查到的风险数
这是我们的建议。我们对建议进行了分类和分级:
3
白求恩的创新视图
比如在topsql 选择上。在一个awr里面我们可以快速的识别按照执行时间或者资源消耗排序的 topsql,但Oracle数据库默认每一个小时就会产生一个awr snapshot,一个snapshot 里面至少包含几十条topsql。在一周甚至一个月的awr snapshot 里面。到底哪些sql值得你真正关注?这个不仅仅需要数据库的专业知识,还需要做一定的统计分析。
Bethune topsql 智能推荐引擎,基于采集到的数据样本,从dbtime整体相关性和峰值影响两个维度去给你推荐了值得你关注的10条topsql。我们在sql summary 表格里面展示了该top sql 在采集周期里面的性能汇总数据。点击sql_id,还能看到该sql 的详细资源消耗,获取行数的趋势。执行计划的细节。执行计划里面涉及到对象的统计信息。一应俱全。丰富而关键的信息,节省了运维工程师大量的发现问题和诊断问题的时间。
这是topsql的总览,我们通过算法算出值得你关注的10条topsql之后,在awr的性能数据里面去做了历史趋势绘图。注意这个地方(n条汇总),这个意味着我们不光按照sql_id,对于没用绑定变量的sql的资源消耗,我们也是做了汇总的。
被我们双算法标注的sql,非常值得你关注。
如果你不知道这些维度是什么意思。鼠标放在标题旁边小图标i上就有说明
这些都是我们统计分析的维度,在awr指标的基础上,做了延展。也许只告诉你sql,对于想探究sql的dba来说是不够的。
4
白求恩实现SQL优化
点击sql_id,还能看到该sql 的详细资源消耗,获取行数的趋势。执行计划的细节。
点击对象,对象涉及的表信息,列信息,索引信息,分区信息,一应俱全
有这样完整的信息,节省了运维工程师大量的发现问题和诊断问题的时间。
光有这些信息,我觉得还不够。如果你不会优化sql,我尝试告诉这条sql到底哪儿有问题
看看我们给出的建议,即便你不点开看sql的细节,我们的建议会告诉你sql到底哪儿出了问题。
我们会去给你找这条sql的性能以前是否好过,如果有,好的执行计划是什么,方便你去进行调优。Bethune 智能性能分析,像专家一样去帮你分析topsql
SQL(g6c1zr1u7ugav) 在采样期平均单次执行逻辑读为 34459.13, 其最新执行计划涉及 2 个对象,平均单个对象的逻辑读较大。采样期内,该 SQL 共有 2 个执行计划,其中逻辑读最小的执行计划即最新的执行计划 3148001572(Buffer Gets: 27.12)。--------这个是我们另外一条sql的建议
这是我们监听日志的一个图,在IT系统巡检的时候,日志数据也是非常重要的。通常一个繁忙的业务系统日志数据量是庞大的。
5
数据安全分析
Bethune 也没有忽略Oracle系统运行过程中产生的重要日志:告警日志和监听日志。在监听日志的展示上,我们使用了矩形树图来展示应用连接IP分布的情况。并且直接输入一个IP段,就可以绘制出整个IP在采集周期里面每小时的链接趋势。帮助工程师发现链接异常的情况。
我们还做了孤立ip分析,对于企业网络环境,IP通常都在同一个子网里面,如果有不在同一个网段的ip,我们给出了你提示
并且我们还给你提示出你的数据库出现的链接风暴
在容灾与备份里面,我们会去给你检查备份的可恢复性。所有的文件,归档是否正常备份
6
日志分析与性能报告
在告警日志的巡检部分,除了展示数据库实例和asm实例和报错次数的趋势。我们还对告警日志里面的报错信息进行了分类展示,并且记录并展示了每一次报错的详细信息以及上下文环境,以及对应的trace文件提供下载。
ckpt not complete 虽然不是个报错,但我们知道他的危害比报错还严重,整个数据库的dml都会被hang住。当你发现这个问题的时候,你就要去查看是否日志产生量过大,还是日志组设置不合理。后续我们会计算你的ckpt not complete 在采集周期内,影响了多长时间。
我知道老dba都依赖awr,在采样周期里面每个节点的top3 awr我们都采集出来了。
同一个系统不同时期的数据可以用来生成对比报告,对比报告也是Bethune突破单次巡检给dba带来的数据积累价值
这是我们对比报告,注意awr里面的时间序列在对比报告里面被我们重绘成一个周。
对于系统核心的等待事件响应时间的变化,如何比较并进行展示已经超越了数据库专业知识的范畴。在对比报告中,我们引入了统计学上专业的箱线图,对响应时间的数据分布进行描述。让你轻松对数据库核心等待事件响应时间有个整体的把握。
表空间和文件系统空间的总体和存量对比一应俱全
用户是否有变化,权限是否有变化,都能比较出来
连接ip的变化,这个功能作为甲方dba非常的实用
每一个问题,你都可以“漫游”看看其他库是否存在同样的问题,你也可以进行备注,或者觉得Bethune太傻,直接在这个系统里面屏蔽掉这个建议,还有更多的细节我不在这儿复述了。如果你是个老司机,你在用Bethune的时候,就知道我们花了多少心思在信息的展示上。
比如你的一个schema,用profile来设置了密码过期策略。从你上传之后的那天开始,Bethune就记得你每个用户密码过期的时间随着时间的推移可能你都忘记了。你也没有设置这个监控在还有5天就要过期的时候我们会给你推送用户密码过期提醒。
7
量身定做的技术推荐
我们还会根据你数据库遇到的问题,去给你推荐一些有价值的文章。比如你的报错,配置,某个隐含参数,异常的等待事件等。
在这个信息过剩的时代,能帮你把需要学习的知识和遇到的问题对应起来。真是太事半功倍。
最后,所有的问题都可以点击在线咨询按钮,或者提交反馈和我们取得联系
白求恩,做你最佳的运维助手!