GoldenDB DBA 应该掌握的 100 条命令(建议收藏) GoldenDB 是中兴通讯旗下金篆信科推出的金融级分布式数据库提供分布式事务、分片、高可用、读写分离、备份恢复和运维管理等能力。其公开白皮书说明 GoldenDB 支持 SQL92/SQL99/SQL2003并兼容 MySQL 常用语法同时提供 OMM、Insight、Tool Suite 等管理工具。下面整理 100 条常用 SQL、客户端命令和巡检操作覆盖连接、对象、事务、会话、性能、权限、备份及分布式集群检查。需要特别说明GoldenDB 不同版本、部署模式和兼容模式的系统视图、管理接口可能不同。本文前 80 条以公开资料确认的 MySQL 兼容能力和标准 SQL 为主后 20 条涉及 GoldenDB 专有能力时只给出公开可核验的 OMM/Insight 操作入口和检查目标不虚构未公开的内部命令。生产环境请以对应版本产品手册和现场权限为准。一、连接与基础信息1. 使用 MySQL 客户端连接 GoldenDBmysql -h 192.168.1.10 -P 3306 -u dba -p地址和端口通常指向 GoldenDB 对外服务入口不要绕过接入层直连数据节点。2. 查看数据库版本SELECT VERSION();3. 查看当前数据库SELECT DATABASE();4. 查看当前用户SELECT CURRENT_USER(), USER();5. 查看当前时间SELECT NOW(), CURRENT_TIMESTAMP();6. 查看字符集SHOW VARIABLES LIKE character_set%;7. 查看排序规则SHOW VARIABLES LIKE collation%;8. 查看 SQL 模式SELECT SESSION.sql_mode, GLOBAL.sql_mode;9. 查看时区SELECT SESSION.time_zone, GLOBAL.time_zone;10. 查看当前连接 IDSELECT CONNECTION_ID();二、数据库与对象11. 查看数据库SHOW DATABASES;12. 创建数据库CREATE DATABASE appdb DEFAULT CHARACTER SET utf8mb4;13. 切换数据库USE appdb;14. 查看建库语句SHOW CREATE DATABASE appdb;15. 查看表SHOW FULL TABLES FROM appdb;16. 查看表结构DESC appdb.orders;17. 查看完整建表语句SHOW CREATE TABLE appdb.orders;18. 创建业务表CREATE TABLE appdb.orders ( order_id BIGINT NOT NULL, customer_id BIGINT NOT NULL, order_time DATETIME NOT NULL, amount DECIMAL(18,2) NOT NULL, status VARCHAR(20), PRIMARY KEY (order_id) );分片键、分布方式及全局唯一性约束应按对应 GoldenDB 版本的建表规范补充。19. 添加字段ALTER TABLE appdb.orders ADD COLUMN remark VARCHAR(200);20. 修改字段ALTER TABLE appdb.orders MODIFY COLUMN remark VARCHAR(500);21. 删除字段ALTER TABLE appdb.orders DROP COLUMN remark;22. 重命名表RENAME TABLE appdb.orders TO appdb.orders_history;23. 清空表TRUNCATE TABLE appdb.orders_history;24. 删除表DROP TABLE appdb.orders_history;25. 查看视图SHOW FULL TABLES FROM appdb WHERE Table_type VIEW;26. 创建视图CREATE VIEW appdb.v_paid_orders AS SELECT order_id, customer_id, amount FROM appdb.orders WHERE status PAID;27. 查看存储过程SHOW PROCEDURE STATUS WHERE Db appdb;28. 查看函数SHOW FUNCTION STATUS WHERE Db appdb;29. 查看触发器SHOW TRIGGERS FROM appdb;30. 查看事件SHOW EVENTS FROM appdb;三、元数据与容量31. 从系统库查看表SELECT table_schema, table_name, table_type FROM information_schema.tables WHERE table_schema appdb ORDER BY table_name;32. 查看字段元数据SELECT column_name, column_type, is_nullable, column_key FROM information_schema.columns WHERE table_schema appdb AND table_name orders ORDER BY ordinal_position;33. 查看索引SHOW INDEX FROM appdb.orders;34. 从系统库查看索引SELECT index_name, column_name, non_unique, seq_in_index FROM information_schema.statistics WHERE table_schema appdb AND table_name orders ORDER BY index_name, seq_in_index;35. 创建普通索引CREATE INDEX idx_orders_customer ON appdb.orders(customer_id);36. 创建联合索引CREATE INDEX idx_orders_status_time ON appdb.orders(status, order_time);37. 删除索引DROP INDEX idx_orders_status_time ON appdb.orders;38. 查看表容量SELECT table_name, table_rows, data_length, index_length, data_free FROM information_schema.tables WHERE table_schema appdb ORDER BY data_length index_length DESC;这些值通常是统计值分布式场景下应同时在 OMM 查看各分片实际容量。39. 查看库容量SELECT table_schema, ROUND(SUM(data_length index_length) / 1024 / 1024, 2) AS size_mb FROM information_schema.tables GROUP BY table_schema ORDER BY size_mb DESC;40. 查看分区信息SELECT table_schema, table_name, partition_name, partition_method, partition_expression, table_rows FROM information_schema.partitions WHERE table_schema appdb AND table_name orders;四、数据与事务41. 插入数据INSERT INTO appdb.orders (order_id, customer_id, order_time, amount, status) VALUES (10001, 2001, NOW(), 99.00, PAID);42. 批量插入INSERT INTO appdb.orders (order_id, customer_id, order_time, amount, status) VALUES (10002, 2002, NOW(), 199.00, NEW), (10003, 2003, NOW(), 299.00, NEW);43. 更新数据UPDATE appdb.orders SET status PAID WHERE order_id 10002;44. 删除数据DELETE FROM appdb.orders WHERE order_id 10003;45. 开启事务START TRANSACTION;46. 提交事务COMMIT;47. 回滚事务ROLLBACK;48. 使用保存点SAVEPOINT before_update;49. 回滚到保存点ROLLBACK TO SAVEPOINT before_update;50. 查看事务隔离级别SELECT SESSION.transaction_isolation;部分兼容版本可能使用tx_isolation。51. 设置会话隔离级别SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;52. 查看自动提交SELECT autocommit;53. 关闭当前会话自动提交SET SESSION autocommit 0;54. 使用行锁读取SELECT * FROM appdb.orders WHERE order_id 10001 FOR UPDATE;55. 检查重复主键SELECT order_id, COUNT(*) AS cnt FROM appdb.orders GROUP BY order_id HAVING COUNT(*) 1;五、会话与 SQL 性能56. 查看连接SHOW FULL PROCESSLIST;57. 从系统库查看连接SELECT id, user, host, db, command, time, state, info FROM information_schema.processlist ORDER BY time DESC;58. 终止异常会话KILL CONNECTION 12345;执行前确认会话所属应用及事务影响。59. 终止正在运行的 SQLKILL QUERY 12345;60. 查看执行计划EXPLAIN SELECT * FROM appdb.orders WHERE customer_id 2001;61. 查看格式化执行计划EXPLAIN FORMATJSON SELECT * FROM appdb.orders WHERE customer_id 2001;是否支持 JSON 格式取决于版本和兼容模式。62. 更新表统计信息ANALYZE TABLE appdb.orders;63. 检查表CHECK TABLE appdb.orders;64. 查看全局状态SHOW GLOBAL STATUS;65. 查看连接状态指标SHOW GLOBAL STATUS WHERE Variable_name IN (Threads_connected, Threads_running, Connections, Aborted_connects);66. 查看 SQL 计数指标SHOW GLOBAL STATUS LIKE Com_select;67. 查看慢查询开关SHOW VARIABLES LIKE slow_query_log;实际慢 SQL 建议从 GoldenDB Insight 或 OMM 查询以获得跨节点、跨分片的完整链路。68. 查看长时间运行会话SELECT id, user, host, db, time, state, info FROM information_schema.processlist WHERE command Sleep AND time 60 ORDER BY time DESC;69. 查看睡眠连接SELECT user, host, COUNT(*) AS sessions FROM information_schema.processlist WHERE command Sleep GROUP BY user, host ORDER BY sessions DESC;70. 查看常用超时参数SHOW VARIABLES WHERE Variable_name IN (connect_timeout, wait_timeout, interactive_timeout, net_read_timeout, net_write_timeout);六、用户与权限71. 查看用户SELECT user, host FROM mysql.user ORDER BY user, host;系统权限表的可见性取决于账号和版本。72. 创建用户CREATE USER appuser% IDENTIFIED BY Replace_With_Strong_Password;73. 修改用户密码ALTER USER appuser% IDENTIFIED BY Replace_With_New_Strong_Password;74. 查看用户授权SHOW GRANTS FOR appuser%;75. 授予只读权限GRANT SELECT ON appdb.* TO appuser%;76. 授予读写权限GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO appuser%;77. 回收权限REVOKE DELETE ON appdb.* FROM appuser%;78. 刷新权限FLUSH PRIVILEGES;通过标准 DDL 管理用户时通常会自动生效仅在直接维护权限表等特定场景使用。79. 锁定用户ALTER USER appuser% ACCOUNT LOCK;该语法是否可用取决于 GoldenDB 版本。80. 删除用户DROP USER appuser%;七、备份、恢复与迁移81. 使用客户端导出表结构mysqldump -h 192.168.1.10 -P 3306 -u dba -p \ --no-data appdb appdb_ddl.sql仅适合兼容的逻辑导出场景生产集群的统一备份应优先使用 GoldenDB 官方备份工具或 OMM。82. 使用客户端导出小表mysqldump -h 192.168.1.10 -P 3306 -u dba -p \ --single-transaction appdb small_table small_table.sql83. 使用客户端导入 SQL 文件mysql -h 192.168.1.10 -P 3306 -u dba -p appdb \ small_table.sql84. 在 OMM 创建集群备份任务进入OMM → 备份恢复选择集群、备份类型、存储位置和保留周期后创建任务。GoldenDB 公开资料确认支持热备份、库表级备份和时间点恢复具体菜单及字段以版本手册为准。85. 在 OMM 查看备份任务进入OMM → 备份恢复 → 任务列表检查任务状态、开始时间、结束时间、备份集大小和失败原因。86. 在 OMM 校验备份可恢复性选择目标备份集执行校验重点确认备份介质可访问、元数据完整、各分片备份齐全。87. 在隔离环境执行恢复演练通过OMM → 备份恢复 → 恢复选择备份集或时间点将数据恢复到隔离环境并校验业务数据。恢复位置、覆盖范围和回切方案必须提前确认。88. 执行表级恢复在 OMM 或对应版本官方备份工具中选择数据库、表和目标位置执行恢复。不要照搬其他版本的dbtool参数其命令行参数应从当前版本产品手册获取。89. 核对最近恢复点在 OMM 查看最近成功全量备份、增量备份及日志归档连续性确认实际 RPO 满足要求。90. 检查备份存储容量df -h若备份使用对象存储或专用备份平台还应在对应平台检查配额、生命周期和访问状态。八、GoldenDB 集群巡检91. 在 OMM 查看集群拓扑进入OMM → 集群管理 → 集群拓扑确认计算、数据、管理等节点角色及运行状态。92. 在 OMM 查看节点健康进入节点监控页面检查节点在线状态、心跳、CPU、内存、磁盘、网络和进程告警。93. 在 OMM 检查分片分布查看各数据节点的分片数量、容量和副本分布识别热点节点、分布倾斜及异常副本。94. 在 OMM 检查副本一致性查看副本状态、复制延迟和一致性告警修复动作应按当前版本官方故障处理流程执行。95. 在 OMM 检查读写分离核对主备状态、读流量分配、备节点延迟和路由策略避免将强一致查询错误路由到延迟副本。96. 使用 Insight 查看慢 SQL在GoldenDB Insight → SQL 分析中按耗时、扫描行数、执行次数和资源消耗排序定位高负载 SQL。97. 使用 Insight 查看事务查看长事务、阻塞事务、分布式事务状态和失败原因重点关注长期未提交事务及异常 XA 事务。98. 查看集群告警在 OMM 告警中心按严重级别、对象和时间筛选确认每条活动告警已有负责人和处置记录。99. 查看集群容量趋势在 OMM 容量监控中检查数据量、日志量、备份量和磁盘增长趋势按扩容周期预留安全空间。100. 执行每日快速巡检每日按以下顺序检查集群与节点状态 → 分片及副本健康 → 复制延迟与读写路由 → 活动告警 → 长事务与慢 SQL → CPU、内存、磁盘、网络 → 备份任务与可恢复点 → 容量增长和扩容余量结语GoldenDB 运维的重点不只是 MySQL 兼容 SQL还包括接入层路由、分片、副本、分布式事务和统一备份恢复。日常查询可通过 SQL 完成集群级操作则应以 OMM、Insight、Tool Suite 和当前版本官方手册为准。对于公开资料未给出完整语法的扩缩容、主备切换、分片迁移和内部修复命令本文刻意没有编造参数。此类高风险操作应由经过授权的管理员按照产品手册执行。