作者简介
中间件版本检查,一个DB有多个应用在访问,只有某个版本后的中间件才开始支持OceanBase,需要检查访问该DB的所有应用的中间件版本,并督促开发进行升级,以确保都在支持OB版本之上。
性能采集和回放提供的MySQL General Log采集模式有一定风险,尤其是对于业务繁重的数据库,我们需要更平滑的性能采集和回放方案。另外对于单实例多DB场景,存在迁移和不迁移的DB共存的情况,需要进行过滤。
线上存在非通过中间件访问的数据库账号,如ETL取数账号、数据查询工具账号、应用直连账号等,对其兼容性需要进行检查。因为迁移到OB之后,数据库登录账号需要进行改变,包含租户信息。
OceanBase是分布式数据库,数据如何进行分区就显得非常重要,以避免形成热点数据。一张表可能有多个字段都适合作为分区键,在迁移工具中,根据数据分布以及访问情况,需要提供表分区推荐,以减少迁移成本。
收集性能指标相关数据,以下是常用的性能指标对应的数据源:
开发数据收集程序,在服务器本地每10秒采集一次上述性能指标的数据。并在采集之后对数据进行结构化处理,包括对数值型数据进行标准化处理,对文本型数据进行时序化处理。
将结构化处理之后的数据落地存储到ClickHouse中。
SQL对应的性能指标:
Table对应的性能指标:
Perf对应的性能指标:
数据库服务日志、系统内部任务记录、数据库进程信息等。
SQL层面:
OceanBase内部:
应用层面:
报告的故障指标板块显示4:30后服务器的CPU上升;
报告的OceanBase相关表板块显示CPU上升趋势和下面这张表的访问趋势一致;
报告的OceanBase相关SQL板块显示这张表的访问趋势和下面的SQL语句访问趋势一致;
报告的分析结果板块定位到CPU上升和tablex表的访问上升有关,而这张表的访问上升又和这1条SQL语句访问耗时增长有关,最终定位由于该SQL导致CPU上升。后续我们联系开发确认是正常业务上升,并添加服务器节点缓解CPU负载。
6.2 Druid应用不兼容部分OB语法解析
“携程技术”公众号
分享,交流,成长