数据库管理¶
PostgreSQL¶
WAL(Write Ahead Log)¶
默认情况下,archive_mode 已启用,以便创建增量数据库备份,该备份由用户触发。 archive_command 也已配置用于持续的 WAL 归档,pg_wal 子目录中的 WAL 文件将被复制到 /var/lib/postgresql/data/wal_archive。
如果归档文件夹中的 WAL 分段文件持续增加,这将成为一个问题,尤其是在繁忙的系统中,数 TB 的 WAL 文件可能会堆积在归档目标(数据卷的一部分)中,从而导致数据库服务不可用。
在 trove-guestagent 的 PostgreSQL 管理器中,有一个定期任务旨在清理归档文件夹,在运行过程中,它会检查归档文件夹的大小,如果大小大于数据卷大小的一半,则在归档文件夹中
如果不存在
.backup文件,则表示数据库之前从未备份过,除了最新的一个之外,所有 WAL 分段文件都会被删除。如果存在
.backup文件,则删除所有早于备份文件的文件。再次检查大小,如果大小条件仍然满足,则删除除最新一个之外的所有 WAL 分段文件。
在创建增量备份时,trove 会检查父备份文件是否仍然存在于归档文件夹中,如果未找到,则备份创建将失败。用户可以在实例详细信息中看到错误消息,并且必须创建完整备份。
另一种选择是将 WAL 文件归档到 Swift(在用户的帐户中),例如使用 WAL-G 或其他第三方工具,但这会产生对象存储使用费用,这并非最佳选择。我们让用户决定何时以及如何创建备份。