更新时间:2024-12-30 GMT+08:00

验证残留文件函数

pg_verify_residualfiles(filepath)

描述:用于验证参数指定文件中记录的文件是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。

参数类型:text

返回值类型:bool

函数返回字段如下:

表1 pg_verify_residualfiles(filepath)返回字段

名称

类型

描述

isverified

bool

是否完成验证。

示例:

1
2
3
4
5
SELECT * FROM pg_verify_residualfiles('pgrf_20200908160211441546');
 isverified 
------------
 t
(1 row)

本函数只能验证记录的文件在当前登录的数据库中是否是残留文件。如果记录的文件不属于当前登录的数据库,则不会进行校验行为。

pg_verify_residualfiles()

描述:用于验证当前实例上所有残留文件列表中记录的文件是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。

参数类型:无

返回值类型:record

函数返回字段如下:

表2 pg_verify_residualfiles()返回字段

名称

类型

描述

result

bool

是否完成验证。

filepath

text

残留文件记录路径。

notes

text

注释。

示例:

1
2
3
4
5
SELECT * FROM pg_verify_residualfiles();
 result |         filepath          | notes 
--------+---------------------------+-------
 t      | pgrf_20200908160211441546 | 
(1 row)

本函数只能验证记录的文件在当前登录的数据库中是否是残留文件。如果记录的文件不属于当前登录的数据库,则不会进行校验行为。

pgxc_verify_residualfiles()

描述:pg_verify_residualfiles()的CN统一查询函数。该函数为集群级函数,与当前所在的数据库相关,在CN实例上运行。

参数类型:无

返回值类型:record

函数返回字段如下:

表3 pgxc_verify_residualfiles()返回字段

名称

类型

描述

nodename

text

节点名称。

result

bool

是否完成验证。

filepath

text

残留文件记录路径。

notes

text

注释。

示例:

1
2
3
4
5
6
SELECT * FROM pgxc_verify_residualfiles();
   nodename   | result |         filepath          | notes 
--------------+--------+---------------------------+-------
 cn_5001      | t      | pgrf_20200910170129360401 | 
 dn_6001_6002 | t      | pgrf_20200908160211441546 | 
(2 rows)

本函数只能验证记录的文件在当前登录的数据库中是否是残留文件。如果记录的文件不属于当前登录的数据库,则不会进行校验行为。

pg_is_residualfiles(residualfile)

描述:用于查询当前库中指定的relfilenode是否为残留文件。该函数为实例级函数,与当前所在的数据库相关,可以在任意实例上运行。

参数类型:text

返回值类型:bool

函数返回字段如下:

表4 pg_is_residualfiles(residualfile)返回字段

名称

类型

描述

result

bool

是否是残留文件。

示例:

1
2
3
4
5
SELECT * FROM pg_is_residualfiles('base/49155/114691');
 result 
--------
 t
(1 row)

本函数只能验证记录的文件在当前登录的database中是否为残留文件。如果记录的文件不属于当前登录的数据库,则会被检测为是残留文件。

例如:针对gaussdb数据库中的非残留文件base/15092/14790,如果在gaussdb库中查询,则认为是非残留文件;在其他数据库中查询,则认为是残留文件。

SELECT * FROM pg_is_residualfiles('base/15092/14790');
result
--------
f
(1 row)

\c db2
db2=# SELECT * FROM pg_is_residualfiles('base/15092/14790');
result
--------
t
(1 row)