DBA的福音!KingbaseES运维工具全攻略,让你少走90%的弯路
文章目录
嘿,各位DBA兄弟姐妹们,今天咱们来唠唠KingbaseES的运维工具。别觉得手册里的东西枯燥,这些工具用好了,能帮咱们少掉多少头发啊!我这就用大白话给你们讲讲怎么玩明白这些家伙。
先搞懂基础:前言和环境变量
咱们先说说这手册里的基础知识。KingbaseES这数据库,贴心地给咱们准备了一堆现成的脚本,像系统数据收集、问题诊断这些常用操作都有。这些工具在哪呢?安装完数据库后,在$KES_HOME/SupTools
目录下,记好了啊,别到时候找不着。
重点说下那个通用环境变量参数文件,就是suptools.ini
。这玩意儿太重要了,所有工具都靠它吃饭。里面啥都有:安装目录、库文件路径、数据库连接信息,连集群节点和备份路径都得在这儿设。
举个例子,单机环境和集群环境的配置还不一样。就拿HOME_PATH
来说,单机可能是/opt/Kingbase/ES/V8R6
,集群就可能是/home/kingbase/cluster/project1/cluster1
。还有那个数据库密码,可填可不填,不填的话工具会弹出来让你输,安全点。
这里插一句,改这个配置文件的时候千万别手抖,路径错一个字符,后面全白搭。我之前就踩过这坑,查了俩小时才发现是少打了个斜杠,血的教训啊!
系统数据与日志收集:kb_gathertool
接下来聊聊kb_gathertool
,这工具堪称\"系统体检仪\"。不管是操作系统还是数据库的信息,它都能给你扒得明明白白。
它能查些啥?
说直白点,就是把服务器从上到下摸一遍:
- 操作系统:CPU、内存、磁盘IO、网络状态,连防火墙和selinux状态都不放过
- 数据库:配置参数、日志信息、连接数、慢查询,甚至安全检查都有
- 集群状态:流复制情况、归档状态,这些集群环境的关键信息都能抓到
怎么用?
简单得很,进SupTools/kb_gathertool
目录,用root权限跑sh gather.sh
就行。它会问你要HTML还是TEXT格式的报告,新手建议选HTML,看得清楚。
执行的时候要注意,得输入数据库system用户的密码。整个过程大概2-4分钟,别急着催它,越急越容易出问题。跑完之后会生成几个文件:
gather_kingbase.tar.gz
:数据库信息包gather_linux.tar.gz
:操作系统信息包- 还有对应的报告文件,直接打开就能看
亲测有效:遇到数据库莫名其妙出问题时,先跑一遍这个工具,90%的问题根源都能在报告里找到线索。
问题诊断神器:kb_diagtool
要是数据库真出问题了,就得请出kb_diagtool
这组工具了。它们就像医生的听诊器,能帮你定位到底是哪块出了岔子。
常用脚本有哪些?
chk_current_waitevent.sh
:看当前会话在等啥,比如是不是在等锁,或者等CPUchk_top_waitevent.sh
:过去60秒里最频繁的等待事件,一眼看出系统瓶颈chk_lock.sh
:查锁等待,谁锁了谁,清清楚楚,再也不用猜了chk_top_sql.sh
:找出最耗资源的SQL,哪些语句吃CPU、占IO,一目了然
举个例子,运行./chk_top_waitevent.sh
,可能会看到\"CPU or Wait On CPU\"次数最多,这时候就得看看是不是有SQL写得太烂,把CPU给跑满了。
我们平时干活时都戏称
chk_lock.sh
为\"抓锁小能手\",一旦发现业务卡住,先跑它准没错。
注意事项
这些工具大多依赖数据库里的一些扩展,比如sys_stat_statements
、sys_kwr
。要是提示表不存在,先检查这些扩展是不是没启用,别上来就怀疑工具坏了。
辅助运维工具:省力小帮手
这部分工具就像咱们的助理,重复性的活儿交给它们干,咱们能省不少事。
kb_backup:备份一键搞定
备份这事儿,说重要也重要,说麻烦也麻烦。kb_backup
就是来解决这个麻烦的:
- 运行
backup8.sh
直接做逻辑备份 fast_deploy_backup8.sh
能帮你配置定时任务,再也不用手动写crontab了- 备份完了还能跑
backup8_check.sh
看看备份文件是不是完好
logic_backup_manager:备份管理大师
这个工具更强大,能按不同需求定制备份策略。比如:
- 只备份某个模式(schema)
- 只备份指定的表,还能用正则表达式
- 全库备份,但排除某些表
- 定时清理旧备份,省得占空间
配置的时候要写.job文件,每种任务类型参数不一样。比如job1是备份指定模式,就用_dump_schemas=\"public,schema1\"
;job2备份指定表,就用_dump_tables=\"public.t1,schema1.t1\"
。
不过这里得提一嘴,它在小型企业单机部署场景下可能不如传统方案轻便,毕竟功能多了,配置起来也稍微复杂点,毕竟侧重点不同。
kb_check:定期体检
kb_check
用来做定期巡检很方便,跑一下autocheck.sh
,会生成HTML报告,里面有操作系统和数据库的各种指标:
- CPU、内存、磁盘使用率
- 数据库连接数、表空间大小
- 集群节点状态
- 有没有错误日志
老板要看数据库状态?直接把这个报告发给他,专业又直观。
预防删除工具:保命符
最后说说这个防误删工具,简直是DBA的\"保命符\"。谁还没手滑删过文件啊?有了它,能少背很多锅。
怎么用?
安装很简单,用root用户跑install-rm-protect.sh
。之后删除被保护的文件时,会让你回答问题,答对了才能删,相当于多了一道保险。
比如保护/data
目录,执行./sys_protect /data
,设置一个问题和答案。下次有人想删/data
,就得先答对问题,不然删不掉。
踩过坑才知道这点多重要!曾经有同事误删了数据目录,恢复了半天才搞定,自那以后,我们全公司服务器都装了这工具。
注意事项
- 保护是基于全路径的,要是把文件移走了,保护就失效了
- 同时删多个文件时,有一个受保护的没通过验证,其他未受保护的也可能被删,这点要特别小心
- 卸载数据库前最好先关掉这个工具,不然可能会提示命令找不到
总结一下
KingbaseES这些运维工具,用好了真能事半功倍。从信息收集、问题诊断,到备份运维、安全防护,一套组合拳下来,数据库管理能轻松不少。
刚开始用可能觉得参数多、配置复杂,但多练几次就熟了。遇到问题先查手册,或者跑一遍收集工具,大部分问题都能解决。实在搞不定,记得人大金仓有技术支持,400电话打起来(400-601-1188),别自己硬扛着。
好了,就说这么多,赶紧去试试这些工具吧,保证你用了就离不开!