云服务器内容精选

  • 示例 使用PGXC_LWLOCKS视图查询当前集群中所有实例正在持有的或等待的轻量级锁信息: 1 2 3 4 5 6 7 8 SELECT * FROM pgxc_lwlocks; nodename | pid | query_id | lwtid | reqlockid | reqlock | heldlocknums | heldlockid | heldlock | heldlockmode -----------+-----------------+-------------------+-------+-----------+---------+--------------+------------+--------------------+-------------- datanode1 | 139810224193360 | 78250043525924188 | 54844 | | | 1 | 76390 | BUFFER_POOL_LWLOCK | Shared datanode1 | 139810224198200 | 78250043525924886 | 54922 | | | 1 | 957438 | PGPROC_LWLOCK | Exclusive datanode2 | 140262654050288 | 0 | 54832 | | | 1 | 7 | WALWriteLock | Exclusive datanode2 | 140262654052488 | 78250043525923195 | 54847 | | | 1 | 15862 | BUFFER_POOL_LWLOCK | Shared (4 rows)
  • 示例 使用PG_LWLOCKS视图查询当前实例正在持有的或等待的轻量级锁信息: 1 2 3 4 5 6 SELECT * FROM pg_lwlocks; pid | query_id | lwtid | reqlockid | reqlock | heldlocknums | heldlockid | heldlock | heldlockmode -----------------+-------------------+-------+-----------+---------+--------------+------------+--------------------+-------------- 139810224192480 | 0 | 54842 | | | 1 | 7 | WALWriteLock | Exclusive 139810224199520 | 78250043526306022 | 54963 | | | 1 | 193860 | BUFFER_POOL_LWLOCK | Exclusive (2 rows)
  • GS_QUERY_RESOURCE_INFO GS_QUERY_RESOURCE_INFO视图显示当前DN节点所有正在运行作业的资源信息。该参数仅9.1.0及以上集群版本支持。 该视图只能在DN节点上查询。仅适用于运维操作定位问题,不建议用户使用。 表1 GS_QUERY_RESOURCE_INFO 名称 类型 描述 node_name text 实例名称,只包含DN。 user_id oid 用户ID。 queryid bigint 语句执行使用的内部query id。 used_mem int 语句在当前DN使用的内存大小,单位MB。 cpu_time bigint 语句在当前DN上的CPU时间,单位ms。 used_cpu double 语句在当前DN使用的CPU个数。 spill_size bigint 若发生下盘,语句在当前DN下盘数据量,默认为0。单位MB。 read_bytes bigint 语句在当前DN使用的逻辑读字节数,单位KB。 write_bytes bigint 语句在当前DN使用的逻辑写字节数,单位KB。 read_count bigint 语句在当前DN使用的逻辑读次数。 write_count bigint 语句在当前DN使用的逻辑写次数。 read_speed int 语句在当前DN使用的逻辑读速率,单位KB/s。 write_speed int 语句在当前DN使用的逻辑写速率,单位KB/s。 curr_iops int 语句在当前DN上的每秒IO数值(列存单位是次/s,行存单位是万次/s)。 send_pkg bigint 语句在当前DN上的通信包发送总量,单位packages。 recv_pkg bigint 语句在当前DN上的通信包接收总量,单位packages。 send_bytes bigint 语句在当前DN上的通信流发送数据总量,单位Byte。 recv_bytes bigint 语句在当前DN上的通信流接收数据总量,单位Byte。 send_speed int 语句在当前DN使用的网络发送速率,单位KB/s。 recv_speed int 语句在当前DN使用的网络接收速率,单位KB/s。 父主题: 系统视图
  • PG_RELFILENODE_SIZE PG_RELFILENODE_SIZE系统表存储文件级空间统计信息,表中的每一条记录则对应磁盘上相应的物理文件和该文件的文件大小。 表1 PG_RELFILENODE_SIZE字段 名称 类型 描述 databaseid oid 物理文件所属database对应的OID。如果是跨库共享系统表,该值为0。 tablespaceid oid 物理文件所属表空间对应的OID。 relfilenode oid 物理文件的物理文件编号。 backendid integer 创建物理文件的后台线程号,通常为-1。 type integer 物理文件的文件类型。 0为数据类型。 1为FSM文件类型。 2为VM文件类型。 3为BCM文件类型。 大于4为列存表对应列的数据文件和BCM文件大小之和。 filesize bigint 物理文件的文件大小,单位Byte。 父主题: 系统表
  • PG_BLOCKLISTS PG_BLOCKLISTS系统表记录了查询过滤规则相关信息。该系统表仅9.1.0.100及以上集群版本支持。 表1 PG_BLOCKLISTS字段 名称 类型 描述 block_name name 查询过滤规则名称。 role oid 查询过滤规则绑定的用户OID。 client_addr inet 查询过滤规则绑定的客户端IP地址。 application_name name 查询过滤规则绑定的客户端名称。 unique_sql_id int8 查询过滤规则匹配的unique_sql_id。 sql_hash name 查询过滤规则匹配的sql_hash。 block_type int4 查询过滤规则绑定的语句类型,分别对应SELECT/UPDATE/INSERT/DELETE/MERGE。 partition_num int4 计划预估扫描节点扫描的最大分区数。 table_num int4 计划预估扫描的最大表数。 estimate_row int4 计划预估扫描节点扫描的最大行数。 query_band text 主动标识的作业类型。 sql text 查询过滤规则匹配的SQL语句。 created_time timestamp with time zone 查询过滤规则创建或者修改的时间戳。 resource_pool name 查询过滤规则拦截到语句所切换到的指定资源池名称。该字段仅9.1.0.200及以上集群版本支持。 max_active_num integer 查询过滤规则拦截到语句的最大并发数。低于该数值时正常执行,大于等于该数值时会报错拦截。 该字段仅9.1.0.200及以上集群版本支持。 is_warning boolean 控制查询过滤规则拦截到语句时的行为。 false表示拦截到语句时报错。默认值为false。 true表示拦截到语句时产生告警信息。 该字段仅9.1.0.200及以上集群版本支持。 父主题: 系统表
  • GS_BLOCKLIST_SQL GS_BLOCKLIST_SQL视图用于查询作业黑名单信息和异常信息,此视图是由系统表GS_BLOCKLIST_SQL和GS_WLM_SESSION_INFO关联所得,同时对查询结果进行了去重筛选,因此在GS_WLM_SESSION_INFO表较大的情况下,查询可能需要消耗较长时间。 该视图仅9.1.0.200及以上集群版本支持。 GS_BLOCKLIST_SQL视图存储的schema为pg_catalog。 GS_BLOCKLIST_SQL视图仅支持在postgres数据库中查询,其它数据库中查询会直接报错。 通常对于DML语句,在计算sql_hash的过程中会忽略常量值。但对于DDL、DCL以及设置参数等语句,常量值不可以忽略。因此一个sql_hash可能会对应一个或多个查询。 表1 GS_BLOCKLIST_QUERY视图字段 名字 类型 引用 描述 sql_hash text - 基于查询解析树生成的sql_hash。 block_list boolean - 查询作业是否属于黑名单。 except_num integer - 查询作业异常次数。 except_time timestamp - 查询作业最近一次异常时间。 query text - 执行的查询语句。 父主题: 系统视图
  • GS_BLOCKLIST_SQL GS_BLOCKLIST_SQL系统表存储作业黑名单信息和异常信息,该表以sql_hash作为唯一索引,进行作业异常信息统计和黑名单记录,可通过与GS_WLM_SESSION_INFO进行关联获取作业的query字段和执行信息。 GaussDB (DWS)同时提供了GS_BLOCKLIST_SQL视图用于查询作业黑名单和异常信息,该视图可直接显示query字段信息,不过因为该视图与GS_WLM_SESSION_INFO为依赖关系,因此在GS_WLM_SESSION_INFO表较大的情况下,查询可能需要消耗较长的时间。 该系统表仅9.1.0.200及以上集群版本支持。 GS_BLOCKLIST_SQL系统表的schema为dbms_om。 GS_BLOCKLIST_SQL系统表仅限在postgres数据库中查询,其它数据库中查询会直接报错。 GS_BLOCKLIST_SQL系统表包含唯一索引,使用哈希分布方式分布在DN上,分布列为sql_hash。 通常对于DML语句,在计算sql_hash的过程中会忽略常量值。但对于DDL、DCL以及设置参数等语句,常量值不可以忽略。因此一个sql_hash可能会对应一个或多个查询。 表1 GS_BLOCKLIST_SQL字段 名字 类型 引用 描述 sql_hash text - 基于查询解析树生成的sql_hash。 block_list boolean - 查询作业是否属于黑名单。 except_num integer - 查询作业异常次数。 except_time timestamp - 查询作业最近一次异常时间。 父主题: 系统表
  • 操作步骤 参见创建GaussDB(DWS)存算分离集群,集群创建后默认会转换成逻辑集群v3_logical。 通过节点扩容方式增加3个节点到弹性集群,再添加逻辑集群lc2。 创建用户u1,并关联逻辑集群v3_logical。 1 CREATE USER u1 with SYSADMIN NODE GROUP "v3_logical" password "Password@123"; 创建用户u2,并关联逻辑集群lc2。 1 CREATE USER u2 with SYSADMIN NODE GROUP "lc2" password "Password@123"; 以u1登录数据库,创建表t1和t2,并插入测试数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CREATE TABLE public.t1 ( id integer not null, data integer, age integer ) WITH (ORIENTATION =COLUMN, COLVERSION =3.0) DISTRIBUTE BY ROUNDROBIN; CREATE TABLE public.t2 ( id integer not null, data integer, age integer ) WITH (ORIENTATION = COLUMN, COLVERSION =3.0) DISTRIBUTE BY ROUNDROBIN; INSERT INTO public.t1 VALUES (1,2,10),(2,3,11); INSERT INTO public.t2 VALUES (1,2,10),(2,3,11); 以u2登录数据库,执行以下命令查询t1和写入数据。 从结果可得出,实现用户u2跨逻辑集群进行查询和写入数据的能力。 1 2 SELECT * FROM t1; INSERT INTO t1 SELECT * FROM t2;
  • 示例 使用语句SELECT * FROM pgxc_obs_io_scheduler_periodic_stats查询视图内容,结果示例: SELECT * FROM pgxc_obs_io_scheduler_periodic_stats; node_name | io_type | recent_throttled_req_num | total_throttled_req_num | last_throttled_dur(s) | waiting_req_num | mean_tps | mean_req_size(KB) | mean_req_latency(ms) | max_req_latency(ms) | mean_bps(KB/s) | duration(s) --------------+---------+--------------------------+-------------------------+-----------------------+-----------------+----------+-------------------+----------------------+---------------------+----------------+------------- dn_6001_6002 | S | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 155 dn_6001_6002 | R | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 155 dn_6001_6002 | W | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 155 cn_5001 | S | 0 | 0 | 0 | 0 | .03 | 0 | 207 | 519 | 0 | 155 cn_5001 | R | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 155 cn_5001 | W | 0 | 0 | 0 | 0 | .01 | 0 | 288 | 288 | 0 | 155 (6 rows) 如果需要显示“mean_tps”数值中小数点前的0,需要在behavior_compat_options参数中设置display_leading_zero(浮点数显示配置项)。 再执行查询视图语句“select * from pgxc_obs_io_scheduler_periodic_stats;” 显示结果如下: SELECT * FROM pgxc_obs_io_scheduler_periodic_stats; node_name | io_type | recent_throttled_req_num | total_throttled_req_num | last_throttled_dur(s) | waiting_req_num | mean_tps | mean_req_size(KB) | mean_req_latency(ms) | max_req_latency(ms) | mean_bps(KB/s) | duration(s) --------------+---------+--------------------------+-------------------------+-----------------------+-----------------+----------+-------------------+----------------------+---------------------+----------------+------------- dn_6001_6002 | S | 0 | 0 | 0 | 0 | 0.36 | 0 | 132 | 326 | 0 | 177 dn_6001_6002 | R | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 177 dn_6001_6002 | W | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 177 cn_5001 | S | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 177 cn_5001 | R | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 177 cn_5001 | W | 0 | 0 | 0 | 0 | 0.00 | 0 | 0 | 0 | 0 | 177
  • 示例 查询OBS IO Scheduler在每个节点读请求相关的统计信息。 SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name; node_name | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+----------------- dn_6001_6002 | r | 26990 | 26990 | 0 | 215 | 18 | 16 | 12 | 10 dn_6003_6004 | r | 21475 | 21475 | 10 | 190 | 30 | 30 | 20 | 20 dn_6005_6006 | r | 12384 | 12384 | 36 | 133 | 30 | 27 | 20 | 17 查询结果显示,这是当前IO Scheduler在进行读取IO操作时的某个时刻统计信息的快照(snapshot),此时带宽处于上升阶段,current_bps与best_bps相等。以dn_6003_6004为例,可以观察到该DN当前队列中存在排队的请求,total_token_num与available_token_num相等,说明查询视图的时刻IO Scheduler还未开始处理这些请求。 等待一段时间后,再次发起查询。 SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name; node_name | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+----------------- dn_6001_6002 | r | 13228 | 26990 | 0 | 609 | 18 | 18 | 12 | 12 dn_6003_6004 | r | 15717 | 21475 | 0 | 622 | 30 | 30 | 20 | 20 dn_6005_6006 | r | 18041 | 21767 | 0 | 609 | 30 | 30 | 20 | 20 此时队列中已经没有了排队的请求,且available_token_num等于total_token_num,说明IO Scheduler已经处理完所有请求,且没有新的请求需要被处理;但观察到current_bps不为零,是因为统计bps的周期为3秒,此时显示的是3秒前的结果。 短暂间隔后再次查询结果如下,current_bps会更新为0。 SELECT * FROM pgxc_obs_io_scheduler_stats WHERE io_type = 'r' ORDER BY node_name; node_name | io_type | current_bps | best_bps | waiting_request_num | mean_request_size | total_token_num | available_token_num | total_worker_num | idle_worker_num --------------+---------+-------------+----------+---------------------+-------------------+-----------------+---------------------+------------------+----------------- dn_6001_6002 | r | 0 | 26990 | 0 | 609 | 18 | 18 | 12 | 12 dn_6003_6004 | r | 0 | 21475 | 0 | 622 | 30 | 30 | 20 | 20 dn_6005_6006 | r | 0 | 21767 | 0 | 609 | 30 | 30 | 20 | 20
  • 示例 查询文件缓存所使用的硬盘的信息: 1 2 3 4 5 6 7 8 9 SELECT * FROM pgxc_disk_cache_path_info order by 1; path_name | node_name | cache_size | disk_available | disk_size | disk_use_ratio ----------------+--------------+------------+----------------+--------------+------------------ dn_6001_6002_0 | dn_6001_6002 | 19619 | 137401716736 | 160982630400 | .146481105479564 dn_6001_6002_1 | dn_6001_6002 | 35968 | 137401716736 | 160982630400 | .146481105479564 dn_6003_6004_0 | dn_6003_6004 | 27794 | 121600655360 | 160982630400 | .244634933235629 dn_6003_6004_1 | dn_6003_6004 | 26158 | 121600655360 | 160982630400 | .244634933235629 dn_6005_6006_0 | dn_6005_6006 | 24533 | 134394839040 | 160982630400 | .165159379579873 dn_6005_6006_1 | dn_6005_6006 | 31065 | 134394839040 | 160982630400 | .165159379579873
  • 示例 1 SELECT /*+ dict (bitmaptbl_high (server_ip)) */ distinct(server_ip) FROM bitmaptbl_high WHERE scope_name='saetataetaeta' ORDER BY server_ip; 生成的计划如下,server_ip使用了字典编码: 使用no dict可以禁用server_ip使用字典编码: 1 SELECT /*+ no dict (bitmaptbl_high (server_ip)) */ distinct(server_ip) FROM bitmaptbl_high WHERE scope_name='saetataetaeta' ORDER BY server_ip;
  • GS_OBS_LATENCY GS_OBS_LATENCY记录logtime之前10分钟内OBS的平均延迟信息,延迟数据是根据相关OBS的操作进行估算的结果。该视图仅8.2.0及以上集群版本支持。 表1 GS_OBS_LATENCY字段 名称 类型 描述 nodename text 集群节点。 hostname text 主机节点。 latency_ms double precision logtime之前10分钟内OBS的平均延迟,单位ms。 reqcount bigint logtime之前10分钟内OBS的请求次数。 logtime timestamp with time zone 记录延迟信息的时刻。 父主题: 系统视图
  • GS_BLOCKLIST_QUERY GS_BLOCKLIST_QUERY视图用于查询作业黑名单信息和异常信息,此视图是由系统表GS_BLOCKLIST_QUERY和GS_WLM_SESSION_INFO关联所得,同时对查询结果进行了去重筛选,因此在GS_WLM_SESSION_INFO表较大的情况下,查询可能需要消耗较长时间。 GS_BLOCKLIST_QUERY视图的schema为pg_catalog。 GS_BLOCKLIST_QUERY视图仅支持在postgres数据库中查询,其它数据库中查询会直接报错。 通常对于DML语句,在计算Unique SQL ID的过程中会忽略常量值。但对于DDL、DCL以及设置参数等语句,常量值不可以忽略。因此一个unique_sql_id可能会对应一个或多个查询。 表1 GS_BLOCKLIST_QUERY视图字段 名字 类型 引用 描述 unique_sql_id bigint - 基于查询解析树生成的查询ID。 block_list boolean - 查询作业是否属于黑名单。 except_num integer - 查询作业异常次数。 except_time timestamp - 查询作业最近一次异常时间。 query text - 执行的查询语句。 父主题: 系统视图
  • PG_EXCEPT_RULE PG_EXCEPT_RULE系统表存储关于异常规则的信息。一个异常规则集合由多个名称相同的异常规则组成。 表1 PG_EXCEPT_RULE 名称 类型 描述 name name 异常规则集合的名称。 rule name 该异常规则集中某一个具体规则类型或者触发当前异常规则集时采取的操作。(如blocktime/elapsedtime/spillsize等类型或者触发异常规则后的操作) value name 该异常规则对应的规则阈值。如果是触发异常规则后的操作,那么该字段为abort。 父主题: 系统表