云服务器内容精选

  • PGXC_NODE PGXC_NODE系统表存储数据库实例节点信息。PGXC_NODE系统表仅在分布式场景下有具体含义,集中式只能查询表定义。 表1 PGXC_NODE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 node_name name 节点名称。 node_type "char" 节点类型。 C:协调节点。 D:数据节点。 S:数据节点的备节点。 node_port integer 节点的端口号。 node_host name 节点的主机名称或者IP(如配置为虚拟IP,则为虚拟IP)。 node_port1 integer 复制节点的端口号。 node_host1 name 复制节点的主机名称或者IP(如配置为虚拟IP,则为虚拟IP)。 hostis_primary boolean 表明当前节点是否发生主备切换。 t(true):表示发生。 f(false):表示不发生。 nodeis_primary boolean 在replication表下,是否优选当前节点作为优先执行的节点进行非查询操作。 t(true):表示优选。 f(false):表示不优选。 nodeis_preferred boolean 在replication表下,是否优选当前节点作为首选的节点进行查询。 t(true):表示优选。 f(false):表示不优选。 node_id integer 节点标识符。由node_name经过hash函数计算后得到。 sctp_port integer 主节点使用TCP代理通信库的数据通道侦听端口(当前版本已经不再支持SCTP通信库)。 control_port integer 主节点使用TCP代理通信库的控制通道侦听端口。 sctp_port1 integer 备节点使用TCP代理通信库的数据通道侦听端口(当前版本已经不再支持SCTP通信库)。 control_port1 integer 备节点使用TCP代理通信库的控制通道侦听端口。 nodeis_central boolean 表明当前节点是否为中心控制节点,对DN无效。 t(true):表示是。 f(false):表示不是。 nodeis_active boolean 表明当前节点是否是正常状态,对DN无效。 t(true):表示是。 f(false):表示不是。 父主题: 系统表
  • PGXC_NODE PGXC_NODE系统表存储集群节点信息。 PGXC_NODE系统表存储数据库实例节点信息。PGXC_NODE系统表仅在CN下有具体含义且数据有效正确。 在DN节点查询PGXC_NODE系统表结果数据中只有node_id字段是有意义,其他字段值没有意义且为无效数据。 表1 PGXC_NODE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 node_name name 节点名称。 node_type "char" 节点类型。 C:协调节点。 D:数据节点。 S:数据节点的备节点。 node_port integer 节点的端口号。 node_host name 节点的主机名称或者IP(如配置为虚拟IP,则为虚拟IP)。 node_port1 integer 复制节点的端口号。 node_host1 name 复制节点的主机名称或者IP(如配置为虚拟IP,则为虚拟IP)。 hostis_primary boolean 表明当前节点是否发生主备切换。 t(true):表示发生。 f(false):表示不发生。 nodeis_primary boolean 在replication表下,是否优选当前节点作为优先执行的节点进行非查询操作。 t(true):表示优选。 f(false):表示不优选。 nodeis_preferred boolean 在replication表下,是否优选当前节点作为首选的节点进行查询。 t(true):表示优选。 f(false):表示不优选。 node_id integer 节点标识符。由node_name经过hash函数计算后得到。 sctp_port integer 主节点使用TCP代理通信库的数据通道侦听端口(当前版本已经不再支持SCTP通信库)。 control_port integer 主节点使用TCP代理通信库的控制通道侦听端口。 sctp_port1 integer 备节点使用TCP代理通信库的数据通道侦听端口(当前版本已经不再支持SCTP通信库)。 control_port1 integer 备节点使用TCP代理通信库的控制通道侦听端口。 nodeis_central boolean 表明当前节点是否为中心控制节点,只用于CN,对DN无效。 t(true):表示是。 f(false):表示不是。 nodeis_active boolean 表明当前节点是否是正常状态,用于标记CN是否被剔除,对DN无效。 t(true):表示是。 f(false):表示不是。 父主题: 系统表
  • PGXC_NODE PGXC_NODE系统表存储数据库实例节点信息。PGXC_NODE系统表仅在分布式场景下有具体含义,集中式只能查询表定义。 表1 PGXC_NODE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 node_name name 节点名称。 node_type "char" 节点类型。 C:协调节点。 D:数据节点。 S:数据节点的备节点。 node_port integer 节点的端口号。 node_host name 节点的主机名称或者IP(如配置为虚拟IP,则为虚拟IP)。 node_port1 integer 复制节点的端口号。 node_host1 name 复制节点的主机名称或者IP(如配置为虚拟IP,则为虚拟IP)。 hostis_primary boolean 表明当前节点是否发生主备切换。 t(true):表示发生。 f(false):表示不发生。 nodeis_primary boolean 在replication表下,是否优选当前节点作为优先执行的节点进行非查询操作。 t(true):表示优选。 f(false):表示不优选。 nodeis_preferred boolean 在replication表下,是否优选当前节点作为首选的节点进行查询。 t(true):表示优选。 f(false):表示不优选。 node_id integer 节点标识符。由node_name经过hash函数计算后得到。 sctp_port integer 主节点使用TCP代理通信库或SCTP通信库(由于规格变更,当前版本已经不再支持本特性,请不要使用)的数据通道侦听端口。 control_port integer 主节点使用TCP代理通信库的控制通道侦听端口。 sctp_port1 integer 备节点使用TCP代理通信库或SCTP通信库(由于规格变更,当前版本已经不再支持本特性,请不要使用)的数据通道侦听端口。 control_port1 integer 备节点使用TCP代理通信库的控制通道侦听端口。 nodeis_central boolean 表明当前节点是否为中心控制节点,对DN无效。 t(true):表示是。 f(false):表示不是。 nodeis_active boolean 表明当前节点是否是正常状态,对DN无效。 t(true):表示是。 f(false):表示不是。 父主题: 系统表
  • PGXC_NODE PGXC_NODE系统表存储集群节点信息。 表1 PGXC_NODE字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 node_name name 节点名称。 node_type "char" 节点类型。 C:协调节点。 D:数据节点。 S:数据节点的备节点。 node_port integer 节点的端口号。 node_host name 节点的主机名称或者IP(如配置为虚拟IP,则为虚拟IP)。 node_port1 integer 复制节点的端口号。 node_host1 name 复制节点的主机名称或者IP(如配置为虚拟IP,则为虚拟IP)。 hostis_primary boolean 表明当前节点是否发生主备切换。 t(true):表示发生。 f(false):表示不发生。 nodeis_primary boolean 在replication表下,是否优选当前节点作为优先执行的节点进行非查询操作。 t(true):表示优选。 f(false):表示不优选。 nodeis_preferred boolean 在replication表下,是否优选当前节点作为首选的节点进行查询。 t(true):表示优选。 f(false):表示不优选。 node_id integer 节点标识符。由node_name经过hash函数计算后得到。 sctp_port integer 主节点使用TCP代理通信库或SCTP通信库(由于规格变更,当前版本已经不再支持本特性,请不要使用)的数据通道侦听端口。 control_port integer 主节点使用TCP代理通信库的控制通道侦听端口。 sctp_port1 integer 备节点使用TCP代理通信库或SCTP通信库(由于规格变更,当前版本已经不再支持本特性,请不要使用)的数据通道侦听端口。 control_port1 integer 备节点使用TCP代理通信库的控制通道侦听端口。 nodeis_central boolean 表明当前节点是否为中心控制节点,只用于CN,对DN无效。 t(true):表示是。 f(false):表示不是。 nodeis_active boolean 表明当前节点是否是正常状态,用于标记CN是否被剔除,对DN无效。 t(true):表示是。 f(false):表示不是。 父主题: 系统表
  • PG_CLASS PG_CLASS系统表存储数据库对象信息及其之间的关系。 表1 PG_CLASS字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 relname name 表、索引、视图等对象的名称。 relnamespace oid 包含这个关系的名称空间的OID。 reltype oid 对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 reloftype oid 复合类型的OID,0表示其他类型。 relowner oid 关系所有者。 relam oid 如果行是索引,则就是所用的访问模式(B-tree,hash等)。 relfilenode oid 这个关系在磁盘上的文件的名称,如果没有则为0。 reltablespace oid 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。 relpages double precision 以页(大小为BLCKSZ)为单位的该表在磁盘上的大小,它只是优化器用的一个近似值。 reltuples double precision 表中行的数目,只是优化器使用的一个估计值。 relallvisible integer 被标识为全可见的表中的页的数量。此字段是优化器用来做SQL执行优化使用的。VACUUM、ANALYZE和一些DDL语句(例如,CREATE INDEX)会引起此字段更新。 reltoastrelid oid 与该表关联的TOAST表的OID ,如果没有则为0。 TOAST表在一个从属表里“离线”存储大字段。 reltoastidxid oid 对于TOAST表是它的索引的OID,如果不是TOAST表则为0。 reldeltarelid oid Delta表的OID。 Delta表附属于列存表。用于存储数据导入过程中的甩尾数据。 reldeltaidx oid Delta表的索引表OID。 relcudescrelid oid CU描述表的OID。 CU描述表(Desc表)附属于列存表。用于控制表目录中存储数据的可见性。 relcudescidx oid CU描述表的索引表OID。 relhasindex boolean 如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM进程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。 relisshared boolean 如果该表在整个集群中由所有数据库共享则为真,否则为假。只有某些系统表(比如pg_database)是共享的。 relpersistence "char" p:表示永久表。 u:表示非日志表。 t:表示临时表。 relkind "char" r:表示普通表。 i:表示索引。 S:表示序列。 v:表示视图。 c:表示复合类型。 t:表示TOAST表。 f:表示外表。 m:表示物化视图。 e:表示STREAM对象。 o:表示CONTVIEW对象。 relnatts smallint 关系中用户字段数目(除了系统字段以外)。在pg_attribute里肯定有相同数目对应行。 relchecks smallint 表里的检查约束的数目;参阅pg_constraint表。 relhasoids boolean 如果为关系中每行都生成一个OID则为真,否则为假。 relhaspkey boolean 如果这个表有一个(或者曾经有一个)主键,则为真。否则为假。 relhasrules boolean 如表有规则就为真。是否有规则可参考系统表PG_REWRITE。 relhastriggers boolean True表示表中有触发器,或者曾经有过触发器。系统表pg_trigger中记录了表和视图的触发器。 relhassubclass boolean 如果有(或者曾经有)任何继承的子表,为真。否则为假。 relcmprs tinyint 表示是否启用表的启用压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。 2表示表数据的压缩特性为COMPRESS。 relhasclusterkey boolean 是否有局部聚簇存储。 true:表示有。 false:表示没有。 relrowmovement boolean 针对分区表进行update操作时,是否允许行迁移。 true:表示允许行迁移。 false:表示不允许行迁移。 parttype "char" 表或者索引是否具有分区表的性质。 p:表示带有分区表性质。 n:表示没有分区表特性。 relfrozenxid xid32 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 relacl aclitem[] 访问权限。 查询的回显结果为以下形式: 1 rolename=xxxx/yyyy --赋予一个角色的权限 1 =xxxx/yyyy --赋予public的权限 xxxx表示赋予的权限,yyyy表示授予这个权限的角色。权限的参数说明请参见表2。 reloptions text[] 表或索引的访问方法,使用"keyword=value"格式的字符串。 relreplident "char" 逻辑解码中解码列的标识: d = 默认 (主键,如果存在)。 n = 无。 f = 所有列。 i = 索引的indisreplident被设置或者为默认。 relfrozenxid64 xid 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 relbucket oid 当前表是否包含hash bucket分片。有效的OID指向pg_hashbucket表中记录的具体分片信息。NULL表示不包含hash bucket分片。 relbucketkey int2vector 表示hash分区列信息,NULL表示不包含。 relminmxid xid 该表中所有在这个之前的多事务ID已经被一个事务ID替换。该字段用于跟踪该表是否需要为了防止多事务ID重叠或者允许收缩pg_clog而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 表2 权限的参数说明 参数 参数说明 r SELECT(读) w UPDATE(写) a INSERT(插入) d DELETE D TRUNCATE x REFEREN CES t TRIGGER X EXECUTE U USAGE C CREATE c CONNECT T TEMPORARY A ALTER P DROP m COMMENT i INDEX v VACUUM * 给前面权限的授权选项 父主题: 系统表
  • PG_CLASS PG_CLASS系统表存储数据库对象信息及其之间的关系。 表1 PG_CLASS字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 relname name 表、索引、视图等对象的名称。 relnamespace oid 包含这个关系的名称空间的OID。 reltype oid 对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 reloftype oid 复合类型的OID,0表示其他类型。 relowner oid 关系所有者。 relam oid 如果行是索引,则就是所用的访问模式(B-tree,hash等)。 relfilenode oid 这个关系在磁盘上的文件的名称,如果没有则为0。 reltablespace oid 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。 relpages double precision 以页(大小为BLCKSZ)为单位的此表在磁盘上的大小,它只是优化器用的一个近似值。 reltuples double precision 表中行的数目,只是优化器使用的一个估计值。 relallvisible integer 被标识为全可见的表中的页的数量。此字段是优化器用来做SQL执行优化使用的。VACUUM、ANALYZE和一些DDL语句(例如,CREATE INDEX)会引起此字段更新。 reltoastrelid oid 与此表关联的TOAST表的OID ,如果没有则为0。 TOAST表在一个从属表里“离线”存储大字段。 reltoastidxid oid 对于TOAST表是它的索引的OID,如果不是TOAST表则为0。 reldeltarelid oid Delta表的OID。 Delta表附属于列存表。用于存储数据导入过程中的甩尾数据。 reldeltaidx oid Delta表的索引表OID。 relcudescrelid oid CU描述表的OID。 CU描述表(Desc表)附属于列存表。用于控制表目录中存储数据的可见性。 relcudescidx oid CU描述表的索引表OID。 relhasindex boolean 如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM进程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。 relisshared boolean 如果该表在数据库中由所有数据库共享则为真。只有某些系统表(比如pg_database)是共享的。 relpersistence "char" p:表示永久表。 u:表示非日志表。 g:表示临时表。 relkind "char" r:表示普通表。 i:表示索引。 I:表示分区表GLOBAL索引。 S:表示序列。 L:表示长序列。 v:表示视图。 c:表示复合类型。 t:表示TOAST表。 f:表示外表。 m:表示物化视图。 relnatts smallint 关系中用户字段数目(除了系统字段以外)。在pg_attribute里肯定有相同数目对应行。 relchecks smallint 表里的检查约束的数目;参阅pg_constraint表。 relhasoids boolean 如果为关系中每行都生成一个OID则为真。 relhaspkey boolean 如果这个表有一个(或者曾经有一个)主键,则为真。 relhasrules boolean 如表有规则就为真。是否有规则可参考系统表PG_REWRITE。 relhastriggers boolean True表示表中有触发器,或者曾经有过触发器。系统表pg_trigger中记录了表和视图的触发器。 relhassubclass boolean 如果有(或者曾经有)任何继承的子表,为真。 relcmprs tinyint 表示是否启用表的启用压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。 2表示表数据的压缩特性为COMPRESS。 relhasclusterkey boolean 是否有局部聚簇存储。 relrowmovement boolean 针对分区表进行update操作时,是否允许行迁移。 true:表示允许行迁移。 false:表示不允许行迁移。 parttype "char" 表或者索引是否具有分区表的性质。 p:表示带有分区表性质。 n:表示没有分区表特性。 v:表示该表为HDFS的Value分区表。 s:表示该表为二级分区表。 relfrozenxid xid32 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪此表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 relacl aclitem[] 访问权限。 查询的回显结果为以下形式: 1 rolename=xxxx/yyyy --赋予一个角色的权限 1 =xxxx/yyyy --赋予public的权限 xxxx表示赋予的权限,yyyy表示授予这个权限的角色。权限的参数说明请参见表2。 reloptions text[] 表或索引的访问方法,使用"keyword=value"格式的字符串。 relreplident "char" 逻辑解码中解码列的标识: d = 默认 (主键,如果存在)。 n = 无。 f = 所有列。 i = 索引的indisreplident被设置或者为默认。 relfrozenxid64 xid 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪此表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 对于全局临时表,该字段无实际意义。各会话的全局临时表的relfrozenxid64可pg_catalog.pg_gtt_relstats视图中查看。 relbucket oid pg_hashbucket中的桶信息。 relbucketkey int2vector 哈希分区列号。 relminmxid xid 该表中所有在这个之前的多事务ID已经被一个事务ID替换。该字段用于跟踪该表是否需要为了防止多事务ID重叠或者允许收缩pg_clog而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 表2 权限的参数说明 参数 参数说明 r SELECT(读) w UPDATE(写) a INSERT(插入) d DELETE D TRUNCATE x REFERENCES t TRIGGER X EXECUTE U USAGE C CREATE c CONNECT T TEMPORARY A ALTER P DROP m COMMENT i INDEX v VACUUM * 给前面权限的授权选项 父主题: 系统表
  • PG_CLASS PG_CLASS系统表存储数据库对象信息及其之间的关系。 表1 PG_CLASS字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 relname name 表、索引、视图等对象的名称。 relnamespace oid 包含这个关系的名称空间的OID。 reltype oid 对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 relowner oid 关系所有者。 relam oid 如果行是索引,则就是所用的访问模式(B-tree等)。 relfilenode oid 这个关系在磁盘上的文件的名称,如果没有则为0。 reltablespace oid 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。 relpages double precision 以页(大小为BLCKSZ)为单位的该表在磁盘上的大小,它只是优化器用的一个近似值。 reltuples double precision 表中行的数目,只是优化器使用的一个估计值。 relallvisible integer 被标识为全可见的表中的页的数量。此字段是优化器用来做SQL执行优化使用的。VACUUM、ANALYZE和一些DDL语句(例如,CREATE INDEX)会引起此字段更新。 reltoastrelid oid 与该表关联的TOAST表的OID ,如果没有则为0。 TOAST表在一个从属表里“离线”存储大字段。 reltoastidxid oid 对于TOAST表是它的索引的OID,如果不是TOAST表则为0。 relhasindex boolean 如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM进程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。 relisshared boolean 如果该表在整个集群中由所有数据库共享则为真,否则为假。只有某些系统表(比如pg_database)是共享的。 relpersistence "char" p:表示永久表。 u:表示非日志表。 t:表示临时表。 g:表示全局临时表。 relkind "char" r:表示普通表。 i:表示索引。 G:表示全局二级索引。 S:表示序列。 v:表示视图。 t:表示TOAST表。 f:表示外表。 m:表示物化视图。 e:表示STREAM对象。 o:表示CONTVIEW对象。 relnatts smallint 关系中用户字段数目(除了系统字段以外)。在12.2.46 PG_ATTRIBUTE里肯定有相同数目对应行。 relchecks smallint 表里的检查约束的数目,参阅12.2.53 PG_CONSTRAINT表。 relhasoids boolean 如果为关系中每行都生成一个OID则为真,否则为假。 relhaspkey boolean 如果这个表有一个(或者曾经有一个)主键,则为真,否则为假。 relhasrules boolean 如表有规则就为真。是否有规则可参考系统表12.2.87 PG_REWRITE。 relhastriggers boolean True表示表中有触发器,或者曾经有过触发器。系统表12.2.99 PG_TRIGGER中记录了表和视图的触发器。 relhassubclass boolean 如果有(或者曾经有)任何继承的子表,为真,否则为假。 relcmprs tinyint 表示是否启用表的压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。 2表示表数据的压缩特性为COMPRESS。 relhasclusterkey boolean 是否有局部聚簇存储。 true:表示有。 false:表示没有。 relrowmovement boolean 针对分区表进行update操作时,是否允许行迁移。 true:表示允许行迁移。 false:表示不允许行迁移。 parttype "char" 表或者索引是否具有分区表的性质。 p:表示带有分区表性质。 n:表示没有分区表特性。 relfrozenxid xid32 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 relacl aclitem[] 访问权限。aclitem类型说明可以参考aclitem类型。 查询的回显结果为以下形式: 1 user1=privs/user2 表示user2赋予user1的权限为privs 1 =privs/user3 表示user3赋予public角色的权限为privs 其中user1,user2和user3为数据库中已存在的用户/角色名,privs为数据库中支持的权限。权限的参数说明请参见表2。 reloptions text[] 表或索引的访问方法,使用"keyword=value"格式的字符串。 relreplident "char" 逻辑解码中解码列的标识: d:默认 (主键,如果存在)。 n:无。 f:所有列。 i:索引的indisreplident被设置或者为默认。 relfrozenxid64 xid 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 relbucket oid 当前表是否包含hash bucket分片。有效的OID指向pg_hashbucket表中记录的具体分片信息。NULL表示不包含hash bucket分片。 relbucketkey int2vector 表示hash分区列信息,NULL表示不包含。 relminmxid xid 该表中所有在这个之前的多事务ID已经被一个事务ID替换。该字段用于跟踪该表是否需要为了防止多事务ID重叠或者允许收缩pg_clog而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 表2 权限的参数说明 参数 参数说明 r SELECT(读) w UPDATE(写) a INSERT(插入) d DELETE D TRUNCATE x REFERENCES t TRIGGER X EXECUTE U USAGE C CREATE c CONNECT T TEMPORARY A ALTER P DROP m COMMENT i INDEX v VACUUM * 给前面权限的授权选项 父主题: 系统表
  • PG_OBJECT PG_OBJECT系统表存储限定类型对象(普通表,索引,序列,视图,存储过程和函数)的创建用户、创建时间和最后修改时间。 表1 PG_OBJECT字段 名称 类型 描述 object_oid oid 对象标识符。 object_type "char" 对象类型: r 表示普通表 i 表示索引 s 表示序列 v 表示视图 P 表示存储过程和函数 S 表示包头 B 表示包体 creator oid 对象的所有者。 ctime timestamp with time zone 对象的创建时间。 mtime timestamp with time zone 对象的最后修改时间,修改行为包括ALTER操作和GRANT、REVOKE操作。 createcsn bigint 对象创建时的 CS N。 changecsn bigint 对表或索引执行DDL操作时的CSN。 valid boolean 对象的有效性,t为有效,f为无效。 无法记录初始化数据库(initdb)过程中所创建或修改的对象,即PG_OBJECT无法查询到该对象记录。 对于升级前创建的对象,再次修改时会记录其修改时间(mtime),对表或索引执行DDL操作时会记录其所属事务的事务提交序列号(changecsn)。由于无法得知该对象创建时间,因此ctime和createcsn为空。 ctime和mtime所记录的时间为用户当次操作所属事务的起始时间。 由扩容引起的对象修改时间也会被记录。 createcsn和changecsn记录的是用户当次操作所属事务的事务提交序列号。 enable_gtt_concurrent_truncate开启时,truncate全局临时表不会刷新mtime字段。 对象创建语句时存在未定义的对象,或所依赖的对象有修改或删除动作时,对象会为无效状态。 父主题: 系统表
  • PG_CLASS PG_CLASS系统表存储数据库对象信息及其之间的关系。 表1 PG_CLASS字段 名称 类型 描述 oid oid 行标识符(隐含字段,必须明确选择)。 relname name 表、索引、视图等对象的名称。 relnamespace oid 包含这个关系的名称空间的OID。 reltype oid 对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 reloftype oid 复合类型的OID,0表示其他类型。 relowner oid 关系所有者。 relam oid 如果行是索引,则就是所用的访问模式(B-tree等)。 relfilenode oid 这个关系在磁盘上的文件的名称,如果没有则为0。 reltablespace oid 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。 relpages double precision 以页(大小为BLCKSZ)为单位的该表在磁盘上的大小,它只是优化器用的一个近似值。 reltuples double precision 表中行的数目,只是优化器使用的一个估计值。 relallvisible integer 被标识为全可见的表中的页的数量。此字段是优化器用来做SQL执行优化使用的。VACUUM、ANALYZE和一些DDL语句(例如,CREATE INDEX)会引起此字段更新。 reltoastrelid oid 与该表关联的TOAST表的OID ,如果没有则为0。 TOAST表在一个从属表里“离线”存储大字段。 reltoastidxid oid 对于TOAST表是它的索引的OID,如果不是TOAST表则为0。 relhasindex boolean 如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM线程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。 relisshared boolean 如果该表在整个集群中由所有数据库共享则为真,否则为假。只有某些系统表(比如pg_database)是共享的。 relpersistence "char" p:表示永久表。 u:表示非日志表。 t:表示临时表。 g:表示全局临时表。 relkind "char" r:表示普通表。 i:表示索引。 G:表示全局二级索引。 S:表示序列。 v:表示视图。 t:表示TOAST表。 f:表示外表。 m:表示物化视图。 e:表示STREAM对象。 o:表示CONTVIEW对象。 relnatts smallint 关系中用户字段数目(除了系统字段以外)。在12.2.15.26 PG_ATTRIBUTE里肯定有相同数目对应行。 relchecks smallint 表里的检查约束的数目,参阅12.2.15.30 PG_CONSTRAINT表。 relhasoids boolean 如果为关系中每行都生成一个OID则为真,否则为假。 relhaspkey boolean 如果这个表有一个(或者曾经有一个)主键,则为真,否则为假。 relhasrules boolean 如表有规则就为真。是否有规则可参考系统表12.2.15.63 PG_REWRITE。 relhastriggers boolean True表示表中有触发器,或者曾经有过触发器。系统表12.2.15.72 PG_TRIGGER中记录了表和视图的触发器。 relhassubclass boolean 如果有(或者曾经有)任何继承的子表,为真,否则为假。 relcmprs tinyint 表示是否启用表的压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。 2表示表数据的压缩特性为COMPRESS。 relrowmovement boolean 针对分区表进行update操作时,是否允许行迁移。 true:表示允许行迁移。 false:表示不允许行迁移。 parttype "char" 表或者索引是否具有分区表的性质。 p:表示带有分区表性质。 n:表示没有分区表特性。 relfrozenxid xid32 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 relacl aclitem[] 访问权限。aclitem类型说明可以参考aclitem类型。 查询的回显结果为以下形式: 1 user1=privs/user2 表示user2赋予user1的权限为privs 1 =privs/user3 表示user3赋予public角色的权限为privs 其中user1、user2和user3为数据库中已存在的用户/角色名,privs为数据库中支持的权限。权限的参数说明请参见表2。 reloptions text[] 表或索引的访问方法,使用"keyword=value"格式的字符串。 relreplident "char" 逻辑解码中解码列的标识: d:默认 (主键,如果存在)。 n:无。 f:所有列。 i:索引的indisreplident被设置或者为默认。 relfrozenxid64 xid 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪该表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 relbucket oid 当前表是否包含hash bucket分片。有效的OID指向pg_hashbucket表中记录的具体分片信息。NULL表示不包含hash bucket分片。 relbucketkey int2vector 表示hash分区列信息,NULL表示不包含。 relminmxid xid 该表中所有在这个之前的多事务ID已经被一个事务ID替换。该字段用于跟踪该表是否需要为了防止多事务ID重叠或者允许收缩pg_clog而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 表2 权限的参数说明 参数 参数说明 r SELECT(读) w UPDATE(写) a INSERT(插入) d DELETE D TRUNCATE x REFERENCES t TRIGGER X EXECUTE U USAGE C CREATE c CONNECT T TEMPORARY A ALTER P DROP m COMMENT i INDEX v VACUUM * 给前面权限的授权选项 父主题: 其他系统表
  • PG_CLASS PG_CLASS系统表存储数据库对象信息及其之间的关系。 表1 PG_CLASS字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 relname name 表、索引、视图等对象的名称。 relnamespace oid 包含这个关系的名称空间的OID。 reltype oid 对应这个表的行类型的数据类型(索引为零,因为索引没有pg_type记录)。 reloftype oid 复合类型的OID,0表示其他类型。 relowner oid 关系所有者。 relam oid 如果行是索引,则就是所用的访问模式(B-tree等)。 relfilenode oid 这个关系在磁盘上的文件的名称,如果没有则为0。 reltablespace oid 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。如果关系在磁盘上没有文件,则这个字段没有什么意义。 relpages double precision 以页(大小为BLCKSZ)为单位的此表在磁盘上的大小,它只是优化器用的一个近似值。 reltuples double precision 表中行的数目,只是优化器使用的一个估计值。 relallvisible integer 被标识为全可见的表中的页的数量。此字段是优化器用来做SQL执行优化使用的。VACUUM、ANALYZE和一些DDL语句(例如,CREATE INDEX)会引起此字段更新。 reltoastrelid oid 与此表关联的TOAST表的OID ,如果没有则为0。 TOAST表在一个从属表里“离线”存储大字段。 reltoastidxid oid 对于TOAST表是它的索引的OID,如果不是TOAST表则为0。 relhasindex boolean 如果它是一个表而且至少有(或者最近有过)一个索引,则为真。 它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM线程检测一个表没有索引,将会把它将清理relhasindex字段,将值设置为假。 relisshared boolean 如果该表在数据库中由所有数据库共享则为真,否则为假。只有某些系统表(比如pg_database)是共享的。 relpersistence "char" p:表示永久表。 u:表示非日志表。 t:表示临时表。 g:表示全局临时表。 relkind "char" r:表示普通表。 i:表示索引。 I:表示分区表GLOBAL索引。 S:表示序列。 L:表示长序列。 v:表示视图。 c:表示复合类型。 t:表示TOAST表。 f:表示外表。 m:表示物化视图。 relnatts smallint 关系中用户字段数目(除了系统字段以外)。在13.2.15.25 PG_ATTRIBUTE里肯定有相同数目对应行。 relchecks smallint 表里的检查约束的数目,参阅13.2.15.29 PG_CONSTRAINT表。 relhasoids boolean 如果为关系中每行都生成一个OID则为真,否则为假。 relhaspkey boolean 如果这个表有一个(或者曾经有一个)主键则为真,否则为假。 relhasrules boolean 如表有规则就为真。是否有规则可参考系统表13.2.15.62 PG_REWRITE。 relhastriggers boolean True表示表中有触发器,或者曾经有过触发器。系统表13.2.15.71 PG_TRIGGER中记录了表和视图的触发器。 relhassubclass boolean 如果有(或者曾经有)任何继承的子表为真,否则为假。 relcmprs tinyint 表示是否启用表的压缩特性。需要特别注意,当且仅当批量插入才会触发压缩,普通的CRUD并不能够触发压缩。 0表示其他不支持压缩的表(主要是指系统表,不支持压缩属性的修改操作)。 1表示表数据的压缩特性为NOCOMPRESS或者无指定关键字。 2表示表数据的压缩特性为COMPRESS。 relrowmovement boolean 针对分区表进行update操作时,是否允许行迁移。 true:表示允许行迁移。 false:表示不允许行迁移。 parttype "char" 表或者索引是否具有分区表的性质。 p:表示带有分区表性质。 n:表示没有分区表特性。 s:表示该表为二级分区表。 relfrozenxid xid32 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪此表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 为保持前向兼容,保留此字段,新增relfrozenxid64用于记录此信息。 relacl aclitem[] 访问权限。aclitem类型说明可以参考aclitem类型。 查询的回显结果为以下形式: 1 user1=privs/user2 表示user2赋予user1的权限为privs 1 =privs/user3 表示user3赋予public角色的权限为privs 其中user1、user2和user3为数据库中已存在的用户/角色名,privs为数据库中支持的权限。权限的参数说明请参见表2。 reloptions text[] 表或索引的访问方法,使用"keyword=value"格式的字符串。 relreplident "char" 逻辑解码中解码列的标识: d = 默认 (主键,如果存在)。 n = 无。 f = 所有列。 i = 索引的indisreplident被设置或者为默认。 relfrozenxid64 xid 该表中所有在这个之前的事务ID已经被一个固定的("frozen")事务ID替换。该字段用于跟踪此表是否需要为了防止事务ID重叠(或者允许收缩pg_clog)而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 对于全局临时表,该字段无实际意义。各会话的全局临时表的relfrozenxid64可在pg_catalog.pg_gtt_relstats视图中查看。 relbucket oid 当前表是否包含hash bucket分片。有效的OID指向pg_hashbucket表中记录的具体分片信息。NULL表示不包含hash bucket分片。 relbucketkey int2vector 表示hash分区列信息,NULL表示不包含。 relminmxid xid 该表中所有在这个之前的多事务ID已经被一个事务ID替换。该字段用于跟踪该表是否需要为了防止多事务ID重叠或者允许收缩pg_clog而进行清理。如果该关系不是表则为零(InvalidTransactionId)。 表2 权限的参数说明 参数 参数说明 r SELECT(读) w UPDATE(写) a INSERT(插入) d DELETE D TRUNCATE x REFERENCES t TRIGGER X EXECUTE U USAGE C CREATE c CONNECT T TEMPORARY A ALTER P DROP m COMMENT i INDEX v VACUUM * 给前面权限的授权选项 父主题: 其他系统表
  • 应用示例 在容灾集群上查看备表回放状态: 1 2 3 4 5 SELECT * FROM pg_fine_dr_info; relid | lastcsn | lastxmin | lastxmax | laststarttime | lastendtime -------+---------+----------+----------+-------------------------------+------------------------------- 21132 | 1251610 | 1251609 | 1251611 | 2023-01-04 20:51:58.375136+08 | 2023-01-04 20:51:58.393986+08 (1 row)
  • 应用示例 查询指定函数的OID。例如,获取函数justify_days的OID为1295。 1 2 3 4 5 SELECT oid FROM pg_proc WHERE proname ='justify_days'; oid ------ 1295 (1 row) 查询指定函数是否为聚集函数。例如,查询justify_days函数为非聚集函数。 1 2 3 4 5 SELECT proisagg FROM pg_proc WHERE proname ='justify_days'; proisagg ---------- f (1 row) 查询指定函数的所有者。例如,查询获取func_add_sql函数的owner为用户u1。 1 2 3 4 5 6 7 8 9 10 11 SELECT proowner FROM pg_proc WHERE proname='func_add_sql'; proowner ---------- 542778 (1 row) SELECT usename FROM pg_user WHERE usesysid = '542778'; usename --------- u1 (1 row)
  • PGXC_GROUP PGXC_GROUP系统表存储节点组信息,在DWS 3.0中,每个逻辑集群节点组称为一个VW,而在存储KV层,每一个VW会和一个vgroup相对应。 表1 PGXC_GROUP字段 名称 类型 描述 group_name name 节点组名称。 in_redistribution "char" 是否需要重分布。 n表示NodeGroup没有再进行重分布。 y表示NodeGroup是重分布过程中的源节点组。 t表示NodeGroup是重分布过程中的目的节点组。 group_members oidvector_extend 节点组的DN节点OID列表。 group_buckets text 分布数据桶的集合。 is_installation boolean 是否是安装节点组。 group_acl aclitem[] 访问权限。 group_kind "char" 节点组类型。 i表示安装节点组,包含所有DN节点。 n表示普通非逻辑集群节点组。 v表示逻辑集群节点组。 e表示弹性集群节点组 r表示复制表节点组,只能用于创建复制表,可以包含一个或多个逻辑集群节点组。 group_ckpt_csn xid 节点组最近一次执行增量抽取的CSN。 vgroup_id xid 节点组对应vgroup的ID标识。 vgroup_bucket_count oid 节点组对应vgroup的桶数目。 group_ckpt_time timestamp with time zone 节点组最近一次执行增量抽取的物理时间。 apply_kv_duration integer 节点组最近一次执行增量抽取中增量扫描耗时(单位为秒)。 ckpt_duration integer 节点组最近一次执行增量抽取中checkpoint耗时(单位为秒)。 group_flags integer 节点组标志,当前仅第一个标志位有效,其他标志位当前版本未使用。 标志位1:为1表示节点组是只读逻辑集群,为0表示节点组是读写逻辑集群。 父主题: 系统表
  • 系统表和系统视图概述 系统表是 GaussDB 存放结构元数据的地方,它是 GaussDB数据库 系统运行控制信息的来源,是数据库系统的核心组成部分。 系统视图提供了查询系统表和访问数据库内部状态的方法。 系统表和系统视图要么只对管理员可见,要么对所有用户可见。下面的系统表和视图有些标识了需要管理员权限,这些系统表和视图只有管理员可以查询。 用户可以删除后重新创建这些表、增加列、插入和更新数值,但是用户修改系统表会导致系统信息的不一致,从而导致系统控制紊乱。正常情况下不应该由用户手工修改系统表或系统视图,或者手工重命名系统表或系统视图所在的模式,而是由SQL语句关联的系统表操作自动维护系统表信息。 不建议用户修改系统表和系统视图的权限。 用户应该禁止对系统表进行增删改等操作,人为对系统表的修改或破坏可能会导致系统各种异常情况甚至数据库不可用。 系统表和系统视图中的字段类型详见数据类型章节介绍。 对于ADM类视图,由于访问到的对象是数据库下所有的该类型的对象,考虑对ADM类视图进行统一权限管理,默认只有系统管理员有权限访问该类型视图,部分ADM类的视图数据来自基表中公开、非敏感的字段;对于DB类视图,查询到的是数据库内当前用户有权限访问的对象,普通用户即可访问该类视图;对于MY类视图,查询到的是当前用户所属的对象,普通用户即可访问该类视图。 父主题: 系统表和系统视图
  • PG_DIRECTORY PG_DIRECTORY系统表用于保存用户添加的directory对象,可以通过CREATE DIRECTORY语句向该表中添加记录,当enable_access_server_directory=off时,只允许初始用户创建directory对象;当enable_access_server_directory=on时,具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建directory对象。普通用户需要授权才能访问该表。 表1 PG_DIRECTORY字段 名称 类型 描述 oid oid 行标识符(隐含属性,必须明确选择)。 dirname name 目录对象的名称。 owner oid 目录对象的所有者。 dirpath text 目录路径。 diracl aclitem[] 访问权限。 父主题: 其他系统表