KingbaseES 数据库智能巡检工具

KingbaseES 数据库智能巡检工具



一键生成 KingbaseES 数据库健康巡检报告(Word 格式),支持单机/批量巡检、系统资源采集、性能分析、安全检测等 30+ 项核心指标。

📖 简介

本工具是对 KingbaseES 官方 check_db.sh 脚本的 Python 重写与增强,通过执行 SQL 采集数据库状态、配置、性能、对象统计等信息,并自动生成结构化的 Word 报告。适用于数据库管理员进行日常健康检查、性能评估、安全审计等场景。

✨ 主要功能

  • 全自动采集 :自动检测数据库版本(V8R3/V8R6/V9),适配 syspg 系统表前缀。
  • 系统资源监控:采集主机 CPU、内存、磁盘使用情况(支持本地或 SSH 远程)。
  • 数据库配置检查:列出所有非缺省参数、归档/自动清理设置。
  • 性能分析:连接数统计、缓存命中率、BGWriter、死锁、复制延迟、长事务等。
  • 对象统计:数据类型字段数、对象种类分布、大对象 TOP 20、表空间使用。
  • 安全审计:用户密码过期时间、锁等待、未使用索引、非法对象名、继承关系。
  • 插件管理:列出所有可用及已安装的扩展插件。
  • Word 报告 :自动生成带有表格的 .docx 报告,结构清晰,可直接阅读或归档。
  • 多种运行模式
    • 单机巡检:交互式输入连接信息,立即执行。
    • 批量巡检(Excel):通过 Excel 模板配置多个数据库实例,一键批量巡检。
    • 模板生成:自动生成 Excel 配置模板,方便填写。

📦 依赖安装

系统要求

  • Python 3.6 或更高版本
  • 可访问 KingbaseES 数据库(端口 54321 默认)
  • 建议在 KingbaseES 服务器上或能与数据库网络互通的机器上运行

安装 Python 依赖

bash 复制代码
pip3 install psycopg2-binary python-docx psutil

可选:如需 SSH 远程采集系统信息,还需安装 paramiko(工具已内置支持,但需手动安装)

bash 复制代码
pip3 install paramiko

🚀 使用方法

1. 下载脚本

bash 复制代码
git clone https://github.com/yourusername/kingbase-inspector.git
cd kingbase-inspector
chmod +x main_kingbase.py

2. 单机巡检

bash 复制代码
python3 main_kingbase.py

按提示依次输入:

  • 主机地址(默认 localhost)
  • 端口(默认 54321)
  • 用户名(默认 system)
  • 密码
  • 报告标识名称
  • 巡检员姓名

等待采集完成,报告将生成在 reports/ 目录下,文件名格式:KingbaseES巡检报告_IP_时间戳.docx

3. 批量巡检(Excel)

  • 首次使用先选择菜单 3. 创建批量巡检模板,生成 kb_batch_template.xlsx
  • 编辑模板,填写多个数据库的连接信息(可同时配置 SSH 信息用于系统监控)。
  • 选择菜单 2. 批量巡检(Excel),工具将依次巡检每个库并生成独立的报告。

4. 报告示例

生成的 Word 报告包含以下章节:

  • 封面:基本信息(数据库名、版本、主机、巡检员等)
    1. 总体健康状态
    1. 系统资源检查(CPU、内存、磁盘)
    1. KingbaseES 配置检查(非缺省参数、归档/自动清理)
    1. 用户数据库(列表、大小、表空间)
    1. 数据库对象统计(类型字段、对象种类、大对象、表统计)
    1. 连接与性能分析(连接数、缓存命中、BGWriter)
    1. 数据库年龄与长事务
    1. 复制与归档(流复制、复制槽、归档统计)
    1. 安全与潜在风险(密码过期、锁等待、未使用索引、死锁等)
    1. 插件信息
    1. 报告说明

所有数据均以表格呈现,清晰易读。

⚙️ 配置说明

数据库要求

  • 需要存在一个名为 test 的数据库(工具默认连接该库执行采集)。如果不存在,请手动创建:

    sql 复制代码
    CREATE DATABASE test;
  • 建议使用具有足够权限的数据库用户(推荐 systemkingbase),至少需要以下权限:

    • 查询系统表/视图(pg_*, sys_*
    • 执行系统函数(pg_read_file 可选,用于获取配置文件 md5)
    • 读取 pg_stat_* 统计信息

SSH 远程采集(可选)

如果不需要采集操作系统信息,可以在提示时选择不配置 SSH,工具将只采集数据库内部信息。

🛠️ 故障排查

问题 可能原因 解决方法
NameError: name 'prefix' is not defined 代码中使用 f-string 导致变量未定义 请确保使用最新版脚本(已修复)
psycopg2.OperationalError: FATAL: database "test" does not exist 缺少 test 数据库 登录任意数据库执行 CREATE DATABASE test;
部分采集步骤失败(如 license) 该函数在当前版本不存在 不影响整体报告,工具已自动忽略
ModuleNotFoundError: No module named 'docx' 缺少 python-docx 执行 pip3 install python-docx
Word 报告打开乱码 字体不支持中文 使用 WPS 或 Microsoft Word 打开,一般可正常显示

🤝 贡献指南

欢迎提交 Issue 和 Pull Request。

  • 报告 Bug:请附上错误截图、Python 版本、KingbaseES 版本。
  • 功能建议:描述您希望新增的巡检项或报告格式。
  • 代码规范:请保持 PEP 8 风格,添加必要的注释。

📄 许可证

本项目采用 MIT 许可证,允许自由使用、修改和分发。

🙏 致谢

  • 感谢 KingbaseES 官方提供的 check_db.sh 脚本,本项目从中借鉴了大量优秀 SQL 逻辑。
  • 感谢 psycopg2python-docxpsutil 等开源库的开发者。

📧 联系方式

如有任何问题,欢迎通过 GitHub Issues 交流,或邮件联系作者。


如果觉得这个工具有用,请给个 ⭐ Star 支持一下!





相关推荐
这个DBA有点耶4 小时前
2026下半年数据库趋势:多模、云原生、AI融合
数据库·人工智能·云原生
l1t5 小时前
DeepSeek总结的从 Crunchy PGO 迁移到使用 CloudNativePG 管理的 PostgreSQL 18
数据库·postgresql
夜雪闻竹5 小时前
Claude Code 对话自动导入完全指南
数据库·数据挖掘·copilot
云祺vinchin6 小时前
云祺x鼎捷,为制造企业ERP打造双保险
数据库·安全·制造
我滴老baby6 小时前
2026年AI Agent将走向何方?十大趋势深度解析:从多模态融合到自主决策,从端侧部署到具身智能,提前布局下一个万亿级市场
数据库·人工智能·知识图谱
AC赳赳老秦6 小时前
OpenClaw与思维导图工具联动:自动生成工作规划脑图、拆解任务节点,适配职场管理
java·大数据·服务器·数据库·python·php·openclaw
zhishijike6 小时前
全国行政区划sql(省市区)
数据库·sql·mysql
KaMeidebaby6 小时前
卡梅德生物技术快报|单 B 细胞抗体技术:全犬源单抗制备流程、关键参数与性能验证
前端·数据库·其他·百度·新浪微博
KG_LLM图谱增强大模型6 小时前
scHilda:大模型与知识图谱分层融合,突破单细胞分型瓶颈
数据库·人工智能·知识图谱