更新时间:2024-06-19 GMT+08:00

函数

pg_obs_file_size(scheme_name.tablename)

描述:获取OBS上的表或者分区的CU文件名、文件大小信息,仅对列存版本colversion为3的表生效。

返回值类型:record

函数参数字段如下:

名称

类型

描述

scheme_name.tablename

regclass

主表的schema.tablename/tablename/oid,或者分区表的OID。如果存在主表OID和分区OID相同的场景,建议使用表名作为入参。

示例:

 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
--入参为tablename:
SELECT pg_obs_file_size('t2_col_part_obs');
      pg_obs_file_size
----------------------------
 (C1_16777266462721.0,1024)
 (C1_16777266429953.0,1024)
 (C1_16777249734657.0,1024)
 (C1_16777249701889.0,1024)
(4 rows)
--入参为schema.tablename
SELECT pg_obs_file_size('public.t2_col_part_obs');
      pg_obs_file_size
----------------------------
 (C1_16777266462721.0,1024)
 (C1_16777266429953.0,1024)
 (C1_16777249734657.0,1024)
 (C1_16777249701889.0,1024)
(4 rows)
--入参为oid
SELECT pg_obs_file_size(16593);
      pg_obs_file_size
----------------------------
 (C1_16777266462721.0,1024)
 (C1_16777266429953.0,1024)
 (C1_16777249734657.0,1024)
 (C1_16777249701889.0,1024)
(4 rows)

pg_obs_file_size(scheme_name.tablename,partition_name)

描述:获取OBS上分区表分区的列存CU文件名、文件大小信息,仅对列存版本colversion为3的表生效。

返回值类型:record

函数参数字段如下:

名称

类型

描述

scheme_name.tablename

regclass

主表的schema.tablename/tablename/oid。

partition_name

cstring

分区表表名。

示例:

1
2
3
4
5
6
7
8
SELECT pg_obs_file_size('public.t2_col_part_obs','p1');
      pg_obs_file_size
----------------------------
 (C1_16777266462721.0,1024)
 (C1_16777266429953.0,1024)
 (C1_16777249734657.0,1024)
 (C1_16777249701889.0,1024)
(4 rows)

meta_cache_manual_append(scheme_name, rel_name)

描述:在下一次语句执行时,CN将对目标表元数据进行打包,并发送给只读DN。建议在技术支持指导下使用。

返回值类型:void。

函数参数字段如下:

名称

类型

描述

scheme_name

text

目标表的scheme名称。

rel_name

text

目标表表名。

示例:

1
SELECT meta_cache_manual_append('public','t1_col_obs');

meta_cache_manual_clean()

描述:对之前通过调用meta_cache_manual_append注册的元数据进行清理。建议在技术支持指导下使用。

返回值类型:void

示例:

1
SELECT meta_cache_manual_clean();

pg_scan_residualfiles()

描述:用于扫描当前节点所在数据库的所有残留文件记录。连接到CN执行时,扫描当前CN节点所在数据库的本地残留文件和OBS全部残留文件。连接到DN执行时,扫描当前DN节点所在数据库的本地残留文件。该函数为库级函数,只针对当前数据库。不支持备机执行。

返回值类型:record

函数返回字段如下:

名称

类型

描述

pgscrf

text

记录残留文件信息的元文件本地路径。

示例:
1
2
3
4
5
SELECT * FROM pg_scan_residualfiles();
                       pgscrf
---------------------------------------------------------
 pg_residualfiles/pgscrf_meta_15842_20230912182912146379
(1 row)

pgxc_scan_residualfiles()

描述:用于扫描所有节点上当前数据库的残留文件记录。该函数为集群级函数,仅支持在CN执行,与连接CN上当前所在的数据库相关。不支持备机执行。

参数类型: 无。

返回值类型:record

函数返回字段如下:

名称

类型

描述

node_name

text

主备节点共用的统一名称。

instance_id

text

记录残留文件所在的节点名称。

pgscrf

text

记录残留文件信息的元文件本地路径。

示例:
1
2
3
4
5
6
SELECT * FROM pgxc_scan_residualfiles();
  node_name   | instance_id  |                         pgscrf
--------------+--------------+---------------------------------------------------------
 datanode1    | datanode1    | pg_residualfiles/pgscrf_meta_15854_20231106095437555205
 coordinator1 | coordinator1 | pg_residualfiles/pgscrf_meta_15854_20231106095438240991
(1 row)

pg_get_scan_residualfiles()

描述:用于获取当前节点的所有残留文件记录。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。不支持备机执行。

返回值类型:record

函数返回字段如下:

名称

类型

描述

handled

bool

残留文件是否已经被移动或者被更改。

dbname

text

所属数据库名称。

residualfile

text

残留文件路径。

size

int

残留文件大小,OBS路径的残留文件该项为0。

inode

int

残留文件在文件系统的索引节点号,OBS上残留文件该项为0。

atime

time

残留文件上一次访问时间,OBS路径的残留文件该项为空。

mtime

time

残留文件上一次修改时间,OBS路径的残留文件该项为空。

ctime

time

残留文件上一次状态改动时间,OBS路径的残留文件该项为空。

filepath

text

记录残留文件信息的元文件本地路径。

notes

text

注释。

示例:
1
2
3
4
5
6
7
SELECT * FROM pg_get_scan_residualfiles();
 handled |  dbname  |                                                         residualfile                                                         | size | inode | atime | mtime | ctime |                filepath                |
notes
---------+----------+------------------------------------------------------------------------------------------------------------------------------+------+-------+-------+-------+-------+----------------------------------------+-
------
 f       | postgres | /test/obsview/cudesc_check/user1/obs.xxx.com/cu_obs_tbs/tablespace_secondary/15854/19865 |    0 |     0 |       |       |       | pgscrf_meta_15854_20231106095438240991 |
(1 row)

pgxc_get_scan_residualfiles()

描述:用于获取所有节点上残留文件记录。该函数为集群级函数,仅支持在CN执行,与当前所在的数据库无关。不支持备机执行。

返回值类型:record

函数返回字段如下:

名称

类型

描述

node_name

text

主备节点共用的统一名称。

instance_id

text

记录残留文件所在的节点名称。

handled

bool

残留文件是否已经被移动或者被更改。

dbname

text

所属数据库名称。

residualfile

text

残留文件路径。

size

int

残留文件大小,OBS上残留文件该项为0。

inode

int

残留文件在文件系统的索引节点号,OBS路径的残留文件该项为0。

atime

time

残留文件上一次访问时间,OBS路径的残留文件该项为空。

mtime

time

残留文件上一次修改时间,OBS路径的残留文件该项为空。

ctime

time

残留文件上一次状态改动时间,OBS路径的残留文件该项为空。

filepath

text

记录残留文件信息的元文件本地路径。

notes

text

注释。

示例:
1
2
3
4
5
6
7
SELECT * FROM pgxc_get_scan_residualfiles();
  node_name   | instance_id  | handled |  dbname  |                                                         residualfile                                                         | size |  inode  |         atime          |
mtime          |         ctime          |                filepath                | notes
--------------+--------------+---------+----------+------------------------------------------------------------------------------------------------------------------------------+------+---------+------------------------+------------------------+------------------------+----------------------------------------+-------
 datanode1    | datanode1    | f       | postgres | base/15854/19863                                                                                                             |    0 | 2939427 | 2023-11-06 09:54:15+08 | 2023-11-06 09:54:15+08 | 2023-11-06 09:54:15+08 | pgscrf_meta_15854_20231106095437555205 |
 coordinator1 | coordinator1 | f       | postgres | /test/obsview/cudesc_check/user1/obs.xxx.com/cu_obs_tbs/tablespace_secondary/15854/19865 |    0 |       0 |                            |             |                        | pgscrf_meta_15854_20231106095438240991 |
(2 rows)

pg_archive_scan_residualfiles()

描述:用于归档当前节点的所有残留文件记录。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。不支持备机执行。

返回值类型:record

函数返回字段如下:

名称

类型

描述

archive

text

归档后的本地文件夹路径。OBS路径的残留文件归档在对应OBS数据库目录下。

count

int

归档文件夹中的文件数量。

size

int

归档文件夹中的文件大小。

示例:
1
2
3
4
5
SELECT * FROM pg_archive_scan_residualfiles();
                             archive                               |  count | size 
-------------------------------------------------------------------+--------+------
 pg_residualfiles/archive/pgscrf_archive_15842_20230912182934335330|      1 |    0
(1 row)

pgxc_archive_scan_residualfiles()

描述:用于归档所有节点上残留文件记录。该函数为集群级函数,仅支持在CN执行,与当前所在的数据库无关。不支持备机执行。

返回值类型:record

函数返回字段如下:

名称

类型

描述

node_name

text

主备节点共用的统一名称。

instance_id

text

记录残留文件所在的节点名称。

archive

text

归档后的本地文件夹路径。OBS路径的残留文件归档在对应OBS数据库目录下。

count

int

归档文件夹中的文件数量。

size

int

归档文件夹中的文件大小。

示例:
1
2
3
4
5
6
SELECT * FROM pgxc_archive_scan_residualfiles();
  node_name   | instance_id  |                           archive                            | count | size
--------------+--------------+--------------------------------------------------------------+-------+------
 datanode1    | datanode1    | pg_residualfiles/archive/pgscrf_archive_20231106103246489550 |     1 |    0
 coordinator1 | coordinator1 | pg_residualfiles/archive/pgscrf_archive_20231106103246592449 |     1 |    0
(2 rows)

pg_rm_scan_residualfiles_archive()

描述:用于删除当前实例中归档文件列表中的文件。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。不支持备机执行。

返回值类型:record

函数返回字段如下:

名称

类型

描述

count

int

所删除的残留文件数。本地路径的残留文件统计所删除的文件数,OBS路径的残留文件统计所删除的表目录数量。

size

int

所删除的残留文件中本地文件总大小。OBS路径的残留文件该项均为0。

示例:
1
2
3
4
5
SELECT * FROM pg_rm_scan_residualfiles_archive();
 count | size
-------+------
     1 |    0 
(1 row)

pgxc_rm_scan_residualfiles_archive()

描述:用于删除所有节点上归档目录中的文件。该函数为集群级函数,仅支持在CN执行,与当前所在的数据库无关。不支持备机执行。

返回值类型:record

函数返回字段如下:

名称

类型

描述

node_name

text

主备节点共用的统一名称。

instance_id

text

记录残留文件所在的节点名称。

count

int

所删除的残留文件数。本地路径的残留文件统计所删除的文件数,OBS路径的残留文件统计所删除的表目录数量。

size

int

所删除的残留文件中本地文件总大小。OBS路径的残留文件该项均为0。

示例:
1
2
3
4
5
6
SELECT * FROM pgxc_rm_scan_residualfiles_archive();
  node_name   | instance_id  | count | size
--------------+--------------+-------+------
 datanode1    | datanode1    |     1 |    0
 coordinator1 | coordinator1 |     1 |    0
(2 rows)

analyze_table(scheme_name, rel_name, sample_rate, random_rate default null, parallel_degree default null)

描述:并行采样数据到临时表,再对临时表执行全量ANALYZE,更新统计信息。

返回值类型:record

函数参数字段如下:

名称

类型

描述

scheme_name

name

主表的scheme名称

rel_name

name

主表表名

sample_rate

float8

采样率的百分比,范围为(0-100)。

采样率计算:min((10w/表的total_rows) * 100, 100)

random_seed

float8

随机种子, 默认值为0。

parallel_degree

int

并发度,默认值为10。

示例:

1
CALL analyze_table('public','t1_col_obs',10,0,20);

pgxc_clear_disk_cache()

描述:用于完全清理磁盘缓存文件。

返回值类型:void

示例:

1
2
3
4
5
SELECT pgxc_clear_disk_cache();
 pgxc_clear_disk_cache
-----------------------

(1 row)