查看表所在节点
用户在建表时可以指定表如何在节点之间分布或者复制,详情请参考•DISTRIBUTEBY,分布方式介绍可参阅选择分布方式。
用户在建表时也可设置“Node Group”来指定表所在的Group,详情请参考•TO{GROUPgroupname|...。
用户还可以通过以下命令查看表所在实例。
- 查询表所在的schema。
select t1.nspname,t2.relname from pg_namespace t1,pg_class t2 where t1.oid = t2.relnamespace and t2.relname = 'table1';
上述命令中,“nspname”为schema的名称,“relname”为表、索引、视图等对象的名称,“oid”为行标识符,“relnamespace”为包含这个关系的名称空间的OID,“table1”为表名称。
- 查看表的relname和nodeoids。
select t1.relname,t2.nodeoids from pg_class t1, pgxc_class t2, pg_namespace t3 where t1.relfilenode = t2.pcrelid and t1.relnamespace=t3.oid and t1.relname = 'table1' and t3.nspname ='schema1';
上述命令中,“nodeoids”为表分布的节点OID列表,“relfilenode”为这个关系在磁盘上的文件的名称,“pcrelid”为表的OID,“schema1”为1中查询出的该表所在schema。
- 根据查询到的表分布的节点,查询表所在实例。
select * from pgxc_node where oid in (nodeoids1, nodeoids2, nodeoids3);
上述命令中的“nodeoids1, nodeoids2, nodeoids3”为2中查询到的3个nodeoids,操作时以实际查询到的为准,各nodeoids间以“,”隔开。