青年数据库学习互助会

金仓数据库一键巡检-青学会&金仓专栏(8)

想学会更多实用技巧, 欢迎 加入青学会MOP技术社区(实名社区)。 加入方法:公众号后台回复关键字“加入”获取小助手微信,添加后登记入会。

同时欢迎大家在评论区留言互动交流! 社区会不定期举行相关的抽奖、公开分享活动。 如果你有想了解的知识点希望我们发文可以后台私信。

正文开始

在当今数据驱动的时代,数据库作为企业核心资产之一,其稳定性和安全性至关重要。无论是金融交易、电子商务还是社交平台,任何业务系统的正常运行都离不开高效可靠的数据库支持。因此,定期进行数据库巡检成为确保系统健康、预防潜在故障的重要手段。

您想获得到下图格式的巡检报告吗?

操作系统:


数据库:


适用环境:

  • 操作系统:Linux系统 + KingbaseES (V9)
  • 兼容性:Centos7.x、Kylin V10、Deepin
  • 权限要求:root权限(操作系统),superuser权限(数据库)

脚本存放路径:

SupTools/kb_gathertool 该案例路径:/u01/app/Kingbase/ES/V9/KESRealPro/V009R001C001B0030/SupTools/kb_gathertool

可用find命令查找gather.sh文件

收集那些信息?

操作系统信息:
信息大类 具体信息
硬件配置 CPU, 内存 (Memory), 文件系统 (Filesystem)
网络信息收集 Swapinfo, 其它配置
系统参数 操作系统版本, 系统参数, 资源限制, SELinux, logind.conf, system.conf, IO 调度算法, SSH 配置, 防火墙, 多路径配置, LVM 配置, 文件系统类型及参数, 网络配置信息
操作系统运行信息 内存信息, CPU 利用率, 操作系统总 IO 大小, TOPIO, 网络性能信息, 文件系统使用率, 进程内存使用排名, 系统内存段、信号量使用, Service 状态信息, 操作系统日志, Crontab, 多路径状态信息
数据库信息:
信息大类 具体信息
配置信息 基本信息, 许可信息, 用户数据库, 数据库所有插件, 数据库已安装插件, 数据库参数运行情况 (非缺省值), 数据类型字段统计, 用户对象种类统计, 用户对象占用空间的柱状图, 集群配置信息 (repmgr.conf), 获取 sys_hba.conf md5 值, 获取 sys_hba.conf 配置, 获取 sys_rman 备份配置, 获取 sys_rman 备份信息, 获取 kingbase.conf md5 值, 获取 kingbase.conf 配置, 用户或数据库级别定制参数, 获取 hamgr 日志错误信息
数据库日志 获取 kbha 日志错误信息, 当前数据库日志目录, 获取错误日志信息, 获取连接请求情况, 获取认证失败情况, 慢查询统计, 慢查询分布头 10 条的执行时间, 慢查询分布尾 10 条的执行时间, Auto_explain 分析统计
数据库状态 输出文件系统剩余空间, 输出表空间对应目录, 输出表空间使用情况, 输出数据库空间使用情况, TOP 10 对象使用情况, 数据库连接数统计, 总剩余连接数, 用户连接数限制, 数据库连接限制, TOP 5 SQL: 语句合计执行时间, TOP 5 SQL: 语句单次执行时间, TOP 5 SQL: 语句合计使用缓存量, TOP 5 SQL: 语句单次使用缓存量, TOP 5 SQL: 语句合计使用磁盘量, TOP 5 SQL: 语句单次使用磁盘量, TOP 5 SQL: 语句完整文本, 索引数超过 4 并且 SIZE 大于 100MB 的表, 上次巡检以来未使用或使用较少的索引, 数据库统计信息: 回滚比例, 命中比例, 数据块读写时间, 死锁, 复制冲突, 检查点, bgwriter 统计信息, 数据库年龄, 表年龄, 长事务, 2PC: 活动进程, 长事务, 2PC: 预备语句
集群运行状态 是否开启归档, 自动垃圾回收, 归档统计信息, 流复制统计信息, 流复制插槽
安全 密码泄露检查, 检查 sys_stat_statements, 检查 sys_authid, 检查 sys_user_mappings, 检查 sys_views, 简单密码检查, 用户密码到期时间, SQL 注入风险分析, 普通用户对象上的规则安全检查, 普通用户自定义函数安全检查, 无日志用户表, 哈希索引, 触发器, 事件触发器, 检查是否使用了 A-Z, a-z, 0-9, _ 以外的字母作为对象名, 锁等待, 继承关系检查
数据库报告 重置数据库的统计计数器, 重置数据库的统计信息, 获取当天数据库实例的 KWR 报告, 生成的 KWR 报告文件, 获取当前时间 10 分钟前数据库实例的 KSH 报告, 获取当前时间数据库实例的 WORKLOAD 报告

开始执行脚本(需要root权限):

[root@kingbase kb_gathertool]# sh gather.sh
请指定报表格式类型
~~~~~~~~~~~~~~~~~~~~~~~
报告类型选择HTML还是TEXT?
输入'html'作为html格式,或'text'作为文本格式,默认'text'。
请输入报表格式: html

报表格式类型 html
开始收集操作系统环境配置和运行状态等信息。

---->> CPU參数 </pre>
---->> 内存參数 </pre>
---->> SWAP參数 </pre>
---->> 块设备,HD、LVM </pre>
---->> PCI设备 </pre>
---->> 操作系统发布版本 </pre>
---->> 内核版本 </pre>
---->> 内核参数 </pre>
---->> 用户资源限制 </pre>
---->> selinux配置信息 </pre>
---->> logind配置信息 </pre>
---->> systemd配置信息 </pre>
---->> 内核引导参数 </pre>
---->> 磁盘IO调度算法 </pre>
---->> SSH配置信息 </pre>
---->> 防火墙服务状态信息 </pre>
---->> 防火墙的zone信息 </pre>
---->> IPtables服务状态信息 </pre>
---->> IPtables服务的chain信息 </pre>
---->> 多路径配置 </pre>
---->> LVM物理卷信息 </pre>
---->> LVM卷组信息 </pre>
---->> LVM逻辑卷信息 </pre>
---->> 文件系统类型参数 </pre>
---->> 网络配置信息 </pre>
---->> 虚拟内存运行状态 </pre>
---->> CPU利用率 </pre>
---->> 进程的IO占用排行 </pre>
---->> 进程的CPU占用排行 </pre>
---->> 进程的内存占用排行 </pre>
---->> 文件系统使用率 </pre>
---->> 进程虚拟内存使用排名 </pre>
---->> 进程固定内存使用排名 </pre>
---->> 文件系统inode使用率 </pre>
---->> 进程间通信使用情况(共享内存,消息队列,信号 ) </pre>
---->> 进程间通信状态(共享内存,消息队列,信号 ) </pre>
---->> 进程间通信资源限制(共享内存,消息队列,信号 ) </pre>
---->> 服务运行状态信息 </pre>
---->> 20日内操作系统日志(错误信息) </pre>
---->> cron:基于用户的作业调度器 </pre>
---->> cron:基于应用的作业调度器 </pre>
---->> core文件收集 </pre>
---->> core文件的打包文件 </pre>
---->> 多路径拓扑信息 </pre>

Linux操作系统信息采集文件包 ./gather_linux.tar.gz
-rw-r--r--. 1 root root 88885 11月 4 12:44 ./gather_linux.tar.gz

Linux操作系统巡检报告文件 /u01/app/Kingbase/ES/V9/KESRealPro/V009R001C001B0030/SupTools/kb_gathertool/./report_linux.html
-rw-r--r--. 1 root root 878576 11月 4 12:44 /u01/app/Kingbase/ES/V9/KESRealPro/V009R001C001B0030/SupTools/kb_gathertool/./report_linux.html


开始收集KES数据库环境配置和运行状态等信息。

---->> 基本信息
---->> 许可信息
---->> 用户数据库
---->> 数据库所有插件
---->> 数据库已安装插件
---->> 数据库参数运行情况(非缺省值)
---->> 数据类型字段统计
---->> 用户对象种类统计
---->> 用户对象占用空间的柱状图
---->> 集群配置信息
---->> 获取sys_hba.conf md5值
---->> 获取sys_hba.conf配置 /u01/app/Kingbase/ES/V9/data/sys_hba.conf
---->> 获取sys_rman备份配置 /home/nwwhile_wsq/backup/rmanbackup/sys_backup.conf
---->> 获取sys_rman备份信息
---->> 获取kingbase.conf md5值
---->> 获取kingbase.conf配置 : /u01/app/Kingbase/ES/V9/data/kingbase.conf
---->> 用户或数据库级别定制参数
---->> 获取hamgr日志错误信息
---->> 获取kbha日志错误信息
---->> 当前数据库日志目录 /u01/app/Kingbase/ES/V9/data/sys_log
---->> 获取错误日志信息
---->> 获取连接请求情况
---->> 获取认证失败情况
---->> 慢查询统计
---->> 慢查询分布头10条的执行时间, ms
---->> 慢查询分布尾10条的执行时间, ms
---->> Auto_explain 分析统计
---->> 输出文件系统剩余空间
---->> 输出表空间对应目录
---->> 输出表空间使用情况
---->> 输出数据库空间使用情况
---->> TOP 10 对象使用情况
---->> 数据库连接数统计
---->> 总剩余连接数
---->> 用户连接数限制
---->> 数据库连接限制
---->> TOP 5 SQL : 语句合计执行时间
---->> TOP 5 SQL : 语句单次执行时间
---->> TOP 5 SQL : 语句合计使用缓存量
---->> TOP 5 SQL : 语句单次使用缓存量
---->> TOP 5 SQL : 语句合计使用磁盘量
---->> TOP 5 SQL : 语句单次使用磁盘量
---->> TOP 5 SQL : 语句完整文本
---->> 索引数超过4并且SIZE大于100MB的表
---->> 上次巡检以来未使用或使用较少的索引
---->> 数据库统计信息, 回滚比例, 命中比例, 数据块读写时间, 死锁, 复制冲突
---->> 检查点, bgwriter 统计信息
---->> 数据库年龄
---->> 表年龄
---->> 长事务, 2PC: 活动进程
---->> 长事务, 2PC: 预备语句
---->> 是否开启归档, 自动垃圾回收
---->> 归档统计信息
---->> 流复制统计信息
---->> 流复制插槽
---->> 密码泄露检查
---->> 检查 sys_stat_statements
---->> 检查 sys_authid
---->> 检查 sys_user_mappings
---->> 检查 sys_views
---->> 简单密码检查
---->> 用户密码到期时间
---->> SQL注入风险分析
---->> 普通用户对象上的规则安全检查
---->> 普通用户自定义函数安全检查
---->> 无日志用户表
---->> 哈希索引
---->> 触发器
---->> 事件触发器
---->> 检查是否使用了A-Z a-z 0-9 _ 以外的字母作为对象名
---->> 锁等待
---->> 继承关系检查
---->> 获取当天数据库实例的KWR报告
---->> 生成的KWR报告文件
---->> 获取当前时间10分钟前数据库实例的KSH报告

KingbaseES V8 数据库系统信息采集文件包 ./gather_kingbase.tar.gz
-rw-r--r--. 1 root root 31104 11月 4 12:44 ./gather_kingbase.tar.gz

KingbaseES V8 数据库系统巡检报告文件 ./report_kingbase.html
-rw-r--r--. 1 root root 128676 11月 4 12:44 ./report_kingbase.html


巡检结束,报告已生成:

[root@kingbase kb_gathertool]# cd 2024-11-04_1244
[root@kingbase 2024-11-04_1244]# ll
总用量 1112
-rw-r--r--. 1 root root      0 11月  4 12:43 error_11041243.log
-rw-r--r--. 1 root root     50 11月  4 12:44 error_11041244.log
-rw-r--r--. 1 root root  31104 11月  4 12:44 gather_kingbase.tar.gz
-rw-r--r--. 1 root root  88885 11月  4 12:44 gather_linux.tar.gz
-rw-r--r--. 1 root root 128676 11月  4 12:44 report_kingbase.html
-rw-r--r--. 1 root root 878576 11月  4 12:44 report_linux.html

脚本文件说明:

文件 说明
gather.sh 主程序
gather.conf 环境变量参数文件,默认读取通用参数文件。无需修改。
gather_html.conf HTML显示风格参数文件,默认读取通用参数文件。无需修改。
gather_linux.sh Linux操作系统维护工具
gather_kingbase.sh KingbaseES数据库系统维护工具
../suptools.ini 工具集的通用参数文件

通过以上操作,我们成功完成了kingbase数据库的巡检工作。借助 这一强大的工具,我们不仅能够高效、准确地收集和分析操作系统及数据库的各类信息,还能及时发现并解决潜在的问题,确保系统的稳定性和安全性。

此外,如果您对kingbase数据库感兴趣,请继续关注我们的专栏




END

往期文章回顾

MOP社区新闻

青学会MOP技术社区成立了! 青学会专家顾问团成员介绍

金仓专栏

告别繁琐!KingbaseES v9数据库一键安装-青学会&金仓专栏(1) KingbaseES v9数据库Docker安装-青学会&金仓专栏(2) KingbaseES数据脱敏-青学会&金仓专栏(3)
KingbaseES后台服务管理-青学会&金仓专栏(4)
电科金仓KES日常运维命令集锦-青学会&金仓专栏(5)

DBA实战小技巧

推荐一款超实用的openGauss数据库安装工具! 实战:记一次RAC故障排查
DBA实战运维小技巧安装篇(一)Oracle 主流版本不同架构下的静默安装指南
DBA实战运维小技巧存储篇(一)根目录满了如何处理
DBA实战运维小技巧存储篇(二)打包迁移单机数据库至新存储

MOP社区投稿-内核开发

浅谈 PostgreSQL GUC 模块原理
简单解析 IvorySQL 增强 Oracle xml 兼容能力的原理
简单讨论 PostgreSQL C语言拓展函数返回数据表的方式
简单分析 pg_config 程序的作用与原理
Redis 日志机制简介(一):SlowLog
Redis 日志机制简介(二):AOF 日志
Redis 日志机制简介(三):RDB 日志
pg_cron插件使用介绍
Redis 的指令表实现机制简介
pg几款源码工具介绍
Redis 事务功能简介

MOP顾问说

MOP顾问说:MOP 三种主流数据库常用 SQL(一)
MOP顾问说:服务器内存
MOP 顾问说:Linux Nice 值与 CPU 优先级揭秘