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

删除残留文件函数

pgxc类残留文件管理函数只对CN和当前主DN进行操作,不会验证和清理备DN上的残留文件。所以主DN完成清理后,应在备DN上及时执行残留文件清理操作或对备机进行build,防止主备切换后由于增量build导致备机残留文件被重新复制回主DN,导致未成功清理的假象。

pg_rm_residualfiles(filepath)

描述:用于删除当前实例中指定残留文件列表中的文件。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。

参数类型:text

返回值类型:record

函数返回字段如下:

表1 pg_rm_residualfiles(filepath)返回字段

名称

类型

描述

result

bool

是否已经完成删除。

示例:

1
2
3
4
5
SELECT * FROM pg_rm_residualfiles('pgrf_20200908160211441599');
 result 
--------
 t
(1 row)
  • 残留文件只有在调用pg_verify_residualfiles()进行verify后才能被真正删除。
  • 删除动作不区分数据库,指定文件中所有已经verify的文件都会被删除。
  • 如果指定文件中记录的所有文件都已经被删除,指定文件会被移除并备份到$PGDATA/pg_residualfile/backup目录下。

pg_rm_residualfiles()

描述:用于删除当前实例中所有的残留文件列表中的文件。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。

参数类型:无

返回值类型:record

函数返回字段如下:

表2 pg_rm_residualfiles()返回字段

名称

类型

描述

result

bool

是否已经完成删除。

filepath

text

残留文件记录路径。

notes

text

注释。

示例:

1
2
3
4
5
SELECT * FROM pg_rm_residualfiles();
 result |         filepath          | notes 
--------+---------------------------+-------
 t      | pgrf_20200908160211441546 | 
(1 row)
  • 残留文件只有在调用pg_verify_residualfiles()进行验证后才能被真正删除。
  • 删除动作不区分数据库,指定文件中所有已经验证的文件都会被删除。
  • 如果指定文件中记录的所有文件都已经被删除,指定文件会被移除并备份到$PGDATA/pg_residualfile/backup目录下。

pgxc_rm_residualfiles()

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

参数类型:无

返回值类型:record

函数返回字段如下:

表3 pgxc_rm_residualfiles()返回字段

名称

类型

描述

nodename

text

节点名。

result

bool

是否已经完成删除。

filepath

text

残留文件记录路径。

notes

text

注释。

示例:

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