金仓数据库一键巡检-青学会&金仓专栏(8)
正文开始
在当今数据驱动的时代,数据库作为企业核心资产之一,其稳定性和安全性至关重要。无论是金融交易、电子商务还是社交平台,任何业务系统的正常运行都离不开高效可靠的数据库支持。因此,定期进行数据库巡检成为确保系统健康、预防潜在故障的重要手段。
您想获得到下图格式的巡检报告吗?
操作系统:
数据库:
适用环境:
-
操作系统: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 优先级揭秘