删除残留文件函数
pgxc类残留文件管理函数只对CN和当前主DN进行操作,不会验证和清理备DN上的残留文件。所以主DN完成清理后,应在备DN上及时执行残留文件清理操作或对备机进行build,防止主备切换后由于增量build导致备机残留文件被重新复制回主DN,导致未成功清理的假象。
pg_rm_residualfiles(filepath)
描述:用于删除当前实例中指定残留文件列表中的文件。该函数为实例级函数,与当前所在的数据库无关,可以在任意实例上运行。
参数类型:text
返回值类型:record
函数返回字段如下:
名称 |
类型 |
描述 |
---|---|---|
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
函数返回字段如下:
名称 |
类型 |
描述 |
---|---|---|
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
函数返回字段如下:
名称 |
类型 |
描述 |
---|---|---|
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) |