archive_timeout

决定 WAL 文件最大归档间隔时间的配置参数

archive_timeout 是一个 配置参数,它决定在 WAL 文件归档之前可以经过的最长时间,无论该文件是否已填满。

archive_timeout 添加于 PostgreSQL 8.2

用法

通常,WAL 文件一填满就会被归档。但是,如果活动较低,则可能需要一段时间才能归档该文件。通过将 archive_timeout 设置为正值,可以保证在指定的时间间隔后创建一个新的 WAL 文件,并将前一个文件归档,但是只有在产生 WAL 的任何活动的情况下才会这样做。

请注意,如果使用不当,这可能会导致生成大量几乎为空的 WAL 文件,这将占用比必要更多的归档存储空间。

为了确保将 WAL 几乎实时地传输到另一台服务器,建议使用流式复制。

默认值

archive_timeout 的默认值是:0(禁用)。

按 PostgreSQL 版本查看详情

archive_timeout (PostgreSQL 18)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 设置等待强制切换到下一个 WAL 文件的时间量。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 17)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 设置等待强制切换到下一个 WAL 文件的时间量。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 16)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 设置等待强制切换到下一个 WAL 文件的时间量。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 15)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 设置等待强制切换到下一个 WAL 文件的时间量。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 14)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 WAL 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 13)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 WAL 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 12)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 WAL 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 11)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 WAL 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 10)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 WAL 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 9.6)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 9.5)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  
待重启

文档archive_timeout

archive_timeout (PostgreSQL 9.4)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  

文档archive_timeout

archive_timeout (PostgreSQL 9.3)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  

文档archive_timeout

archive_timeout (PostgreSQL 9.2)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  

文档archive_timeout

archive_timeout (PostgreSQL 9.1)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  

文档archive_timeout

archive_timeout (PostgreSQL 9.0)

设置 0
单位 秒(s)
类别 预写日志/归档
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  

文档archive_timeout

archive_timeout (PostgreSQL 8.4)

设置 0
单位 秒(s)
类别 预写日志/设置
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823
枚举值  
启动值 0
重置值 0
源文件  
源代码行数  

文档archive_timeout

archive_timeout (PostgreSQL 8.3)

设置  
单位 秒(s)
类别 预写日志/设置
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 1073741823

文档archive_timeout

archive_timeout (PostgreSQL 8.2)

设置  
单位 秒(s)
类别 预写日志/设置
简短描述 如果在 N 秒内未启动新文件,则强制切换到下一个 xlog 文件。
额外描述  
上下文 sighup
变量类型 整数
来源 默认
最小值 0
最大值 2147483647

文档archive_timeout

更改历史

示例

演示将 archive_timeout 设置为 10 秒的效果(需要将 log_min_messages 设置为 DEBUG1 或更高)

[2021-04-01 10:22:24 UTC] psql postgres postgres LOG:  00000: statement: INSERT INTO foo VALUES(1);
[2021-04-01 10:22:29 UTC]    DEBUG:  00000: write-ahead log switch forced (archive_timeout=10)
[2021-04-01 10:22:29 UTC]    DEBUG:  00000: archived write-ahead log file "000000010000000000000008"
[2021-04-01 10:22:43 UTC]    DEBUG:  00000: autovacuum: processing database "proddb"
[2021-04-01 10:23:55 UTC] psql postgres postgres LOG:  00000: statement: INSERT INTO foo VALUES(1);
[2021-04-01 10:23:59 UTC]    DEBUG:  00000: write-ahead log switch forced (archive_timeout=10)
[2021-04-01 10:23:59 UTC]    DEBUG:  00000: archived write-ahead log file "000000010000000000000009"

在上面,可以看到在向表中执行 INSERT 操作后不久,WAL 文件会在 archive_timeout 指定的时间间隔内切换并归档。但是,由于没有产生 WAL 的活动,超过了 archive_timeout 秒;下一个 WAL 切换只有在执行另一个 INSERT 操作后才会发生。

归档的 WAL 文件具有正常的磁盘文件大小

$ ls -l /var/lib/postgres/wal-archive/000000010000000000000008 
-rw------- 1 postgres postgres 16777216 Apr  1 10:22 /var/lib/postgres/wal-archive/000000010000000000000008

但它很大程度上是空的

$ pg_waldump /var/lib/postgres/wal-archive/000000010000000000000008 
rmgr: XLOG        len (rec/tot):     49/  8033, tx:          0, lsn: 0/08000028, prev 0/07000148, desc: FPI_FOR_HINT , blkref #0: rel 1663/14973/1249 blk 17 FPW
rmgr: Heap        len (rec/tot):     59/    59, tx:        555, lsn: 0/08001F90, prev 0/08000028, desc: INSERT+INIT off 1 flags 0x00, blkref #0: rel 1663/14973/16470 blk 0
rmgr: Transaction len (rec/tot):     34/    34, tx:        555, lsn: 0/08001FD0, prev 0/08001F90, desc: COMMIT 2021-04-01 10:22:24.426073 UTC
rmgr: Standby     len (rec/tot):     54/    54, tx:          0, lsn: 0/08001FF8, prev 0/08001FD0, desc: RUNNING_XACTS nextXid 556 latestCompletedXid 554 oldestRunningXid 555; 1 xacts: 555
rmgr: XLOG        len (rec/tot):     24/    24, tx:          0, lsn: 0/08002048, prev 0/08001FF8, desc: SWITCH
$

分类

GUC 配置项复制

参见

archive_command

反馈

在此提交关于 "archive_timeout" 的任何评论、建议或更正 此处