更新时间:2024-11-27 GMT+08:00

其它函数

pgxc_pool_check()

描述:检查连接池中缓存的连接数据是否与pgxc_node一致。

返回值类型:boolean

示例:

1
2
3
4
5
SELECT pgxc_pool_check();
 pgxc_pool_check
-----------------
 t
(1 row)

pgxc_pool_reload()

描述:更新连接池中缓存的连接信息。

返回值类型:boolean

示例:

1
2
3
4
5
SELECT pgxc_pool_reload();
 pgxc_pool_reload
------------------
 t
(1 row)

pg_pool_validate(clear boolean, co_node_name cstring)

描述:清理CN上无效的后台线程(这些后台线程持有无效的pooler连接,这里无效的pooler连接指的是连接到当前DN备实例的连接)。

返回值类型:record

pg_nodes_memory()

描述:查看所有节点的内存占用。

返回值类型:record

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT * FROM pg_nodes_memory();
      node_name       | used_memory |        shared_buffer_cache         |      top_context_memory
----------------------+-------------+------------------------------------+------------------------------
 dn_6003_6004         | 353 MB      | 108 MB(Utilization: 512 MB/21.00%) | PgStat BackendStatus(101 MB)
                      |             |                                    | TopMemoryContext(59 MB)
                      |             |                                    | gs_signal(56 MB)
 dn_6005_6006         | 353 MB      | 202 MB(Utilization: 512 MB/39.00%) | PgStat BackendStatus(101 MB)
                      |             |                                    | TopMemoryContext(59 MB)
                      |             |                                    | gs_signal(56 MB)
 dn_6001_6002         | 351 MB      | 201 MB(Utilization: 512 MB/39.00%) | PgStat BackendStatus(101 MB)
                      |             |                                    | TopMemoryContext(58 MB)
                      |             |                                    | gs_signal(56 MB)
 cn_5001              | 79 MB       | 48 MB(Utilization: 256 MB/19.00%)  | CacheMemoryContext(22 MB)
                      |             |                                    | PgStat BackendStatus(19 MB)
                      |             |                                    | gs_signal(16 MB)
 cn_5002              | 77 MB       | 95 MB(Utilization: 256 MB/37.00%)  | CacheMemoryContext(21 MB)
                      |             |                                    | PgStat BackendStatus(19 MB)
                      |             |                                    | gs_signal(16 MB)
 cn_5003              | 67 MB       | 50 MB(Utilization: 256 MB/19.00%)  | CacheMemoryContext(26 MB)
                      |             |                                    | gs_signal(16 MB)
                      |             |                                    | TopMemoryContext(9732 KB)
(18 rows)

plan_seed()

描述:获取前一次查询语句的seed值(内部使用)。

返回值类型:integer

示例:

1
2
3
4
5
SELECT plan_seed();
 plan_seed
-----------
         0
(1 row)

pg_stat_get_env()

描述:提供获取当前节点的环境变量信息。

返回值类型:record

示例:

1
2
3
4
5
SELECT * FROM  pg_stat_get_env();
 node_name |   host    | process | port |   installpath    |        datapath        |            log_directory
-----------+-----------+---------+------+------------------+------------------------+--------------------------------------
 cn_5003   | localhost |   28811 | 8000 | /DWS/manager/app | /DWS/data1/coordinator | /DWS/manager/log/Ruby/pg_log/cn_5003
(1 row)

pg_stat_get_thread()

描述:提供当前节点下所有线程的状态信息。

返回值类型:record

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SELECT * FROM pg_stat_get_thread();
 node_name |       pid       |  lwpid  |    thread_name     |         creation_time
-----------+-----------------+---------+--------------------+-------------------------------
 cn_5003   | 281471515199536 |   28930 | JobScheduler       | 2023-01-04 07:03:16.086885+00
 cn_5003   | 281471498418224 |   28931 | StatCollector      | 2000-01-01 00:00:00+00
 cn_5003   | 281471464855600 |   28933 | WDRSnapshot        | 2023-01-04 07:03:16.086775+00
 cn_5003   | 281471380949040 |   28938 | WorkloadMonitor    | 2023-01-04 07:03:16.074454+00
 cn_5003   | 281471414511664 |   28936 | workload           | 2023-01-04 07:03:16.075457+00
 cn_5003   | 281471364167728 |   28939 | WLMArbiter         | 2023-01-04 07:03:16.076753+00
 cn_5003   | 281471397730352 |   28937 | CalculateSpaceInfo | 2023-01-04 07:03:16.078981+00
 cn_5003   | 281470777964592 | 1933534 | wlm                | 2023-01-13 08:01:32.350808+00
 cn_5003   | 281470889130032 | 1786064 | cn_5002            | 2023-01-13 07:01:50.173568+00
 cn_5003   | 281471299672112 |   29006 | cm_agent           | 2023-01-04 07:03:18.03415+00
 cn_5003   | 281471222065200 |   29970 | cn_5002            | 2023-01-04 07:03:39.694702+00
 cn_5003   | 281471238846512 | 1897367 | cn_5002            | 2023-01-04 20:01:40.611019+00
 cn_5003   | 281470905911344 |   30053 | cn_5002            | 2023-01-04 07:03:44.065774+00
 cn_5003   | 281470410537008 | 1933902 | cn_5002            | 2023-01-13 08:01:38.972574+00
 cn_5003   | 281470872348720 | 1880248 | cn_5001            | 2023-01-13 07:39:24.231418+00
 cn_5003   | 281471316453424 | 1883059 | cn_5001            | 2023-01-13 07:40:16.885667+00
 cn_5003   | 281470845081648 | 1305053 | cn_5001            | 2023-01-13 03:40:17.366784+00
 cn_5003   | 281470700357680 | 1500466 | wlm                | 2023-01-13 05:02:05.714544+00
 cn_5003   | 281470473455664 | 1883060 | cn_5001            | 2023-01-13 07:40:16.885963+00
 cn_5003   | 281470717138992 |   32065 | cm_agent           | 2023-01-04 07:04:23.906691+00
 cn_5003   | 281470807328816 | 1977925 | gsql               | 2023-01-13 08:20:04.509437+00
 cn_5003   | 281470683576368 | 1835242 | cn_5001            | 2023-01-13 07:20:16.549546+00
 cn_5003   | 281471584946224 |   28927 | Background writer  | 2023-01-04 07:03:16.065631+00
 cn_5003   | 281471633184816 |   28926 | CheckPointer       | 2023-01-04 07:03:16.065872+00
 cn_5003   | 281471548762160 |   28928 | Wal Writer         | 2023-01-04 07:03:16.066366+00
 cn_5003   | 281471448074288 |   28934 | TwoPhase Cleaner   | 2023-01-04 07:03:16.071172+00
 cn_5003   | 281471431292976 |   28935 | LWLock Monitor     | 2023-01-04 07:03:16.072897+00
 cn_5003   | 281470666795056 | 1210459 | CBM Writer         | 2023-01-04 15:16:05.543143+00
(28 rows)

pgxc_get_os_threads()

描述:提供当前集群中所有正常节点下的线程状态信息。

返回值类型:record

pg_stat_get_sql_count()

描述:提供当前节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数和响应时间的统计结果以及DDL、DML、DCL语句的计数结果。

返回值类型:record

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
SELECT * FROM pg_stat_get_sql_count();
 node_name |       user_name        | select_count | update_count | insert_count | delete_count | mergeinto_count | ddl_count | dml_count | dcl_count | total_select_elapse | avg_select_elapse | max_select_el
apse | min_select_elapse | total_update_elapse | avg_update_elapse | max_update_elapse | min_update_elapse | total_insert_elapse | avg_insert_elapse | max_insert_elapse | min_insert_elapse | total_delete_ela
pse | avg_delete_elapse | max_delete_elapse | min_delete_elapse
-----------+------------------------+--------------+--------------+--------------+--------------+-----------------+-----------+-----------+-----------+---------------------+-------------------+--------------
-----+-------------------+---------------------+-------------------+-------------------+-------------------+---------------------+-------------------+-------------------+-------------------+-----------------
----+-------------------+-------------------+-------------------
 cn_5003   | gs_role_read_all_stats |            0 |            0 |            0 |            0 |               0 |         0 |         0 |         0 |                   0 |                 0 |
   0 |                 0 |                   0 |                 0 |                 0 |                 0 |                   0 |                 0 |                 0 |                 0 |
  0 |                 0 |                 0 |                 0
 cn_5003   | gs_role_signal_backend |            0 |            0 |            0 |            0 |               0 |         0 |         0 |         0 |                   0 |                 0 |
   0 |                 0 |                   0 |                 0 |                 0 |                 0 |                   0 |                 0 |                 0 |                 0 |
  0 |                 0 |                 0 |                 0
 cn_5003   | gs_role_analyze_any    |            0 |            0 |            0 |            0 |               0 |         0 |         0 |         0 |                   0 |                 0 |
   0 |                 0 |                   0 |                 0 |                 0 |                 0 |                   0 |                 0 |                 0 |                 0 |
  0 |                 0 |                 0 |                 0
 cn_5003   | gs_role_vacuum_any     |            0 |            0 |            0 |            0 |               0 |         0 |         0 |         0 |                   0 |                 0 |
   0 |                 0 |                   0 |                 0 |                 0 |                 0 |                   0 |                 0 |                 0 |                 0 |
  0 |                 0 |                 0 |                 0
 cn_5003   | dbadmin                |          641 |            0 |            3 |            0 |               0 |        18 |       651 |         5 |            19236129 |             30009 |           814
0206 |               357 |                   0 |                 0 |                 0 |                 0 |               70595 |             23531 |             62102 |              2750 |
  0 |                 0 |                 0 |                 0
 cn_5003   | Ruby                   |      2078187 |         3263 |        22841 |            0 |               0 |     10436 |   2242517 |     16979 |          3753441293 |              1806 |            52
6891 |               191 |            67483165 |             20681 |             38076 |             15444 |           291598980 |             12766 |             35376 |              3791 |
  0 |                 0 |                 0 |                 0
 cn_5003   | joe                    |            0 |            0 |            0 |            0 |               0 |         0 |         0 |         0 |                   0 |                 0 |
   0 |                 0 |                   0 |                 0 |                 0 |                 0 |                   0 |                 0 |                 0 |                 0 |
  0 |                 0 |                 0 |                 0
 cn_5003   | sea                    |          192 |            0 |            5 |            3 |               0 |         3 |       205 |         0 |             2561878 |             13343 |            68
1866 |               388 |                   0 |                 0 |                 0 |                 0 |               11349 |              2269 |              3241 |              1521 |               19
255 |              6418 |             10656 |              2798
 cn_5003   | jj                     |            0 |            0 |            0 |            0 |               0 |         0 |         0 |         0 |                   0 |                 0 |
   0 |                 0 |                   0 |                 0 |                 0 |                 0 |                   0 |                 0 |                 0 |                 0 |
  0 |                 0 |                 0 |                 0
 cn_5003   | u1                     |            2 |            0 |            2 |            0 |               0 |         1 |         4 |         0 |                3712 |              1856 |
2407 |              1305 |                   0 |                 0 |                 0 |                 0 |                5366 |              2683 |              3359 |              2007 |
  0 |                 0 |                 0 |                 0
(10 rows)

pgxc_get_sql_count()

描述:提供当前集群所有节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数和响应时间的统计结果以及DDL、DML、DCL语句的计数结果。

返回值类型:record

pgxc_get_workload_sql_count()

描述:提供当前集群所有CN上所有Workload控制组内执行的SELECT/UPDATE/INSERT/DELETE语句的计数统计结果以及DDL、DML、DCL类型语句的计数统计结果。

返回值类型:record

示例:

1
2
3
4
5
6
7
SELECT * FROM pgxc_get_workload_sql_count();
 node_name |   workload   | select_count | update_count | insert_count | delete_count | ddl_count | dml_count | dcl_count
-----------+--------------+--------------+--------------+--------------+--------------+-----------+-----------+-----------
 cn_5003   | default_pool |      2079352 |         3264 |        22858 |            3 |     10460 |   2243738 |     16988
 cn_5001   | default_pool |      2201345 |            9 |            0 |            0 |     10474 |   2359633 |     10465
 cn_5002   | default_pool |      3784696 |            0 |       103106 |          136 |     10438 |   4039090 |     10498
(3 rows)

pgxc_get_workload_sql_elapse_time()

描述:提供当前集群所有CN上所有Workload控制组内执行的SELECT/UPDATE/INSERT/DELETE语句的响应时间统计结果。

返回值类型:record

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
SELECT * FROM pgxc_get_workload_sql_elapse_time();
 node_name |   workload   | total_select_elapse | max_select_elapse | min_select_elapse | avg_select_elapse | total_update_elapse | max_update_elapse | min_update_elapse | avg_update_elapse | total_insert_el
apse | max_insert_elapse | min_insert_elapse | avg_insert_elapse | total_delete_elapse | max_delete_elapse | min_delete_elapse | avg_delete_elapse
-----------+--------------+---------------------+-------------------+-------------------+-------------------+---------------------+-------------------+-------------------+-------------------+----------------
-----+-------------------+-------------------+-------------------+---------------------+-------------------+-------------------+-------------------
 cn_5003   | default_pool |          3776420502 |           8140206 |                 0 |              1816 |            67505332 |             38076 |                 0 |             20682 |           29178
9830 |             62102 |                 0 |             12765 |               19255 |             10656 |                 0 |              6418
 cn_5001   | default_pool |          8599339496 |           3390159 |                 0 |              3906 |               52789 |             18207 |                 0 |              5865 |
   0 |                 0 |                 0 |                 0 |                   0 |                 0 |                 0 |                 0
 cn_5002   | default_pool |         40483096221 |           2178781 |                 0 |             10695 |                   0 |                 0 |                 0 |                 0 |        13310238
8148 |           2398854 |                 0 |           1290752 |             2072031 |             52877 |                 0 |             15236
(3 rows)

get_instr_unique_sql()

描述:提供当前节点中收集的Unique SQL的信息。如果是CN节点,将返回该CN上收集的Unique SQL的完整信息,即会收集其他CN和DN上对应Unique SQL的信息并进行汇总展示;如果是DN节点,将返回本DN节点上的Unique SQL信息。详见视图GS_INSTR_UNIQUE_SQL。

返回值类型:record

reset_instr_unique_sql(cstring, cstring, INT8)

描述:清理已收集的Unique SQL信息。输入参数含义如下:

  • GLOBAL/LOCAL:清理范围为所有节点或当前节点。
  • ALL/BY_USERID/BY_CNID/BY_GUC:ALL表示清理所有,BY_USERID/BY_CNID表示按照USERID或CNID进行清理,BY_GUC表示清理操作是由GUC参数instr_unique_sql_count设置值变小引起的。
  • 第三个参数值对应第二个参数设置,ALL/BY_GUC的情况下该值无意义。

返回值类型:bool

pgxc_get_instr_unique_sql()

描述:提供集群中所有CN上收集的Unique SQL的完整信息。该函数只能在CN上执行。

返回值类型:record

get_instr_unique_sql_remote_cns()

描述:提供集群中除正在执行此函数的CN之外的所有CN上收集的Unique SQL的完整信息。该函数只能在CN上执行。

返回值类型:record

pgxc_get_node_env()

描述:提供获取集群中所有节点的环境变量信息。

返回值类型:record

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
SELECT * FROM pgxc_get_node_env();
  node_name   |     host      | process | port  |   installpath    |         datapath          |            log_directory
--------------+---------------+---------+-------+------------------+---------------------------+--------------------------------------
 dn_6001_6002 | 172.16.102.5  |   24443 | 40000 | /DWS/manager/app | /DWS/data1/h0dn1/primary0 | /DWS/manager/log/Ruby/pg_log/dn_6001
 dn_6003_6004 | 172.16.70.17  |   21823 | 40000 | /DWS/manager/app | /DWS/data1/h1dn1/primary0 | /DWS/manager/log/Ruby/pg_log/dn_6003
 dn_6005_6006 | 172.16.120.50 |   22331 | 40000 | /DWS/manager/app | /DWS/data1/h2dn1/primary0 | /DWS/manager/log/Ruby/pg_log/dn_6005
 cn_5003      | localhost     |   28811 |  8000 | /DWS/manager/app | /DWS/data1/coordinator    | /DWS/manager/log/Ruby/pg_log/cn_5003
 cn_5001      | 172.16.102.5  |   30873 |  8000 | /DWS/manager/app | /DWS/data1/coordinator    | /DWS/manager/log/Ruby/pg_log/cn_5001
 cn_5002      | 172.16.70.17  |   29229 |  8000 | /DWS/manager/app | /DWS/data1/coordinator    | /DWS/manager/log/Ruby/pg_log/cn_5002
(6 rows)

pv_compute_pool_workload()

描述:提供云上加速集群当前负载信息。

返回值类型:record

pg_stat_get_status(tid, num_node_display)

描述:查询当前实例中工作线程(backend thread)以及辅助线程(auxiliary thread)的阻塞等待情况,其返回结果的详细含义参见PG_THREAD_WAIT_STATUS视图。输入参数含义如下:

  • tid:表示线程ID,bigint类型。如果为NULL,则返回所有工作线程和辅助线程的等待情况;否则只返回指定ID线程的等待情况。
  • num_node_display:integer类型。对于等待状态为“wait node”的记录,指定其wait_status列中显示的被等待节点的最大数量。
    • 如果为空或者小于等于0,则只显示一个被等待节点。
    • 如果大于20,则最多只显示20个节点。
    • 如果大于0且小于等于20,则显示数量为num_node_display和实际被等待节点数量的最小者。例如查询“SELECT * from pg_stat_get_status(NULL, 10)”,如果实际被等待节点数量大于10,则只随机显示其中10个节点名称,如果实际被等待节点数量小于等于10,则显示全部被等待节点名称。当实际被等待节点数量大于显示数量时,被显示的节点名称为随机挑选。

返回值类型:record

pgxc_get_thread_wait_status(num_node_display)

描述:查询集群各个节点上所有SQL语句产生的线程之间的调用层次关系,以及各个线程的阻塞等待状态。其返回结果的详细含义参见PGXC_THREAD_WAIT_STATUS视图。输入参数num_node_display的类型和含义与上述函数pg_stat_get_status相同。

返回值类型:record

pgxc_os_run_info()

描述:查询集群中各节点上操作系统运行的状态信息。函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PV_OS_RUN_INFO”章节。

返回值类型:record

get_instr_wait_event()

描述:查询当前实例上各类等待状态和事件的统计信息。函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>GS_WAIT_EVENTS”。如果GUC参数enable_track_wait_event为off,则返回0行。

返回值类型:record

pgxc_wait_events()

描述:查询集群中各节点上各类等待状态和事件的统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PGXC_WAIT_EVENTS”视图。如果GUC参数enable_track_wait_event为off,则返回0行。

返回值类型:record

pgxc_stat_bgwriter()

描述:查询集群中各节点上后端写进程活动的统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PG_STAT_BGWRITER”视图。

返回值类型:record

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
SELECT * FROM pgxc_stat_bgwriter();
  node_name   | checkpoints_timed | checkpoints_req | checkpoint_write_time | checkpoint_sync_time | buffers_checkpoint | buffers_clean | maxwritten_clean | buffers_backend | buffers_backend_fsync | buffers_
alloc |      stats_reset
--------------+-------------------+-----------------+-----------------------+----------------------+--------------------+---------------+------------------+-----------------+-----------------------+---------
------+------------------------
 dn_6001_6002 |                 0 |               0 |                     0 |                    0 |                  0 |             0 |                0 |               0 |                     0 |
    0 | 2000-01-01 00:00:00+00
 dn_6003_6004 |                 0 |               0 |                     0 |                    0 |                  0 |             0 |                0 |               0 |                     0 |
    0 | 2000-01-01 00:00:00+00
 dn_6005_6006 |                 0 |               0 |                     0 |                    0 |                  0 |             0 |                0 |               0 |                     0 |
    0 | 2000-01-01 00:00:00+00
 cn_5003      |                 0 |               0 |                     0 |                    0 |                  0 |             0 |                0 |               0 |                     0 |
    0 | 2000-01-01 00:00:00+00
 cn_5001      |                 0 |               0 |                     0 |                    0 |                  0 |             0 |                0 |               0 |                     0 |
    0 | 2000-01-01 00:00:00+00
 cn_5002      |                 0 |               0 |                     0 |                    0 |                  0 |             0 |                0 |               0 |                     0 |
    0 | 2000-01-01 00:00:00+00
(6 rows)

pgxc_stat_replication()

描述:查询集群中各节点上日志同步的状态信息,如发起端发送日志位置,收端接收日志位置等,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PG_STAT_REPLICATION”视图。

返回值类型:record

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
SELECT * FROM pgxc_stat_replication();
  node_name   |       pid       | usesysid | usename |    application_name    |  client_addr  | client_hostname | client_port |         backend_start         |   state   | sender_sent_location | receiver_wri
te_location | receiver_flush_location | receiver_replay_location | sync_priority | sync_state
--------------+-----------------+----------+---------+------------------------+---------------+-----------------+-------------+-------------------------------+-----------+----------------------+-------------
------------+-------------------------+--------------------------+---------------+------------
 dn_6001_6002 | 281469637695536 |       10 | Ruby    | WalSender to Standby   | 172.16.70.17  |                 |       26084 | 2023-01-04 07:01:27.348647+00 | Streaming | 0/4940D6B8           | 0/4940D6B8
            | 0/4940D6B8              | 0/4940D6B8               |             1 | Sync
 dn_6001_6002 | 281469304735792 |       10 | Ruby    | WalSender to Secondary | 172.16.120.50 |                 |       35214 | 2023-01-04 07:01:29.51929+00  | Streaming | 0/4000000            | 0/4000000
            | 0/4000000               | 0/4000000                |             0 | Sync
 dn_6003_6004 | 281469634050096 |       10 | Ruby    | WalSender to Standby   | 172.16.120.50 |                 |       13072 | 2023-01-04 07:01:26.28706+00  | Streaming | 0/493EF000           | 0/493EF000
            | 0/493EF000              | 0/493EF000               |             1 | Sync
 dn_6003_6004 | 281469563295792 |       10 | Ruby    | WalSender to Secondary | 172.16.102.5  |                 |       55068 | 2023-01-04 07:01:29.310595+00 | Streaming | 0/4000000            | 0/4000000
            | 0/4000000               | 0/4000000                |             0 | Sync
 dn_6005_6006 | 281470349690928 |       10 | Ruby    | WalSender to Standby   | 172.16.102.5  |                 |       40376 | 2023-01-04 07:01:26.768434+00 | Streaming | 0/49415A70           | 0/49415A70
            | 0/49415A70              | 0/49415A70               |             1 | Sync
 dn_6005_6006 | 281470010435632 |       10 | Ruby    | WalSender to Secondary | 172.16.70.17  |                 |       33750 | 2023-01-04 07:01:29.499269+00 | Streaming | 0/4000000            | 0/4000000
            | 0/4000000               | 0/4000000                |             0 | Sync
(6 rows)

pgxc_replication_slots()

描述:查询集群中各DN上复制的状态信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PG_REPLICATION_SLOTS”视图。

返回值类型:record

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
SELECT * FROM pgxc_replication_slots();
  node_name   |    slot_name    | plugin | slot_type | datoid | database | active | x_min | catalog_xmin |    restart_lsn    | dummy_standby
--------------+-----------------+--------+-----------+--------+----------+--------+-------+--------------+-------------------+---------------
 dn_6001_6002 | dn_6001_3002    |        | physical  |      0 |          | t      |       |              |                   | t
 dn_6001_6002 | dn_6001_6002    |        | physical  |      0 |          | t      |       |              | 0/49448720        | f
 dn_6001_6002 | gs_roach_common |        | physical  |      0 |          | f      |       |    635143447 | FFFFFFFF/FFFFFFFF | f
 dn_6003_6004 | dn_6003_3003    |        | physical  |      0 |          | t      |       |              |                   | t
 dn_6003_6004 | dn_6003_6004    |        | physical  |      0 |          | t      |       |              | 0/4942B760        | f
 dn_6003_6004 | gs_roach_common |        | physical  |      0 |          | f      |       |    634883623 | FFFFFFFF/FFFFFFFF | f
 dn_6005_6006 | dn_6005_3004    |        | physical  |      0 |          | t      |       |              |                   | t
 dn_6005_6006 | dn_6005_6006    |        | physical  |      0 |          | t      |       |              | 0/4944CE80        | f
 dn_6005_6006 | gs_roach_common |        | physical  |      0 |          | f      |       |    635285455 | FFFFFFFF/FFFFFFFF | f
(9 rows)

pgxc_settings()

描述:查询集群中各节点上运行时参数的相关信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PG_SETTINGS”视图。

返回值类型:record

pgxc_instance_time()

描述:查询集群中各节点的运行时间统计信息及各执行阶段所消耗时间,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PV_INSTANCE_TIME”视图。

返回值类型:record

pg_stat_get_redo_stat()

描述:查询当前节点上的XLOG重做统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PV_REDO_STAT”视图。

返回值类型:record

示例:

1
2
3
4
5
SELECT * FROM pg_stat_get_redo_stat();
 phywrts | phyblkwrt | writetim | avgiotim | lstiotim | miniotim | maxiowtm
---------+-----------+----------+----------+----------+----------+----------
  400171 |    552783 | 11040710 |       27 |       20 |        8 |     7401
(1 row)

pgxc_redo_stat()

描述:查询集群中各节点上的XLOG重做统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PV_REDO_STAT”视图。

返回值类型:record

示例:

SELECT * FROM  pgxc_redo_stat();
  node_name   | phywrts | phyblkwrt | writetim | avgiotim | lstiotim | miniotim | maxiowtm
--------------+---------+-----------+----------+----------+----------+----------+----------
 dn_6001_6002 |  698244 |    836088 | 17608019 |       25 |       15 |        8 |    13115
 dn_6003_6004 |  661128 |    799636 | 16714302 |       25 |       21 |        8 |     8195
 dn_6005_6006 |  698146 |    836178 | 18117951 |       25 |       24 |        8 |     8326
 cn_5003      |  400206 |    552823 | 11041701 |       27 |       18 |        8 |     7401
 cn_5001      |  380931 |    514233 | 10174114 |       26 |       19 |        8 |     7726
 cn_5002      |  551727 |    687991 | 11859292 |       21 |       31 |        8 |    10310
(6 rows)

get_local_rel_iostat()

描述:查询当前实例上磁盘读写的统计信息。函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>GS_REL_IOSTAT”视图。

返回值类型:record

pgxc_rel_iostat()

描述:查询集群中各节点上磁盘读写的统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>GS_REL_IOSTAT”视图。

返回值类型:record

get_node_stat_reset_time()

描述:返回当前实例统计信息被重置的时间。

返回值类型:timestamptz

pgxc_node_stat_reset_time()

描述:查询集群中各节点统计信息被重置的时间,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>GS_NODE_STAT_RESET_TIME”视图。

返回值类型:record

实例正常运行过程中,内存中的各类统计数值会逐渐累加,以下情况会导致内存中的统计数值被重置为0:
  • 实例重启或集群发生了切换;
  • 数据库Database被删除(drop);
  • 用户执行了重置操作,如执行pgstat_recv_resetcounter函数会将数据库中的统计计数器清零,执行reset_instr_unique_sql函数会将Unique SQL数据清零。

如果发生了以上事件,GaussDB(DWS)会记录统计信息被重置的时间,可通过get_node_stat_reset_time函数查询。

pgxc_parallel_query(text, text)

描述:在指定类型的数据实例上执行指定的SQL查询语句,并把查询语句的结果返回给当前CN。该函数8.1.2及以上版本支持。

函数有两个参数:

第一个参数:SQL语句在哪些实例上执行。当前支持的有效入参是 'dn', 'datanode','cn', 'coordinator', 'all', 其它值会导致函数执行报错。其中 'dn', 'datanode'表示在所有DN上执行,'cn', 'coordinator'表示在所有CN上执行, all表示在所有的CN和所有的DN上执行。

第二个参数:需要发往远程节点执行的SQL语句,函数内部会对SQL语句中查询的对象进行校验,不支持用户表、分布式表和自定义的多结果集函数。

返回值类型:record

  • 该函数功能仅为便于开发人员高效的收集集群内实例执行信息或者状态的视图,不建议用户直接使用。
  • 该函数为多结果集函数,返回的数据类型为record,所以需要在函数调用后面增加AS语句显示的指出输出的列名和数据类型,如下所示:
    SELECT * FROM pgxc_parallel_query('all', 'select node_name, db_name, thread_name, query_id, tid, lwtid, ptid, tlevel, smpid, wait_status, wait_event from pg_thread_wait_status') AS (node_name text, db_name text, thread_name text, query_id bigint, tid bigint, lwtid integer , ptid integer, tlevel integer , smpid integer, wait_status text, wait_event text);
  • 函数第二个参数指定的SQL语句输出结果的数据类型必须跟AS后面指明的数据类型一致,否则执行时可能会因为类型不匹配而报错。
  • 函数第二个参数指定的SQL语句中不能触发跨节点的查询动作,否则会触发执行报错。
  • 函数第二个参数指定的SQL语句只能是SELECT/UPDATE/DELETE/INSERT语句中的一种,且
    • 不支持语句中有returning语句。
    • 函数调用用户需具有SQL语句中对象相应的操作权限。
    • 如果是INSERT语句,不支持INSERT OVERWRITE、UPSERT、和INSERT INTO。
    • 对于UPDATE/DELETE/INSERT语句,只允许初始化用户在就地升级模式下或者管理员用户在重分布模式下执行;要求语句在每个实例上修改的记录数相同,否则执行会报错;函数会输出一条一列bigint类型的数值,此数值表示语句在每个实例上操作的记录数。
      SELECT * FROM pgxc_parallel_query('cn', 'UPDATE pg_partition SET relpages = 0') AS (updated bigint);

generate_wdr_report(begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring)

描述:创建负荷分析报告。输入参数含义如下:

  • begin_snap_id,end_snap_id:生成报告的起止快照ID,bigint型,要求begin_snap_id < end_snap_id,并且起止快照的时间没有交集。判断快照时间是否有交集可通过查询dbms_om.snapshot表格select s1.end_ts < s2.start_ts from (select * from dbms_om.snapshot where snapshot_id=$begin_snap_id) as s1, (select * from dbms_om.snapshot where snapshot_id=$end_snap_id) as s2;,如果返回true则没有交集,反之有交集。
  • report_type:报告类型,cstring型,包括“summary”,“detail”,“all”三种类型。
  • report_scope:报告范围,cstring型,包括“cluster”和“node”两种。
  • node_name:节点名称,cstring型,如果report_scope="node",该参数必须是pg_catalog. pgxc_node表格中node_name字段里的CN或DN节点名称。
返回值类型:text
  • 该函数只有数据库管理员SYSADMIN才有权执行,非管理员执行会提示无权限。
  • 该函数只能在CN上执行,在DN上执行会提示错误:“WDR report can only be created on coordinator.”。
  • 如果生成报告成功,会返回:“Report %s has been generated”。
  • 生成报告的两个快照期间不能发生统计信息重置事件,否则会提示错误:“Instance reset time is different”。引起统计信息重置的事件参见pgxc_node_stat_reset_time函数。

wdr_xdb_query(db_name text, snapshot_id bigint, view_name text)

描述:查询指定数据库下的指定视图。有的视图在不同数据库中查询结果不同,例如global_table_stat视图用于查询表格的统计信息,由于不同数据库下表格不同,在不同数据库中查询该视图得到的结果也不同。wdr_xdb_query函数可以在当前连接中访问db_name指定的数据库,并在该数据库中查询view_name指定的视图。输入参数含义如下:

  • db_name:指定的数据库名称,text型。
  • snapshot_id:快照ID,bigint型,参见“性能视图快照”。
  • view_name:指定视图名称,text型。视图名称必须在如下白名单中:
    • global_table_stat
    • global_table_change_stat
    • global_column_table_io_stat
    • global_row_table_io_stat

      返回值类型:record,其第一列为snapshot_id bigint,第二列为db_name text,其他列的名称、类型和顺序与view_name指定的视图相同。

      示例:

      1
      2
      SELECT snapshot_id, db_name, schemaname, relname, distribute_mode, seq_scan ,seq_tuple_read ,index_scan ,index_tuple_read ,tuple_inserted
      ,tuple_updated ,tuple_deleted ,tuple_hot_updated ,live_tuples ,dead_tuples from wdr_xdb_query('postgres'::text, 1, 'global_table_stat'::text) as i(snapshot_id bigint, db_name text, schemaname name, relname name, distribute_mode char, seq_scan bigint, seq_tuple_read bigint, index_scan bigint, index_tuple_read bigint, tuple_inserted bigint, tuple_updated bigint, tuplee_deleted bigint, tuple_hot_updated bigint, live_tuples bigint, dead_tuples bigint);
      
      • 该函数仅8.1.2及以上版本支持。
      • 该函数只有数据库管理员SYSADMIN才有权执行,非管理员执行会提示无权限。
      • 该函数只能查询白名单中的视图,如果查询其他视图,会报错:“Input view name is invalid.”。

vac_fileclear_relation(oid)

描述:用于强制清理指定列存表中被VACUUM重写的文件,完成空间回收。

参数:列存表oid。

返回值类型:integer

  • 使用本函数前需要设置参数colvacuum_threshold_scale_factor,并确保VACUUM对指定列存表的文件完成重写后,才会清理文件并回收空间。
  • 本函数将对指定的列存表施加排他锁。

vac_fileclear_all_relation()

描述:用于强制清理所有列存表中被VACUUM重写的文件,完成空间回收。

返回值类型:record