最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
GBase8aMPPClusterDBA应该掌握的100条命令
时间:2026-09-02 18:48:50 编辑:袖梨 来源:一聚教程网
GBase 8a MPP Cluster 是面向分析型场景的分布式数据库。它的运维对象不仅包括数据库和 SQL,还包括 Coordinator、gnode、gcware、数据分片、副本、DML/DDL Event、数据装载任务和重分布任务。

如果只按照普通 MySQL 的思路检查 SHOW PROCESSLIST,往往只能看到当前调度节点的信息,无法覆盖所有 Coordinator 和 gnode。真正的集群巡检还需要结合 gcadmin、gcmonit、gcluster_services 以及 information_schema 中的集群视图。
下面整理了 GBase 8a MPP Cluster DBA 常用的 100 条命令,覆盖 gccli 连接、集群服务、节点状态、分片、数据库对象、会话任务、空间、数据装载、用户权限、恢复模式、日志和操作系统巡检等场景。
本文以 GBase 8a MPP Cluster V9 系列常见用法为主。V8、V9 以及不同 V9 小版本在服务命令、工具参数、系统表字段和多 VC 管理方面可能存在差异,执行前应先确认现场版本。文中的 IP、用户、数据库、表名、目录和 Distribution ID 均为示例。
集群启停、恢复模式切换、分片调整、数据重分布、终止任务、删除对象和覆盖加载等操作风险较高,必须按照现场版本的官方管理员手册执行。
一、连接与基础信息
1. 使用 gccli 连接数据库
gccli -h 192.168.1.10 -P 5258 -u dba -p交互输入密码可以避免密码直接出现在 Shell 历史记录中。
2. 使用多个 Coordinator 地址连接
gccli -h 192.168.1.10,192.168.1.11,192.168.1.12
-P 5258 -u dba -p
指定多个 IP 后,gccli 可以依次尝试连接,提高客户端连接可用性。
3. 直接执行一条 SQL
gccli -h 192.168.1.10 -u dba -p -e "SELECT VERSION();"
4. 执行 SQL 文件
gccli -h 192.168.1.10 -u dba -p -D appdb < appdb_init.sql
5. 查看 GBase 版本
SELECT VERSION();6. 查看当前数据库
SELECT DATABASE();7. 查看当前用户
SELECTUSER(),
CURRENT_USER();
8. 查看所有数据库
SHOW DATABASES;9. 切换数据库
USE appdb;10. 查看当前时间
SELECTNOW(),
CURRENT_TIMESTAMP;
二、集群服务与进程
11. 查看当前节点全部服务状态
gcluster_services all info这是 V9 环境常用的节点服务检查入口。
12. 启动当前节点全部服务
gcluster_services all start13. 停止当前节点全部服务
gcluster_services all stop停服务前应确认节点角色、业务连接和集群整体状态。
14. 重启当前节点全部服务
gcluster_services all restart15. 查看 gcmonit 状态
gcmonit --status16. 查看 gcluster 调度进程
ps -ef | grep '[g]clusterd'17. 查看 gnode 数据库进程
ps -ef | grep '[g]based'18. 查看 gcware 进程
ps -ef | grep '[g]cware'V8 环境中相关进程可能是 corosync。
19. 查看同步服务进程
ps -ef | grep '[g]c_sync_server'20. 查看 GBase 相关监听端口
ss -lntp | grep -E 'gclusterd|gbased|gcware'具体端口应以安装配置为准。
三、gcadmin 集群状态与事件
21. 查看 gcadmin 帮助
gcadmin --help22. 查看 gcadmin 版本
gcadmin --version23. 查看集群总体状态
gcadmin重点确认节点状态、集群模式、分片和副本是否正常。
24. 查看 Coordinator 状态
gcadmin showcluster c25. 查看 gnode 状态
gcadmin showcluster d26. 查看 DML Event
gcadmin showdmlevent 50用于检查数据操作过程中记录的一致性和执行异常。
27. 查看 DDL Event
gcadmin showddlevent 5028. 查看 DML Storage Event
gcadmin showdmlstorageevent 5029. 查看故障倒换记录
gcadmin showfailover30. 查看集群锁
gcadmin showlock四、数据库、表与分布方式
31. 创建数据库
CREATE DATABASE appdb;32. 查看数据库中的表
SHOW TABLES FROM appdb;33. 按名称查找表
SHOW TABLES FROM appdb LIKE '%order%';34. 查看表结构
DESC appdb.orders;35. 查看完整建表语句
SHOW CREATE TABLE appdb.orders;36. 创建 HASH 分布表
CREATE TABLE appdb.orders(
order_id BIGINT NOT NULL,
customer_id BIGINT NOT NULL,
order_date DATE,
amount DECIMAL(18,2)
)
DISTRIBUTED BY ('customer_id');
分布键应选择数据较均匀、关联和过滤经常使用的字段。
37. 创建复制表
CREATE TABLE appdb.region_dict(
region_id INT,
region_name VARCHAR(100)
)
REPLICATED;
复制表适合数据量较小、更新不频繁并且经常参与关联的维表。
38. 查看表类型和 HASH 分布键
SELECTdbName,
tbName,
isReplicate,
hash_column
FROM gbase.table_distribution
WHERE dbName = 'appdb'
AND tbName = 'orders';
39. 查看表和分布信息
SELECT *FROM information_schema.cluster_tables
WHERE table_schema = 'appdb'
AND table_name = 'orders';
40. 查看各分片段空间
SELECT *FROM information_schema.cluster_table_segments
WHERE table_schema = 'appdb'
AND table_name = 'orders';
可以用它检查数据是否在各节点和分片间均匀分布。
五、会话与集群任务
41. 查看当前节点会话
SHOW PROCESSLIST;42. 查看完整会话 SQL
SHOW FULL PROCESSLIST;43. 查看详细会话
SHOW DETAIL PROCESSLIST;44. 查看所有 Coordinator 上的任务
SELECTcoordinator_name,
id,
user,
host,
command,
start_time,
time,
state,
SUBSTRING(info, 1, 200) AS info
FROM information_schema.coordinators_task_information
WHERE command = 'query'
ORDER BY time DESC
LIMIT 20;
45. 查看所有 gnode 上的任务
SELECTnode_name,
id,
user,
host,
command,
start_time,
time,
state,
SUBSTRING(info, 1, 200) AS info
FROM information_schema.gnodes_task_information
WHERE command = 'query'
AND info IS NOT NULL
ORDER BY time DESC
LIMIT 20;
46. 查看长时间运行的 Coordinator 查询
SELECTcoordinator_name,
id,
user,
host,
time,
state,
info
FROM information_schema.coordinators_task_information
WHERE command = 'query'
AND time >= 300
ORDER BY time DESC;
47. 按用户统计 Coordinator 任务
SELECTuser,
COUNT(*) AS tasks
FROM information_schema.coordinators_task_information
WHERE command = 'query'
GROUP BY user
ORDER BY tasks DESC;
48. 终止指定连接
KILL 12345;执行前应先确认任务 ID、用户、SQL 和业务影响。
49. 查看当前连接信息
SELECTCONNECTION_ID(),
USER(),
DATABASE();
50. 通过 gccli 快速查看会话
gccli -h 192.168.1.10 -u dba -p -e "SHOW FULL PROCESSLIST;"
六、变量、状态与空间
51. 查看系统变量
SHOW VARIABLES;52. 查看指定变量
SHOW VARIABLES LIKE '%parallel%';53. 查看系统状态
SHOW STATUS;54. 查看内存状态
SHOW STATUS LIKE '%meminfo%';55. 查看数据库表数量
SELECTtable_schema,
COUNT(*) AS table_count
FROM information_schema.tables
WHERE table_schema NOT IN (
'information_schema',
'gbase'
)
GROUP BY table_schema
ORDER BY table_count DESC;
56. 查看各数据库逻辑表空间
SELECTtable_schema,
SUM(data_length) AS data_bytes,
SUM(index_length) AS index_bytes
FROM information_schema.tables
WHERE table_schema NOT IN (
'information_schema',
'gbase'
)
GROUP BY table_schema
ORDER BY data_bytes DESC;
不同版本对相关字段的统计口径可能不同,应结合集群分片视图核对。
57. 查看大表排行
SELECTtable_schema,
table_name,
table_rows,
data_length,
index_length
FROM information_schema.tables
WHERE table_schema = 'appdb'
ORDER BY data_length DESC
LIMIT 20;
58. 查看表字段
SELECTcolumn_name,
column_type,
is_nullable,
column_default
FROM information_schema.columns
WHERE table_schema = 'appdb'
AND table_name = 'orders'
ORDER BY ordinal_position;
59. 查看集群分片配置
gcadmin showdistribution60. 查看节点上的分片分布
gcadmin showdistribution node七、数据装载与导出
61. 从 FTP 文件装载数据
LOAD DATA INFILE'ftp://loader:[email protected]//data/orders.csv'
INTO TABLE appdb.orders
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
NULL_VALUE 'N';
生产环境不应在脚本和文章中保留真实密码。
62. 指定日期时间格式装载
LOAD DATA INFILE'ftp://loader:[email protected]//data/orders.csv'
INTO TABLE appdb.orders
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
NULL_VALUE 'N'
DATETIME FORMAT '%Y-%m-%d %H:%i:%s';
63. 装载带毫秒的时间
LOAD DATA INFILE'ftp://loader:[email protected]//data/events.csv'
INTO TABLE appdb.events
FIELDS TERMINATED BY ','
NULL_VALUE 'N'
DATETIME FORMAT '%Y-%m-%d %H:%i:%s.%f';
64. 查看当前装载进度
SELECTdb_name,
tb_name,
ip,
state,
start_time,
progress,
total_size,
loaded_size,
loaded_records,
skipped_records
FROM information_schema.load_status
ORDER BY db_name, tb_name;
65. 查看历史装载结果
SELECTtask_id,
db_name,
tb_name,
user,
host_ip,
start_time,
end_time,
elapsed_time,
total_size,
loaded_records,
skipped_records
FROM information_schema.load_result
WHERE start_time >= '2026-07-27'
ORDER BY start_time DESC;
66. 检查装载错误行数
SELECTtask_id,
db_name,
tb_name,
loaded_records,
skipped_records
FROM information_schema.load_result
WHERE skipped_records > 0
ORDER BY start_time DESC;
67. 导出查询结果到服务器文件
rmt:SELECT *FROM appdb.orders
WHERE order_date >= '2026-07-01'
INTO OUTFILE '/data/export/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
NULL_VALUE 'N';
文件路径属于执行节点,执行前应检查目录权限和磁盘空间。
68. 使用 gccli 导出查询结果
gccli -h 192.168.1.10 -u report_user -p -D appdb
-e "SELECT * FROM orders LIMIT 1000"
> orders.txt
69. 批量执行装载脚本
gccli -h 192.168.1.10 -u loader -p -D appdb < load_orders.sql
> load_orders.log 2>&1
70. 检查批量脚本错误
grep -niE 'error|failed|exception' load_orders.log八、用户、权限与对象管理
71. 查看用户
SELECTuser,
host
FROM gbase.user
ORDER BY user, host;
系统权限表结构可能随版本变化,查询前可先 DESC gbase.user。
72. 创建用户
CREATE USER 'appuser'@'%'IDENTIFIED BY 'Replace_With_Strong_Password';
73. 修改用户密码
SET PASSWORD FOR 'appuser'@'%'= PASSWORD('Replace_With_New_Strong_Password');
具体密码语法应以当前版本的安全策略和官方手册为准。
74. 查看用户权限
SHOW GRANTS FOR 'appuser'@'%';75. 授予只读权限
GRANT SELECT ON appdb.*TO 'report_user'@'%';
76. 授予读写权限
GRANT SELECT, INSERT, UPDATE, DELETEON appdb.*
TO 'appuser'@'%';
77. 回收权限
REVOKE INSERT, UPDATE, DELETEON appdb.*
FROM 'appuser'@'%';
78. 删除用户
DROP USER 'appuser'@'%';79. 查看存储过程
SHOW PROCEDURE STATUSWHERE Db = 'appdb';
80. 查看函数
SHOW FUNCTION STATUSWHERE Db = 'appdb';
九、分片、重分布与恢复模式
81. 导出指定 Distribution 配置
gcadmin getdistribution 1 distribution_1.xml1 为示例 Distribution ID,应先通过 showdistribution 确认。
82. 查看重分布命令帮助
gcadmin rebalance --help不同版本的重分布参数差异较大,必须先查看当前安装版本帮助。
83. 检查重分布相关子命令
gcadmin --help | grep -i rebalanceGBase 8a 不同小版本的重分布参数和状态查询方式存在差异,应先确认当前安装版本实际提供的子命令,再按对应版本管理员手册执行。
84. 查看虚拟集群
gcadmin showvc多 VC 功能和子命令只适用于支持相应能力的版本。
85. 查看当前集群模式
gcadmin输出中应重点确认集群处于 NORMAL、RECOVERY 或其他维护状态。
86. 切换到恢复模式
gcadmin switchmode recovery该命令只应在官方恢复流程要求时执行,并且通常只在一个部署 gcware 的节点上执行一次。
87. 恢复完成后切回正常模式
gcadmin switchmode normal切换前必须确认恢复任务、节点状态和数据一致性已经满足要求。
88. 初始化节点数据映射
INITNODEDATAMAP;该命令用于安装初始化阶段,不是日常巡检命令,已有生产集群不要重复执行。
89. 查看集群 DML 一致性事件
gcadmin showdmlevent发现 Event 后,应结合表、节点、时间和同步服务日志判断是否需要恢复处理。
90. 查看集群 DDL 一致性事件
gcadmin showddlevent十、日志与操作系统巡检
91. 查看 gcluster 系统日志
tail -200 "$GCLUSTER_BASE/log/gcluster/system.log"实际安装目录应根据现场环境替换。
92. 查看 gcluster 引擎日志
tail -200 "$GCLUSTER_BASE/log/gcluster/express.log"93. 查看 gclusterd 日志
tail -200 "$GCLUSTER_BASE/log/gcluster/gclusterd.log"94. 查看审计日志
tail -200 "$GCLUSTER_BASE/log/gcluster/gclusterd-audit.log"95. 查看 gnode 日志
tail -200 "$GNODE_BASE/log/gbase/express.log"96. 查看同步服务日志
tail -200 "$GNODE_BASE/log/gbase/syncserver.log"97. 搜索近期错误
grep -RniE 'error|fatal|failed|exception' "$GCLUSTER_BASE/log" "$GNODE_BASE/log" | tail -200
98. 查看主机 CPU 和内存
uptimefree -m
top
99. 查看磁盘空间和 I/O
df -hdf -i
iostat -x 1 5
应重点检查 Coordinator、gnode 数据目录、日志目录和装载文件目录。
100. 执行集群快速巡检
gcadmingcadmin showcluster c
gcadmin showcluster d
gcadmin showdistribution node
gcadmin showdmlevent 20
gcadmin showddlevent 20
gcadmin showdmlstorageevent 20
gcadmin showfailover
gcadmin showlock
这些命令可以快速检查节点、分片、一致性事件、倒换记录和集群锁,但正式巡检还要结合会话任务、表空间、数据倾斜、装载任务、日志和操作系统资源综合判断。
结语
GBase 8a 的日常运维不能只停留在 SQL 层。SHOW PROCESSLIST 只能提供局部信息,完整排查需要同时查看 Coordinator、gnode、分片、副本和一致性 Event。
出现 SQL 卡顿时,应先判断任务卡在 Coordinator 还是 gnode;出现空间问题时,要检查各分片段是否均匀;出现数据一致性告警时,要结合 showdmlevent、showddlevent、同步服务和恢复日志定位。对于重分布、恢复模式和节点变更,应严格按照当前版本管理员手册执行。
官方资料
- GBase 8a 官方文档:https://www.gbase.cn/docs/gbase-8a/
- GBase 8a MPP Cluster 产品手册:https://cdn.gbase.cn/products/30/WYp0qy85K9ciqDMnYt463/GBase%...
- 组件工具:https://www.gbase.cn/docs/gbase-8a/%E4%BA%A7%E5%93%81%E6%89%8...
- 集群数据重分布:https://www.gbase.cn/docs/gbase-8a/%E4%BA%A7%E5%93%81%E6%89%8...
相关文章
- TPLink TLWR880N 无线路由器控制管控网络权限 09-02
- 猎风传说猎鹰剑豪怎么样 猎风传说猎鹰剑豪技能详细说明 09-02
- 猎风传说幽海龙灵怎么搭配 猎风传说幽海龙灵阵容搭配详细说明 09-02
- 猎风传说宠物阵容搭配操作步骤 猎风传说宠物阵容如何搭配 09-02
- Memcached set 命令 09-02
- TPLink TLWR880N 51 无线路由器设置指导 09-02