扫描残留文件函数
扫描残留文件函数仅8.3.0及以上集群版本支持,本章节所有函数仅限sysadmin角色调用。
pg_scan_residualfiles()
描述:用于扫描当前节点所连接数据库的所有残留文件记录。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。
返回类型:record
返回信息如下:
名称 |
类型 |
描述 |
---|---|---|
residualfile |
text |
残留文件路径。 |
示例:
1 2 3 4 5 6 |
SELECT * FROM pg_scan_residualfiles(); pgscrf -------------------------------------------------------------------- pg_residualfiles/pgscrf_meta_1663_16323_20231027143716005244 pg_residualfiles/pgscrf_meta_2147484281_16323_20231027143716005713 (2 rows) |
- 此函数只能扫描当前登录的数据库中是否存在残留文件,当前只扫描默认表空间和自定义表空间。
- 此函数为重载操作,不支持单节点并发使用,也不建议在业务繁忙和资源负载较高时使用。
pgxc_scan_residualfiles(query_flag)
描述:pg_scan_residualfiles()的CN统一执行函数。该函数为集群级函数,与当前所在的数据库相关,在CN实例上运行。
参数说明:query_flag。参数类型int,表示执行范围。1表示CN,2表示主DN,4表示备DN,通过或运算可以得到查询并集,如1|2=3表示CN+主DN,1|2|4=7表示CN+主DN+备DN,默认值是7。
返回类型:record
返回信息如下:
名称 |
类型 |
描述 |
---|---|---|
nodename |
name |
节点名称。 |
instance_id |
text |
实例名称。 |
residualfile |
text |
残留文件路径。 |
示例:
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 |
SELECT * FROM pgxc_scan_residualfiles(); node_name | instance_id | pgscrf --------------+-------------+-------------------------------------------------------------------- dn_6001_6002 | dn_6001 | pg_residualfiles/pgscrf_meta_1663_16323_20231027144103839354 dn_6001_6002 | dn_6001 | pg_residualfiles/pgscrf_meta_2147484281_16323_20231027144103839826 cn_5001 | cn_5001 | pg_residualfiles/pgscrf_meta_1663_16323_20231027144103946217 dn_6007_6008 | dn_6008 | pg_residualfiles/pgscrf_meta_1663_16323_20231027144104171311 (4 rows) SELECT * FROM pgxc_scan_residualfiles(1); node_name | instance_id | pgscrf -----------+-------------+-------------------------------------------------------------- cn_5001 | cn_5001 | pg_residualfiles/pgscrf_meta_1663_16323_20231027144421861628 (1 row) SELECT * FROM pgxc_scan_residualfiles(2); node_name | instance_id | pgscrf --------------+-------------+-------------------------------------------------------------------- dn_6001_6002 | dn_6001 | pg_residualfiles/pgscrf_meta_1663_16323_20231027144424210395 dn_6001_6002 | dn_6001 | pg_residualfiles/pgscrf_meta_2147484281_16323_20231027144424210855 (2 rows) SELECT * FROM pgxc_scan_residualfiles(4); node_name | instance_id | pgscrf --------------+-------------+-------------------------------------------------------------- dn_6007_6008 | dn_6008 | pg_residualfiles/pgscrf_meta_1663_16323_20231027144427492060 (1 row) |
- 此函数只能扫描当前登录的数据库中是否存在残留文件,当前只扫描默认表空间和自定义表空间。
- 此函数为重载操作,不支持单节点并发使用,也不建议在业务繁忙和资源负载较高时使用。
pg_get_scan_residualfiles()
描述:用于获取当前节点所有扫描到的残留文件记录。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。
返回类型:record
返回信息如下:
名称 |
类型 |
描述 |
---|---|---|
handled |
bool |
是否已处理。 |
dbname |
text |
数据库名称。 |
residualfile |
text |
残留文件路径。 |
size |
bigint |
文件大小,单位为byte。 |
inode |
bigint |
残留文件stat信息中的Inode。 |
atime |
timestamptz |
残留文件stat信息中的Access time。 |
mtime |
timestamptz |
残留文件stat信息中的Modifie time。 |
ctime |
timestamptz |
残留文件stat信息中的Chang time。 |
filepath |
text |
对应pgscrf_meta文件。 |
notes |
text |
注释。 |
示例:
1 2 3 4 5 6 7 8 |
SELECT * FROM pg_get_scan_residualfiles(); handled | dbname | residualfile | size | inode | atime | mtime | ctime | filepath | notes ---------+----------+---------------------------------------------------------------------+-------+------------+------------------------+------------------------+------------------------+---------------------------------------------------+------- f | postgres | base/16323/2147494191 | 81920 | 805444689 | 2023-10-27 14:21:49+08 | 2023-10-27 14:23:08+08 | 2023-10-27 14:23:08+08 | pgscrf_meta_1663_16323_20231027144103839354 | f | postgres | base/16323/2147494191_fsm | 0 | 805444690 | 2023-10-27 14:21:49+08 | 2023-10-27 14:21:49+08 | 2023-10-27 14:21:49+08 | pgscrf_meta_1663_16323_20231027144103839354 | f | postgres | base/16323/2147494191_vm | 0 | 805444691 | 2023-10-27 14:21:49+08 | 2023-10-27 14:21:49+08 | 2023-10-27 14:21:49+08 | pgscrf_meta_1663_16323_20231027144103839354 | f | postgres | pg_tblspc/2147484281/PG_9.2_201611171_dn_6001_6002/16323/2147894282 | 0 | 7247789391 | 2023-10-27 14:37:03+08 | 2023-10-27 14:37:03+08 | 2023-10-27 14:37:03+08 | pgscrf_meta_2147484281_16323_20231027144103839826 | (4 rows) |
pgxc_get_scan_residualfiles(query_flag)
描述:pg_get_scan_residualfiles()的CN统一执行函数。该函数为集群级函数,与当前所在的数据库无关,在CN实例上运行。
参数说明:query_flag。参数类型int,用于表示执行范围。1表示CN,2表示主DN,4表示备DN,通过或运算可以得到查询并集,如1|2=3表示CN+主DN,1|2|4=7表示CN+主DN+备DN,默认值是7。
返回类型:record
返回信息如下:
名称 |
类型 |
描述 |
---|---|---|
nodename |
name |
节点名称。 |
instance_id |
text |
实例名称。 |
handled |
bool |
是否已处理。 |
dbname |
text |
数据库名称。 |
residualfile |
text |
残留文件路径。 |
size |
bigint |
文件大小,单位为byte。 |
inode |
bigint |
残留文件stat信息中的Inode。 |
atime |
timestamptz |
残留文件stat信息中的Access time。 |
mtime |
timestamptz |
残留文件stat信息中的Modifie time。 |
ctime |
timestamptz |
残留文件stat信息中的Chang time。 |
filepath |
text |
对应pgscrf_meta文件。 |
notes |
text |
注释。 |
示例:
1 2 3 4 5 6 7 8 9 10 |
SELECT * FROM pgxc_get_scan_residualfiles(); node_name | instance_id | handled | dbname | residualfile | size | inode | atime | mtime | ctime | filepath | notes --------------+-------------+---------+----------+---------------------------------------------------------------------+-------+------------+------------------------+------------------------+------------------------+---------------------------------------------------+------- dn_6001_6002 | dn_6001 | f | postgres | base/16323/2147494191 | 81920 | 805444689 | 2023-10-27 14:21:49+08 | 2023-10-27 14:23:08+08 | 2023-10-27 14:23:08+08 | pgscrf_meta_1663_16323_20231027144103839354 | dn_6001_6002 | dn_6001 | f | postgres | base/16323/2147494191_fsm | 0 | 805444690 | 2023-10-27 14:21:49+08 | 2023-10-27 14:21:49+08 | 2023-10-27 14:21:49+08 | pgscrf_meta_1663_16323_20231027144103839354 | dn_6001_6002 | dn_6001 | f | postgres | base/16323/2147494191_vm | 0 | 805444691 | 2023-10-27 14:21:49+08 | 2023-10-27 14:21:49+08 | 2023-10-27 14:21:49+08 | pgscrf_meta_1663_16323_20231027144103839354 | dn_6001_6002 | dn_6001 | f | postgres | pg_tblspc/2147484281/PG_9.2_201611171_dn_6001_6002/16323/2147894282 | 0 | 7247789391 | 2023-10-27 14:37:03+08 | 2023-10-27 14:37:03+08 | 2023-10-27 14:37:03+08 | pgscrf_meta_2147484281_16323_20231027144103839826 | cn_5001 | cn_5001 | f | postgres | base/16323/2147784070 | 40960 | 537070896 | 2023-10-27 14:38:59+08 | 2023-10-27 14:39:17+08 | 2023-10-27 14:39:17+08 | pgscrf_meta_1663_16323_20231027144103946217 | dn_6007_6008 | dn_6008 | f | postgres | base/16323/2147784073 | 24576 | 7784666105 | 2023-10-27 14:40:21+08 | 2023-10-27 14:40:34+08 | 2023-10-27 14:40:34+08 | pgscrf_meta_1663_16323_20231027144104171311 | (6 rows) |
pg_archive_scan_residualfiles()
描述:用于归档当前节点所连接数据库上所有扫描到的残留文件记录。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。
返回类型:record
返回信息如下:
名称 |
类型 |
描述 |
---|---|---|
archive |
text |
残留文件归档路径。 |
count |
bigint |
归档的残留文件数量。 |
size |
bigint |
归档的残留文件总大小,单位为byte。 |
示例:
1 2 3 4 5 |
SELECT * FROM pg_archive_scan_residualfiles(); archive | count | size --------------------------------------------------------------+-------+------- pg_residualfiles/archive/pgscrf_archive_20231027144613791801 | 4 | 81920 (1 row) |
- 此函数只能归档当前登录的数据库中记录过的残留文件,归档时会记录中的残留文件进行相应的校验,校验结果分为以下三种情况:
- 校验通过:校验通过后会对残留文件进行归档,并标记为已处理。
- 校验失败:校验失败会跳过归档,并标记为已处理。
- 延迟校验:延迟校验会跳过归档,通常表示当前未满足校验时机,延迟校验的情况通常和事务完成情况及备机REDO进度有关。
- 实际归档目录与对应表空间在同一个文件系统下,删除表空间也会删除对应的残留文件归档。
- 延迟DDL开启后,此函数无法使用。
- 此函数为重载操作,不支持单节点并发使用,也不建议在业务繁忙和资源负载较高时使用。
pgxc_archive_scan_residualfiles(query_flag)
描述:pg_archive_scan_residualfiles()的CN统一执行函数。该函数为集群级函数,与当前所在的数据库相关,在CN实例上运行。
参数说明:query_flag。参数类型int,用于表示执行范围,1表示CN,2表示主DN,4表示备DN,通过或运算可以得到查询并集,如1|2=3表示CN+主DN,1|2|4=7表示CN+主DN+备DN,默认值是7。
返回类型:record
返回信息如下:
名称 |
类型 |
描述 |
---|---|---|
nodename |
name |
节点名称。 |
instance_id |
text |
实例名称。 |
archive |
text |
残留文件归档路径。 |
count |
bigint |
归档的残留文件数量。 |
size |
bigint |
归档的残留文件总大小,单位为byte。 |
示例:
1 2 3 4 5 6 |
SELECT * FROM pgxc_archive_scan_residualfiles(); node_name | instance_id | archive | count | size --------------+-------------+--------------------------------------------------------------+-------+------- cn_5001 | cn_5001 | pg_residualfiles/archive/pgscrf_archive_20231027145050896440 | 1 | 40960 dn_6007_6008 | dn_6008 | pg_residualfiles/archive/pgscrf_archive_20231027145051018138 | 1 | 24576 (2 rows) |
- 此函数只能归档当前登录的数据库中记录过的残留文件,归档时会记录中的残留文件进行相应的校验,校验结果分为以下三种情况:
- 校验通过:校验通过后会对残留文件进行归档,并标记为已处理。
- 校验失败:校验失败会跳过归档,并标记为已处理。
- 延迟校验:延迟校验会跳过归档,通常表示当前未满足校验时机,延迟校验的情况通常和事务完成情况及备机REDO进度有关。
- 实际归档目录与对应表空间在同一个文件系统下,删除表空间也会删除对应的残留文件归档。
- 延迟DDL开启后,此函数无法使用。
- 此函数为重载操作,不支持单节点并发使用,也不建议在业务繁忙和资源负载较高时使用。
pg_rm_scan_residualfiles_archive()
描述:用于删除当前节点所有归档的残留文件记录。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。
返回类型:record
返回信息如下:
名称 |
类型 |
描述 |
---|---|---|
count |
bigint |
归档中已删除的残留文件数量。 |
size |
bigint |
归档中已删除的残留文件总大小,单位为byte。 |
示例:
1 2 3 4 5 |
SELECT * FROM pg_rm_scan_residualfiles_archive(); count | size -------+------- 4 | 81920 (1 row) |
pgxc_rm_scan_residualfiles_archive(query_flag)
描述:pg_rm_scan_residualfiles_archive()的CN统一执行函数。该函数为集群级函数,与当前所在的数据库无关,在CN实例上运行。
参数说明:query_flag。参数类型int,用于表示执行范围,1表示CN,2表示主DN,4表示备DN,通过或运算可以得到查询并集,如1|2=3表示CN+主DN,1|2|4=7表示CN+主DN+备DN,默认值是7。
返回类型:record
返回信息如下:
名称 |
类型 |
描述 |
---|---|---|
nodename |
name |
节点名称。 |
instance_id |
text |
实例名称。 |
count |
bigint |
归档中已删除的残留文件数量。 |
size |
bigint |
归档中已删除的残留文件总大小,单位为byte。 |
示例:
1 2 3 4 5 6 7 |
SELECT * FROM pgxc_rm_scan_residualfiles_archive(); node_name | instance_id | count | size --------------+-------------+-------+------- dn_6001_6002 | dn_6001 | 4 | 81920 cn_5001 | cn_5001 | 1 | 40960 dn_6007_6008 | dn_6008 | 1 | 24576 (3 rows |