archive_mode
是一个配置参数,用于确定何时将已完成的WAL段发送到归档存储。
archive_mode
在PostgreSQL 8.3中添加。
用法
archive_mode
要求将wal_level
设置为高于minimal
的值。
archive_mode
有三种可能的设置
关闭
开启
always
(PostgreSQL 9.5及更高版本)
当设置为on
或always
时,archive_command
中定义的命令将被执行以归档每个WAL段。
on
表示archive_command
仅在主服务器上应用。
always
表示archive_command
将应用于服务器是主服务器还是备用服务器。
按PostgreSQL版本分列的详细信息
archive_mode (PostgreSQL 17)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 16)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 15)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 14)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 13)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 12)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 11)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 10)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 9.6)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 9.5)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 枚举 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | always, on, off |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 | |
挂起重启 | false |
文档: archive_mode
archive_mode (PostgreSQL 9.4)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 布尔值 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 |
文档: archive_mode
archive_mode (PostgreSQL 9.3)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 布尔值 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 |
文档: archive_mode
archive_mode (PostgreSQL 9.2)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 布尔值 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 |
文档: archive_mode
archive_mode (PostgreSQL 9.1)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 布尔值 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 |
文档: archive_mode
archive_mode (PostgreSQL 9.0)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 归档 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 布尔值 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 |
文档: archive_mode
archive_mode (PostgreSQL 8.4)
设置 | 关闭 |
单位 | |
类别 | 预写日志 / 设置 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 布尔值 |
来源 | 默认值 |
最小值 | |
最大值 | |
枚举值 | |
启动值 | 关闭 |
重置值 | 关闭 |
源文件 | |
源代码行 |
文档: archive_mode
archive_mode (PostgreSQL 8.3)
设置 | |
单位 | |
类别 | 预写日志 / 设置 |
简短描述 | 允许使用archive_command归档WAL文件。 |
额外描述 | |
上下文 | postmaster |
变量类型 | 布尔值 |
来源 | 默认值 |
最小值 | |
最大值 |
文档: archive_mode
更改历史记录
- PostgreSQL 9.5
- 添加了
always
模式 (提交ffd37740)
- 添加了
- PostgreSQL 8.3
- 添加 (提交f18dfc48)
源代码
/* Archive modes */ typedef enum ArchiveMode { ARCHIVE_MODE_OFF = 0, /* disabled */ ARCHIVE_MODE_ON, /* enabled while server is running normally */ ARCHIVE_MODE_ALWAYS /* enabled always (even during recovery) */ } ArchiveMode; extern int XLogArchiveMode;
在src/backend/access/transam/xlog.c中
/* User-settable parameters */ ... int XLogArchiveMode = ARCHIVE_MODE_OFF;
在src/backend/utils/misc/guc.c中
{ {"archive_mode", PGC_POSTMASTER, WAL_ARCHIVING, gettext_noop("Allows archiving of WAL files using archive_command."), NULL }, &XLogArchiveMode, ARCHIVE_MODE_OFF, archive_mode_options, NULL, NULL, NULL },
在src/backend/postmaster/postmaster.c中
if (XLogArchiveMode > ARCHIVE_MODE_OFF && wal_level == WAL_LEVEL_MINIMAL) ereport(ERROR, (errmsg("WAL archival cannot be enabled when wal_level is \"minimal\"")));
在src/backend/access/transam/xlogarchive.c中
/* * Create .done file forcibly to prevent the restored segment from being * archived again later. */ if (XLogArchiveMode != ARCHIVE_MODE_ALWAYS) XLogArchiveForceDone(xlogfname); else XLogArchiveNotify(xlogfname);
在src/backend/replication/walreceiver.c中
/* * Create .done file forcibly to prevent the streamed segment from * being archived later. */ XLogFileName(xlogfname, recvFileTLI, recvSegNo, wal_segment_size); if (XLogArchiveMode != ARCHIVE_MODE_ALWAYS) XLogArchiveForceDone(xlogfname); else XLogArchiveNotify(xlogfname);
参考文献
- PostgreSQL文档: archive_mode