返回数说广场
0
如果 pg_wal 用完磁盘空间,PostgreSQL 服务器将会崩溃。PostgreSQL 数据库记录所有对数据库的修改在事务重做日志中。PostgreSQL 将事务重做日志称为“预写日志” (WAL),因为我们必须在将数据修改应用到数据库之前记录所有数据修改。这有三个目的:
从崩溃中恢复而不丢失任何数据
在恢复在线文件系统备份后恢复数据
在备用服务器上重放数据修改
PostgreSQL 依次将 WAL 写入数据目录的 pg_wal 子目录中的 WAL 段 文件。这些 WAL 段的大小为 16MB(但您可以在 initdb 时选择不同的大小)。WAL 段可以处于以下三种状态之一:
一个 WAL 段是活动的,即 PostgreSQL 目前将事务重做信息写入此文件
一些 WAL 段是空的,并准备好供将来使用,以避免在活动 WAL 段满时出现停顿
一些 WAL 段已经完成,并且在正常操作中不再使用
显然令我们担忧的是已完成的 WAL 段。PostgreSQL 会在不再需要它们时自动删除这些文件。我们需要更好地理解这个过程,以便解决我们最初的问题。有一个重要的警告:
绝不要手动删除 pg_wal 中的任何文件。
PostgreSQL 需要这些文件来从崩溃中恢复。如果您磁盘空间不足,您需要增加磁盘空间。
0
0 110
分享
评论
热门数说


