gpt4 book ai didi

postgresql - 我可以从 WAL 存档文件夹中安全地删除哪些 Postgresql WAL 文件

转载 作者:行者123 更新时间:2023-11-29 11:22:41 26 4
gpt4 key购买 nike

现状

所以我在运行 Postgres 的数据记录计算机上将 WAL 归档设置为独立的内部硬盘驱动器。包含 WAL 存档的硬盘驱动器已满,我想删除所有 WAL 存档文件并将其存档到外部备份驱动器,包括初始基础备份。

目录结构如下:

D:/WALBACKUP/这是所有 WAL 文件(00000110000.CA00000004 等)的父文件夹

D:/WALBACKUP/BASEBACKUP/包含初始基础备份的 .tar

我的问题是:

  • 我能否安全地移动除当前 WAL 存档文件(000000000001.CA0000.. 等)之外的每个 WAL 文件,包括基本备份,并将它们移动到另一个硬盘。 (注意数据库是实时的并且正在接收数据)

干杯!

最佳答案

WAL 归档

您可以使用 pg_archivecleanup 命令从给定基础备份不需要的存档中删除 WAL(不是 pg_xlog)。

一般来说,我建议使用 PgBarman 或类似的工具来自动执行基本备份和 WAL 保留。它更容易且不易出错。

pg_xlog

切勿手动从 pg_xlog 中删除 WAL。如果你有太多的 WAL 那么:

  • 您的 wal_keep_segments 设置使 WAL 保持可用;
  • 您打开了 archive_mode 并设置了 archive_command 但它无法正常工作(检查日志);
  • 您的 checkpoint_segments 高得离谱,所以您只是生成了太多 WAL;或
  • 您有一个复制槽(请参阅 pg_replication_slots View )阻止删除 WAL。

您应该解决导致 WAL 被保留的问题。如果更改设置后似乎没有发生任何事情,请运行手动 CHECKPOINT 命令。

如果您有一个离线服务器并且需要删除 WAL 以启动它,您可以在必要时使用 pg_archivecleanup。它知道如何只删除服务器本身不需要的 WAL……但是它可能会破坏基于存档的备份、流式复制等。所以不要使用它,除非你必须

关于postgresql - 我可以从 WAL 存档文件夹中安全地删除哪些 Postgresql WAL 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35144403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com