我想管理归档到远程位置的副本。为此,我想删除我复制的所有档案,除非备用数据库需要它们。
因此,为了运行,pg_archivecleanup $ARCLOC $CHECKPOINT
我需要找到可以删除的最新检查点。我不看最近的.backup
文件,因为它对我的存档容量来说太旧了。我想看的是replay_location
\ replay_lsn
(取决于版本)来自pg_stat_replication
.
但是,我不知道如何从replay_location
值转换为检查点值。即从某事7/2DBCED18
到000000020000000700000029
。
回答:
功能是:pg_xlogfile_name
当您开始备份或停止备份时,您将获得一个 WAL 位置,如果您想知道它在磁盘上的物理位置,请使用以下函数:
select pg_xlogfile_name('7/2DBCED18');
您可以使用 pg_controldata 获取最新检查点的重做 wal 文件。和 pg_archivecleanup 在此之前删除 wals。