sublime text 本身不能执行 postgresql 分布式物理节点状态查询,它仅编辑 sql 文本;psql 是 postgresql 官方命令行客户端,可连接 citus 协调节点并执行 select * from citus_nodes; 等查询,sublime 需通过配置调用 psql 才能间接实现。

Sublime Text 本身不能执行 PostgreSQL 分布式物理节点的状态查询——它不运行 SQL,也不连接数据库,更不具备分布式集群管理能力。
PostgreSQL-Client 是什么,和 Sublime 什么关系
psql 是 PostgreSQL 官方命令行客户端,用于连接、查询、管理 PostgreSQL 实例;而 “PostgreSQL-Client” 不是 Sublime 插件名,也不是标准工具包名称。常见混淆点在于:有人把 psql 命令误称为 “PostgreSQL-Client”,或把 Sublime 的 SQLTools 插件当成能替代 psql 的执行环境。
- Sublime Text 只能编辑 SQL 文本,哪怕装了
SQLTools或Better SQL Syntax,也仅提供语法高亮、补全、格式化,不建立数据库连接 -
psql才是真正执行查询的工具,它可连单机 PostgreSQL,也可连 Citus 协调节点(coordinator node)来查分布式状态 - 若你实际想查 Citus 集群的物理节点状态,必须通过
psql连到 coordinator,然后运行SELECT * FROM citus_nodes;或SELECT * FROM pg_dist_node;
如何用 psql 查 Citus 分布式节点状态(实操路径)
假设你已部署 Citus 集群,协调节点在 localhost:5432,用户 postgres,数据库 citus:
- 终端中执行:
psql -h localhost -p 5432 -U postgres -d citus - 连上后直接查节点元数据:
SELECT node_name, node_port, node_type, is_active FROM citus_nodes; - 检查分片分布:
SELECT logicalrelid, partition_key, colocationid FROM pg_dist_partition; - 查看分片所在物理节点:
SELECT shardid, nodename, nodeport FROM pg_dist_shard_placement WHERE shardstate = 1;
注意:citus_nodes 视图只在 Citus 扩展启用后存在;若提示 relation does not exist,说明未 CREATE EXTENSION citus; 或连接的不是 coordinator 节点。
Sublime 能帮什么忙,又容易在哪翻车
Sublime 可作为编写和复用这些查询语句的高效编辑器,但必须清楚边界:
- 用
SQLTools配置好 PostgreSQL 连接后,它仍只发送查询文本给外部 psql 或其他后端服务,不是自己执行 —— 实际执行依赖你本地是否装了psql、路径是否在$PATH中 - 如果在 Sublime 里点击“执行查询”失败,先检查控制台输出:
psql: command not found表示没装或没配环境变量;connection refused表示 coordinator 没在监听,或防火墙/SELinux 拦截了端口 - Citus 的节点状态查询高度依赖 coordinator 的元数据一致性;若 worker 节点宕机但未从
citus_nodes中移除,is_active = false字段才是关键判断依据,不能只看列表是否存在
真正要监控物理节点健康状态,得靠 pg_is_in_recovery()、系统视图 pg_stat_replication(对 standby)、或外部工具如 citus_cluster_health 脚本 —— 这些都超出了 Sublime 和基础 psql 的能力范围。











