外观
GaussDB 诊断工具使用
内置诊断工具
gs_check 系统检查工具
bash
# 检查集群状态
gs_check -i cluster
# 检查数据库状态
gs_check -i database
# 检查磁盘空间
gs_check -i disk
# 生成完整检查报告
gs_check -a- 检查结果分类:PASS、WARNING、ERROR
- 详细的错误信息和修复建议
- 集群整体健康状况评分
gs_ctl 数据库控制工具
bash
# 查看数据库状态
gs_ctl status
# 启动数据库实例
gs_ctl start -D /data/gaussdb/data
# 停止数据库实例
gs_ctl stop -D /data/gaussdb/data
# 重启数据库实例
gs_ctl restart -D /data/gaussdb/data- 启动失败的日志分析
- 无法停止数据库的处理方法
- 强制停止数据库的风险
gs_stat 性能统计工具
bash
# 查看实时性能统计
gs_stat -p 5432
# 查看历史性能数据
gs_stat -h localhost -p 5432 -d postgres- CPU使用率和负载
- 内存使用情况
- I/O 统计信息
- 查询执行统计
性能诊断工具
EXPLAIN 执行计划分析
sql
-- 查看执行计划
EXPLAIN SELECT * FROM table_name WHERE condition;
-- 查看实际执行情况
EXPLAIN ANALYZE SELECT * FROM table_name WHERE condition;- 节点类型和执行顺序
- 成本估算和实际执行时间
- 索引使用情况
- 连接方式和顺序
pg_stat_statements 统计信息
sql
-- 启用扩展
CREATE EXTENSION pg_stat_statements;
-- 查看统计信息
SELECT query, calls, total_time, rows FROM pg_stat_statements ORDER BY total_time DESC LIMIT 10;
-- 重置统计信息
SELECT pg_stat_statements_reset();- 调用次数和总执行时间
- 平均执行时间和最大执行时间
- 返回行数和共享缓冲区命中率
gs_probackup 备份恢复工具
bash
# 创建全量备份
gs_probackup backup -B /backup -D /data/gaussdb/data -b full
# 创建增量备份
gs_probackup backup -B /backup -D /data/gaussdb/data -b incremental
# 从备份恢复
gs_probackup restore -B /backup -D /data/gaussdb/data --instance instance_name- 查看备份列表
- 删除过期备份
- 验证备份完整性
故障排查工具
gs_log 日志分析工具
bash
# 查看数据库日志
gs_log -D /data/gaussdb/data
# 过滤错误日志
gs_log -D /data/gaussdb/data -e error
# 实时监控日志
gs_log -D /data/gaussdb/data -f- 错误代码和错误信息
- 发生时间和相关进程
- 故障上下文和可能的原因
gsql 交互式查询工具
sql
-- 连接到数据库
gsql -d postgres -U username -p 5432
-- 查看数据库列表\l
-- 查看表列表\dt
-- 查看表结构\d table_name
-- 查看索引\di- 执行脚本文件
- 导出查询结果
- 自动补全功能
监控工具
Prometheus + Grafana 监控
安装和配置 Prometheus
配置 GaussDB 导出器
安装和配置 Grafana
导入 GaussDB 监控模板
数据库连接数
查询执行时间
缓冲区命中率
锁等待情况
Zabbix 监控
安装和配置 Zabbix Server
安装 Zabbix Agent
配置 GaussDB 监控模板
设置告警规则
数据库可用性
磁盘空间使用情况
CPU 和内存使用率
慢查询数量
常见问题(FAQ)
Q1: 如何使用 gs_check 工具检查集群状态?
A1: 使用以下命令检查集群状态:
bash
gs_check -i cluster该命令会检查集群配置、节点状态、网络连接等,并生成详细的检查报告。
Q2: 如何查看慢查询日志?
A2: 可以通过以下方式查看慢查询日志:
- 配置 postgresql.conf 中的 log_min_duration_statement 参数
- 使用 gs_log 工具查看日志:bash
gs_log -D /data/gaussdb/data -e slow - 或直接查看日志文件:bash
tail -f /data/gaussdb/data/pg_log/postgresql-$(date +%Y-%m-%d).log | grep -i slow
Q3: 如何使用 EXPLAIN 分析查询性能?
A3: 使用 EXPLAIN 命令查看查询执行计划:
sql
EXPLAIN ANALYZE SELECT * FROM table_name WHERE condition;分析执行计划中的节点类型、成本估算和实际执行时间,识别性能瓶颈。
Q4: 如何监控数据库连接数?
A4: 可以通过以下方式监控数据库连接数:
- 使用 gsql 执行查询:sql
SELECT count(*) FROM pg_stat_activity; - 配置 Prometheus + Grafana 监控
- 使用 Zabbix 监控模板
Q5: 如何收集数据库性能统计信息?
A5: 可以使用以下工具收集性能统计信息:
- gs_stat 工具:实时监控系统性能
- pg_stat_statements 扩展:收集 SQL 执行统计
- EXPLAIN ANALYZE:分析具体查询的执行情况
- Prometheus + Grafana:长期存储和展示性能数据
