D-SMART对人大金仓KingbaseES的支持是很早就排在计划表里了,近V1.9.1正式版发布时要纳入KingBaseES,于是老白的团队从2019年9月开始对KingbaseES进行分析,建立数据采集标准,指标体系标准和健康模型、运维经验模型与知识点等项工作。没想到工作异常的顺利,其主要原因是KingbaseES 8.2和PostgreSQL的高度兼容性。首先我们来看看KingbaseES和PostgreSQL启动后的后台进程:
kingbaseES 8.2
Postgresql 9.6
可以看出,和pg 9.6相比,除了kinbaseES多了一个logger process和一个bgworker:sysloglical supervisor外,其他的后台进程完全是一模一样的,连名字都没变。而如果和PG 10做个对比,就很有意思了:
PostgreSQL 10.3
二者居然是完全一样的。用ksql连接数据库,很顺利就完成了:没想到退出ksql的时候遇到点问题,quit,exit都不起作用。于是想起了pg的psql的退出方式,输入“\q”居然成功了,是不是很神奇。于是有了一种冲动,想用pg 10.3的psql连接下KingbaseES:
太神奇了,居然可以连接。不过KingbaseES对一些Pg的系统视图改了名,所以\l \d这些命令还是不能直接在psql里执行的。我们还是回到ksql里:
KingbaseES做了不少和Oracle兼容的工作,我们首先来看看dba_tables视图,和Oracle的视图十分类似。我们先看看KingbaseES有哪些表吧:不管怎样,从上面看,二者的兼容性是不错的。虽然kingbaseES没有提供Python的驱动(网上不少Python Django连接kingbaseES的例子),不过我们尝试下用PG的驱动连接下kingbaseES,居然一下子就成功了。于是后面的工作就简单多了。我们直接把pg的健康模型与指标模型导入kingbaseES,奇迹再次出现:不需要做什么修改,我们的D-SMART的PG的运维知识居然能够很好的作用于KingbaseES,健康模型的表现也是十分完美:
KingbaseES与Pg的兼容性对于广大DBA来说是一个福音。
来自:https://mp.weixin.qq.com/s/JuukRSN8ARWVI3THsqsgvw