暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

白屏工具还是黑屏工具

白鳝的洞穴 2024-08-15
259

今天晚上在我们公司有一场OceanBase运维的小型沙龙,obdiag开源项目的朋友会做一些分享,届时靖顺也会介绍obdiag SIG的相关情况。

obdiag是一个OB运维的黑屏工具,可能近些年大家听到白屏工具的概念比较多,今天我们就来讨论一下白屏工具和黑屏工具吧。

有DBA问我运维数据库,我喜欢白屏工具还是黑屏工具。我说,为什么不能都喜欢!早期的数据库相对简单,DBA对数据库如何管理,如何优化掌握的也不多,所以大体上记住几条sql,了解如何看数据库和操作系统日志,就差不多能上场干活了。反观那时候的白屏工具,也不外乎TOAD这样现在看来似乎只适合开发人员使用的工具。所以那时候很多“高手”标榜自己只用SQL*PLUS。

实际上,随着数据库技术的发展,以及DBA对数据库认知的加深,不借助于白屏工具来运维数据库越来越困难了。特别是面对运维知识欠缺的国产数据库更是如此,用户对国产数据库白屏工具的功能需求日益提升。不过白屏工具也有其局限性,首先是功能很难覆盖用户日常运维所需的部分场景;其次是其迭代速度较慢,用户提出需求到需求上线往往以年记;第三是用户自行定制能力较差,无法适应某些用户的个性化需求;最后是白屏一般比较重,能获得的数据库权限也太高,在一些企业里并非所有人都能直接使用白屏运维工具。

黑屏运维工具往往比较轻量级,大多数用脚本语言开发,迭代速度很快,个性化定制能力也较强。特别是一些开源的黑屏工具,有一定脚本编程能力的DBA可以根据自己的需要去改写。

两类工具各有特点,因此在运维工作中是相互辅助的关系,虽然有部分功能重叠,不过各有其使用场景。针对OceanBase而言,OCP和obdiag就是这样一个工具组合。OCP可以用于常态化的OB运维和监控告警工作。obdiag则用于处理一些OCP不太擅长的场景。比如针对OB日志的搜索、分析,从日志中获取flt_trace的信息,分析某些OB及操作系统存在的隐患,做OBSERVER参数的定向分析等。

obdiag以PYTHON作为开发语言,每个月迭代一个版本,目前的正式版本为2.3。这个工具十分小巧,下载下来的tar文件只有4M,可以去https://github.com/oceanbase/obdiag下载。找一台和OB集群可以互访的服务器tar开就可以使用。通过自行修改配置文件,DBA还可以将常用的SQL脚本定义到工具里,通过工具框架去使用。

obdiag这样的黑屏运维工具可以为DBA的个性化运维工作赋能,这是普通的白屏工具所不具备的。OCP这样的白屏工具可以很好地完成一些针对OB运维的常规化监控和操作,不过对于一些想要对OB进行更为深入分析的资深DBA来说,还不太够用。这时候就需要obdiag这样的黑屏工具来辅助了。

实际上这些年我一直在做的工作就是想在白屏工具和黑屏工具之间找到一种新的工具形态,这种形态我称之为“运维知识自动化工具”。工具本身的目的是将运维知识数字化,以工具的形态提供给用户,让用户能够利用工具不断积累运维知识。可能有些朋友了解,这是指的我们的产品D-SMART。在D-SMART这种白屏工具中可以通过添加自己编写的“知识点”工具或者巡检报告来自定义分析能力,也可以通过常用SQL定义将一些常用查询固化在工具中,正在开发中的“SQL笔记”功能则能够自动记录和归类DBA曾经使用过的SQL语句。利用这些功能,DBA可以在几分钟或者半天时间里就完成白屏工具中的能力升级。

我一直有一个观念:“工具是DBA思想的延伸”,在数据库技术发展的今天,只有能够用好工具的DBA,才会更加高效地工作。工具可以很复杂,复杂如D-SMART、OCP,也可以很简单,简单到可能就是一个最常见的记事本或者几个 SQL脚本文件。对于DBA来说,工具的厚度和个人能力可能是关系很大的。


文章转载自白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论