参考
84 篇-
etcd v2.1.0 基准测试
物理机 GCE n1-highcpu-2 机器类型 1 块专用本地 SSD,挂载于 /var/lib/etcd 1 块专用慢速磁盘,用于操作系统 1.8 GB 内存 2 个 CPU etcd 版本 2.1.0 alpha etcd 集群 3 个 etcd 成员,每个成员运行在单台机器上 测试 引导另一台机器,并使用 hey HTTP 压力测试工具 向每个 etcd 成员发送请求。请参阅 基准测试操作指南 以获取详细操作说明。 性能 读取单一键 键大小(字节) 客户端数量 目标 etcd 服务器 …
物理机 GCE n1-highcpu-2 机器类型 1 块专用本地 SSD,挂载于 /var/lib/etcd 1 块专用慢速磁盘,用于操作系统 1.8 GB 内存 2 个 CPU etcd 版本 2.1.0 alpha etcd 集群 3 个 etcd 成员,每个成员运行在单台机器上 测试 引导另一台机器,并使用 hey HTTP 压力测试工具 向每个 etcd 成员发送请求。请参阅 基准测试操作指南 以获取详细操作说明。 性能 读取单一键 键大小(字节) 客户端数量 目标 etcd 服务器 …
-
etcd v2.2.0 基准测试
物理机 GCE n1-highcpu-2 机器类型 1 块专用本地 SSD,挂载为 etcd 数据目录 1 块专用慢速磁盘,用于操作系统 1.8 GB 内存 2 个 CPU etcd 集群 3 etcd 2.2.0 成员,每个成员运行在单台机器上。 详细版本: etcd Version: 2.2.0 Git SHA: e4561dd Go Version: go1.5 Go OS/Arch: linux/amd64 测试 在 etcd 集群外部引导另一台机器,并运行 hey HTTP 基准测试工 …
物理机 GCE n1-highcpu-2 机器类型 1 块专用本地 SSD,挂载为 etcd 数据目录 1 块专用慢速磁盘,用于操作系统 1.8 GB 内存 2 个 CPU etcd 集群 3 etcd 2.2.0 成员,每个成员运行在单台机器上。 详细版本: etcd Version: 2.2.0 Git SHA: e4561dd Go Version: go1.5 Go OS/Arch: linux/amd64 测试 在 etcd 集群外部引导另一台机器,并运行 hey HTTP 基准测试工 …
-
etcd v2.2.0-rc 基准测试
物理机 GCE n1-highcpu-2 机器类型 1 个专用本地 SSD,挂载于 /var/lib/etcd 1 个专用慢速磁盘,用于操作系统 1.8 GB 内存 2 个 CPU etcd 集群 3 etcd 2.2.0-rc 成员,每个成员运行在单台机器上。 详细版本: etcd Version: 2.2.0-alpha.1+git Git SHA: 59a5a7e Go Version: go1.4.2 Go OS/Arch: linux/amd64 此外,我们使用 3 个 etcd …
物理机 GCE n1-highcpu-2 机器类型 1 个专用本地 SSD,挂载于 /var/lib/etcd 1 个专用慢速磁盘,用于操作系统 1.8 GB 内存 2 个 CPU etcd 集群 3 etcd 2.2.0-rc 成员,每个成员运行在单台机器上。 详细版本: etcd Version: 2.2.0-alpha.1+git Git SHA: 59a5a7e Go Version: go1.4.2 Go OS/Arch: linux/amd64 此外,我们使用 3 个 etcd …
-
etcd v2.2.0-rc 内存基准测试
物理机 GCE n1-standard-2 机器类型 1 个专用本地 SSD,挂载于 /var/lib/etcd 1 个专用慢速磁盘,用于操作系统 7.5 GB 内存 2 个 CPU etcd etcd Version: 2.2.0-rc.0+git Git SHA: 103cb5c Go Version: go1.5 Go OS/Arch: linux/amd64 测试 启动一个由 3 个成员组成的 etcd 集群,每个成员使用 2 个核心。 键名的长度始终为 64 字节,这是一个合理的平均键 …
物理机 GCE n1-standard-2 机器类型 1 个专用本地 SSD,挂载于 /var/lib/etcd 1 个专用慢速磁盘,用于操作系统 7.5 GB 内存 2 个 CPU etcd etcd Version: 2.2.0-rc.0+git Git SHA: 103cb5c Go Version: go1.5 Go OS/Arch: linux/amd64 测试 启动一个由 3 个成员组成的 etcd 集群,每个成员使用 2 个核心。 键名的长度始终为 64 字节,这是一个合理的平均键 …
-
etcd v3 基准测试
物理机 GCE n1-highcpu-2 机器类型 1x 专用本地 SSD,挂载于 /var/lib/etcd 1x 专用慢速磁盘,用于操作系统 1.8 GB 内存 2x CPU etcd 版本 2.2.0 etcd 集群 1 个以 v3 演示模式运行的 etcd 成员 测试 使用 etcd v3 基准测试工具 。 性能 读取单一键 键大小(字节) 客户端数量 读取 QPS 第 90 百分位延迟(毫秒) 256 1 2716 0.4 256 64 16623 6.1 256 256 16622 …
物理机 GCE n1-highcpu-2 机器类型 1x 专用本地 SSD,挂载于 /var/lib/etcd 1x 专用慢速磁盘,用于操作系统 1.8 GB 内存 2x CPU etcd 版本 2.2.0 etcd 集群 1 个以 v3 演示模式运行的 etcd 成员 测试 使用 etcd v3 基准测试工具 。 性能 读取单一键 键大小(字节) 客户端数量 读取 QPS 第 90 百分位延迟(毫秒) 256 1 2716 0.4 256 64 16623 6.1 256 256 16622 …
-
监听内存使用量基准测试
说明 监听功能正处于积极开发中,其内存使用量可能随开发进展而变化。我们预计其内存使用量不会显著超过以下所述数值。 etcd 的一个核心目标是支持大量客户端执行海量监听操作。etcd 旨在支持 O(10k) 个客户端、O(100K) 个监听流(每个客户端约 O(10) 个监听流)以及 O(10M) 个总监听操作(每个监听流约 O(100) 个监听)。每个单独监听操作所消耗的内存占 etcd 整体内存使用量的最大部分,因此成为当前及未来优化的重点。 etcd 监听功能的三个相关组件会占用物理内存: …
说明 监听功能正处于积极开发中,其内存使用量可能随开发进展而变化。我们预计其内存使用量不会显著超过以下所述数值。 etcd 的一个核心目标是支持大量客户端执行海量监听操作。etcd 旨在支持 O(10k) 个客户端、O(100K) 个监听流(每个客户端约 O(10) 个监听流)以及 O(10M) 个总监听操作(每个监听流约 O(100) 个监听)。每个单独监听操作所消耗的内存占 etcd 整体内存使用量的最大部分,因此成为当前及未来优化的重点。 etcd 监听功能的三个相关组件会占用物理内存: …
-
存储内存使用量基准测试
etcd 存储的两个组件会占用物理内存。etcd 进程分配了一个 内存索引,用于加速键的查找。进程的 页缓存 由操作系统管理,用于存储从磁盘读取的最近访问数据,以便快速重用。 内存索引将所有键以 B 树 数据结构的形式存储,并附带指向磁盘数据(即值)的指针。B 树中的每个键可能包含多个指针,指向其值的不同版本。因此,内存索引的理论内存消耗可近似表示为以下公式: N * (c1 + avg_key_size) + N * (avg_versions_of_key) * (c2 + …
etcd 存储的两个组件会占用物理内存。etcd 进程分配了一个 内存索引,用于加速键的查找。进程的 页缓存 由操作系统管理,用于存储从磁盘读取的最近访问数据,以便快速重用。 内存索引将所有键以 B 树 数据结构的形式存储,并附带指向磁盘数据(即值)的指针。B 树中的每个键可能包含多个指针,指向其值的不同版本。因此,内存索引的理论内存消耗可近似表示为以下公式: N * (c1 + avg_key_size) + N * (avg_versions_of_key) * (c2 + …
-
基准测试
基准测试 etcd 性能基准测试结果将定期发布,并在以下各版本中持续追踪: etcd v2.1.0-alpha etcd v2.2.0-rc etcd v3 演示 内存使用基准 它记录了在不同场景下的预期内存使用情况。 etcd v2.2.0-rc
基准测试 etcd 性能基准测试结果将定期发布,并在以下各版本中持续追踪: etcd v2.1.0-alpha etcd v2.2.0-rc etcd v3 演示 内存使用基准 它记录了在不同场景下的预期内存使用情况。 etcd v2.2.0-rc
-
支持的平台
支持层级 etcd 可在不同平台上运行,但其提供的保证取决于平台的支持级别: Tier 1:由 etcd 维护者 完全支持;etcd 保证通过所有测试,包括功能测试和健壮性测试。 Tier 2:etcd 保证通过集成测试和端到端测试,但不保证通过功能测试或健壮性测试。 Tier 3:etcd 保证可构建,可能仅进行轻度测试(或未测试),因此应视为 不稳定。 当前支持 下表列出了当前支持的平台及其对应的 etcd 支持级别: 架构 操作系统 支持层级 维护者 AMD64 Linux 1 etcd …
支持层级 etcd 可在不同平台上运行,但其提供的保证取决于平台的支持级别: Tier 1:由 etcd 维护者 完全支持;etcd 保证通过所有测试,包括功能测试和健壮性测试。 Tier 2:etcd 保证通过集成测试和端到端测试,但不保证通过功能测试或健壮性测试。 Tier 3:etcd 保证可构建,可能仅进行轻度测试(或未测试),因此应视为 不稳定。 当前支持 下表列出了当前支持的平台及其对应的 etcd 支持级别: 架构 操作系统 支持层级 维护者 AMD64 Linux 1 etcd …
-
硬件推荐
etcd 在资源有限的开发或测试环境中通常运行良好;在笔记本电脑或廉价云主机上开发 etcd 是常见做法。然而,在生产环境中运行 etcd 集群时,遵循一些硬件建议有助于实现有效的系统管理。这些建议并非硬性规定,而是构建稳健生产部署的良好起点。和往常一样,部署前应使用模拟工作负载进行测试。 处理器核心 极少有 etcd 部署需要大量 CPU 资源。典型集群只需两到四个核心即可平稳运行。 高负载的 etcd 部署(例如服务数千个客户端或每秒处理数万个请求)通常受 CPU 限制,因为 etcd 可以 …
etcd 在资源有限的开发或测试环境中通常运行良好;在笔记本电脑或廉价云主机上开发 etcd 是常见做法。然而,在生产环境中运行 etcd 集群时,遵循一些硬件建议有助于实现有效的系统管理。这些建议并非硬性规定,而是构建稳健生产部署的良好起点。和往常一样,部署前应使用模拟工作负载进行测试。 处理器核心 极少有 etcd 部署需要大量 CPU 资源。典型集群只需两到四个核心即可平稳运行。 高负载的 etcd 部署(例如服务数千个客户端或每秒处理数万个请求)通常受 CPU 限制,因为 etcd 可以 …
-
配置选项
可以通过以下方式配置 etcd: 命令行标志 环境变量:每个标志都有一个对应的环境变量,其名称与标志相同,但前缀为 ETCD_,并以全大写和 蛇形命名法 格式化。例如,--some-flag 对应 ETCD_SOME_FLAG。 配置文件 警告 请注意:如果混合使用配置选项,则以下规则适用。 命令行标志优先于环境变量。 如果提供了 配置文件,则所有命令行标志和环境变量均被 忽略。 命令行标志 以下以 --flag-name DEFAULT_VALUE 格式展示命令行标志。 说明 本导入参考文档保 …
可以通过以下方式配置 etcd: 命令行标志 环境变量:每个标志都有一个对应的环境变量,其名称与标志相同,但前缀为 ETCD_,并以全大写和 蛇形命名法 格式化。例如,--some-flag 对应 ETCD_SOME_FLAG。 配置文件 警告 请注意:如果混合使用配置选项,则以下规则适用。 命令行标志优先于环境变量。 如果提供了 配置文件,则所有命令行标志和环境变量均被 忽略。 命令行标志 以下以 --flag-name DEFAULT_VALUE 格式展示命令行标志。 说明 本导入参考文档保 …
-
API 参考:并发
本文 API 参考由命名的 .proto 文件自动生成。 服务 Lock (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto) 锁服务将客户端锁功能以 gRPC 接口的形式暴露。 方法 请求类型 响应类型 描述 Lock LockRequest LockResponse Lock 在指定名称的锁上获取分布式共享锁。成功时,将返回一个唯一键,该键在调用方持有锁期间持续存在。该键可与事务配合使用,以安全地确保对 etcd 的更新仅在持有锁所有权时发 …
本文 API 参考由命名的 .proto 文件自动生成。 服务 Lock (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto) 锁服务将客户端锁功能以 gRPC 接口的形式暴露。 方法 请求类型 响应类型 描述 Lock LockRequest LockResponse Lock 在指定名称的锁上获取分布式共享锁。成功时,将返回一个唯一键,该键在调用方持有锁期间持续存在。该键可与事务配合使用,以安全地确保对 etcd 的更新仅在持有锁所有权时发 …
-
API 参考
本文 API 参考由命名的 .proto 文件自动生成。 服务 Auth (api/etcdserverpb/rpc.proto) 方法 请求类型 响应类型 描述 AuthEnable AuthEnableRequest AuthEnableResponse AuthEnable 启用身份认证。 AuthDisable AuthDisableRequest AuthDisableResponse AuthDisable 禁用身份认证。 AuthStatus AuthStatusRequest …
本文 API 参考由命名的 .proto 文件自动生成。 服务 Auth (api/etcdserverpb/rpc.proto) 方法 请求类型 响应类型 描述 AuthEnable AuthEnableRequest AuthEnableResponse AuthEnable 启用身份认证。 AuthDisable AuthDisableRequest AuthDisableResponse AuthDisable 禁用身份认证。 AuthStatus AuthStatusRequest …
-
etcd 功能
本文概述了 etcd 的各项功能,旨在帮助用户更好地理解这些功能及其相关弃用流程。若想了解 etcd 功能的开发方式,请参阅 开发指南 。 etcd 功能分为三个阶段:实验性、稳定和不安全。可通过运行 etcd --help 获取功能列表。 实验性 为获取早期反馈,任何新功能通常以实验性功能的形式添加。可通过标志名称识别实验性功能,其名称应以 --experimental 为前缀。使用实验性功能时,请注意以下事项: 由于缺乏用户测试,该功能可能存在缺陷。启用该功能可能无法按预期工作。 默认情况下 …
本文概述了 etcd 的各项功能,旨在帮助用户更好地理解这些功能及其相关弃用流程。若想了解 etcd 功能的开发方式,请参阅 开发指南 。 etcd 功能分为三个阶段:实验性、稳定和不安全。可通过运行 etcd --help 获取功能列表。 实验性 为获取早期反馈,任何新功能通常以实验性功能的形式添加。可通过标志名称识别实验性功能,其名称应以 --experimental 为前缀。使用实验性功能时,请注意以下事项: 由于缺乏用户测试,该功能可能存在缺陷。启用该功能可能无法按预期工作。 默认情况下 …
-
系统限制
请求大小限制 etcd 专为处理典型的元数据类小规模键值对而设计。虽然较大请求也能正常工作,但可能增加其他请求的延迟。默认情况下,单个请求的大小上限为 1.5 MiB。此限制可通过 etcd 服务器的 --max-request-bytes 标志进行配置。 存储容量限制 默认存储大小限制为 2 GiB,可通过 --quota-backend-bytes 标志进行配置。在常规环境中,建议最大大小为 8 GiB,若配置值超过此限制,etcd 在启动时会发出警告。
请求大小限制 etcd 专为处理典型的元数据类小规模键值对而设计。虽然较大请求也能正常工作,但可能增加其他请求的延迟。默认情况下,单个请求的大小上限为 1.5 MiB。此限制可通过 etcd 服务器的 --max-request-bytes 标志进行配置。 存储容量限制 默认存储大小限制为 2 GiB,可通过 --quota-backend-bytes 标志进行配置。在常规环境中,建议最大大小为 8 GiB,若配置值超过此限制,etcd 在启动时会发出警告。
-
术语表
本文定义了 etcd 文档、命令行和源代码中使用的各种术语。 告警 当集群需要运维人员干预以保持可靠性时,etcd 服务器会触发告警。 身份认证 身份认证用于管理用户对 etcd 资源的访问权限。 客户端 客户端连接到 etcd 集群,以发出服务请求,例如获取键值对、写入数据或监听更新。 集群 集群由多个成员组成。 每个成员中的节点遵循 Raft 共识协议来复制日志。集群从成员接收提案,进行提交,并应用到本地存储。 压缩 压缩会丢弃指定修订版本之前的所有 etcd 事件历史记录和已被覆盖的键。该 …
本文定义了 etcd 文档、命令行和源代码中使用的各种术语。 告警 当集群需要运维人员干预以保持可靠性时,etcd 服务器会触发告警。 身份认证 身份认证用于管理用户对 etcd 资源的访问权限。 客户端 客户端连接到 etcd 集群,以发出服务请求,例如获取键值对、写入数据或监听更新。 集群 集群由多个成员组成。 每个成员中的节点遵循 Raft 共识协议来复制日志。集群从成员接收提案,进行提交,并应用到本地存储。 压缩 压缩会丢弃指定修订版本之前的所有 etcd 事件历史记录和已被覆盖的键。该 …
-
Go 模块
etcd 项目(自版本 3.5 起)采用多个 golang 模块 ,托管于 单个仓库 中。 以下是各个模块: go.etcd.io/etcd/api/v3 - 包含 API 定义 (如 protos 与 proto 生成的库),定义了 etcd 客户端与服务器之间的通信协议。 go.etcd.io/etcd/pkg/v3 - etcd 使用的通用工具包集合,不针对 etcd 本身。仅当某个包未来可能被移出至独立仓库时,才应归入此处。请避免在此处添加自身带有大量依赖的代码,因为这些依赖会自动成为客 …
etcd 项目(自版本 3.5 起)采用多个 golang 模块 ,托管于 单个仓库 中。 以下是各个模块: go.etcd.io/etcd/api/v3 - 包含 API 定义 (如 protos 与 proto 生成的库),定义了 etcd 客户端与服务器之间的通信协议。 go.etcd.io/etcd/pkg/v3 - etcd 使用的通用工具包集合,不针对 etcd 本身。仅当某个包未来可能被移出至独立仓库时,才应归入此处。请避免在此处添加自身带有大量依赖的代码,因为这些依赖会自动成为客 …
-
日志记录约定
etcd 使用 zap 库记录应用程序输出,输出按 级别 进行分类。日志消息的级别依据以下约定确定: DebugLevel 日志通常数量很多,通常在生产环境中禁用。 示例: 向远程对等成员发送一条普通消息 将日志条目写入磁盘 InfoLevel 为默认的日志优先级。 示例: 启动配置 开始创建快照 向集群中添加新节点 向认证子系统中添加新用户 WarnLevel 日志比 Info 日志更为重要,但无需逐条人工审查。 示例: 无法向远程对等成员发送 Raft 消息 在配置的选举超时时间内未收到心跳 …
etcd 使用 zap 库记录应用程序输出,输出按 级别 进行分类。日志消息的级别依据以下约定确定: DebugLevel 日志通常数量很多,通常在生产环境中禁用。 示例: 向远程对等成员发送一条普通消息 将日志条目写入磁盘 InfoLevel 为默认的日志优先级。 示例: 启动配置 开始创建快照 向集群中添加新节点 向认证子系统中添加新用户 WarnLevel 日志比 Info 日志更为重要,但无需逐条人工审查。 示例: 无法向远程对等成员发送 Raft 消息 在配置的选举超时时间内未收到心跳 …
-
发现服务协议
发现服务协议有助于新 etcd 成员在集群引导阶段,通过共享的发现令牌和端点列表,发现集群中的所有其他成员。 发现服务协议仅在集群引导阶段使用,不可用于运行时重配置或集群监控。 该协议使用新的发现令牌来引导一个唯一的 etcd 集群。请注意,一个发现令牌只能代表一个 etcd 集群。只要该令牌的发现协议已启动,即使中途失败,也不得用于引导另一个 etcd 集群。 本文其余部分将通过示例介绍发现过程,这些示例对应自托管发现集群。 请注意,本文仅适用于 v3 发现机制。有关 v2 发现 的更多详情, …
发现服务协议有助于新 etcd 成员在集群引导阶段,通过共享的发现令牌和端点列表,发现集群中的所有其他成员。 发现服务协议仅在集群引导阶段使用,不可用于运行时重配置或集群监控。 该协议使用新的发现令牌来引导一个唯一的 etcd 集群。请注意,一个发现令牌只能代表一个 etcd 集群。只要该令牌的发现协议已启动,即使中途失败,也不得用于引导另一个 etcd 集群。 本文其余部分将通过示例介绍发现过程,这些示例对应自托管发现集群。 请注意,本文仅适用于 v3 发现机制。有关 v2 发现 的更多详情, …
-
发现服务协议
说明 本页介绍的是旧的 v2 发现协议,该协议已在 etcd 3.7 中移除。对于新的 v3.7 部署,请使用 v3 发现协议 。 发现服务协议有助于新 etcd 成员在集群引导阶段通过共享的发现 URL 发现集群中的所有其他成员。 发现服务协议仅在集群引导阶段使用,不可用于运行时重配置或集群监控。 该协议使用新的发现令牌来引导一个唯一的 etcd 集群。请注意,一个发现令牌只能代表一个 etcd 集群。只要该令牌的发现协议已启动,即使中途失败,也不得用于引导另一个 etcd 集群。 本文其余 …
说明 本页介绍的是旧的 v2 发现协议,该协议已在 etcd 3.7 中移除。对于新的 v3.7 部署,请使用 v3 发现协议 。 发现服务协议有助于新 etcd 成员在集群引导阶段通过共享的发现 URL 发现集群中的所有其他成员。 发现服务协议仅在集群引导阶段使用,不可用于运行时重配置或集群监控。 该协议使用新的发现令牌来引导一个唯一的 etcd 集群。请注意,一个发现令牌只能代表一个 etcd 集群。只要该令牌的发现协议已启动,即使中途失败,也不得用于引导另一个 etcd 集群。 本文其余 …
-
指标
etcd 使用 Prometheus 进行指标报告。指标可用于实时监控和调试。etcd 不会持久化其指标;若成员重启,指标将被重置。 查看可用指标最简单的方法是使用 cURL 访问指标端点 /metrics。其格式详见 Prometheus 文档 。 请按照 Prometheus 入门指南 启动 Prometheus 服务器,以收集 etcd 指标。 指标命名遵循建议的 Prometheus 最佳实践 。指标名称以 etcd 或 etcd_debugging 作为命名空间前缀,并可包含子系统前缀 …
etcd 使用 Prometheus 进行指标报告。指标可用于实时监控和调试。etcd 不会持久化其指标;若成员重启,指标将被重置。 查看可用指标最简单的方法是使用 cURL 访问指标端点 /metrics。其格式详见 Prometheus 文档 。 请按照 Prometheus 入门指南 启动 Prometheus 服务器,以收集 etcd 指标。 指标命名遵循建议的 Prometheus 最佳实践 。指标名称以 etcd 或 etcd_debugging 作为命名空间前缀,并可包含子系统前缀 …
-
库和工具
请注意,以下第三方库和工具未托管在 https://github.com/etcd-io 下,也未经 etcd 团队测试或维护。使用前应自行阅读相关资料并评估其可靠性。 工具 etcdctl - etcd 的命令行客户端 etcd-dump - 用于导出/恢复 etcd 的命令行工具 etcd-fs - etcd 的 FUSE 文件系统 etcddir - 实时同步 etcd 与本地目录的工具,支持 Windows 和 Linux etcd-browser - 基于 AngularJS 的 …
请注意,以下第三方库和工具未托管在 https://github.com/etcd-io 下,也未经 etcd 团队测试或维护。使用前应自行阅读相关资料并评估其可靠性。 工具 etcdctl - etcd 的命令行客户端 etcd-dump - 用于导出/恢复 etcd 的命令行工具 etcd-fs - etcd 的 FUSE 文件系统 etcddir - 实时同步 etcd 与本地目录的工具,支持 Windows 和 Linux etcd-browser - 基于 AngularJS 的 …
-
常见问题
etcd,通用 etcd 是什么? etcd 是一个一致性的分布式键值存储。主要用于分布式系统中的独立协调服务,专为存储可完全容纳在内存中的少量数据而设计。 如何发音 etcd? etcd 读作 /ˈɛtsiːdiː/,意为“分布式 etc 目录”。 客户端是否需要向 etcd 领导者发送请求? Raft 采用领导者机制;所有需要集群共识的客户端请求均由领导者处理。然而,客户端无需知晓哪个节点是领导者。任何发送至跟随者的需共识请求将自动转发至领导者。无需共识的请求(例如可串行化读取)可由集群任意 …
etcd,通用 etcd 是什么? etcd 是一个一致性的分布式键值存储。主要用于分布式系统中的独立协调服务,专为存储可完全容纳在内存中的少量数据而设计。 如何发音 etcd? etcd 读作 /ˈɛtsiːdiː/,意为“分布式 etc 目录”。 客户端是否需要向 etcd 领导者发送请求? Raft 采用领导者机制;所有需要集群共识的客户端请求均由领导者处理。然而,客户端无需知晓哪个节点是领导者。任何发送至跟随者的需共识请求将自动转发至领导者。无需共识的请求(例如可串行化读取)可由集群任意 …
-
功能门控
本文概述了管理员可在 etcd 中指定的各种功能门控。 请参阅 特性阶段 了解功能各阶段的说明。 概述 功能门控是一组描述 etcd 特性的 key=value 键值对。 可使用 etcd 的 --feature-gates 命令行标志来开启或关闭这些特性。 etcd 允许启用或禁用一组功能门控。 使用 -h 标志查看全部功能门控列表。 要设置功能门控,请使用 --feature-gates 标志,并在命令行中指定功能对的列表: …
本文概述了管理员可在 etcd 中指定的各种功能门控。 请参阅 特性阶段 了解功能各阶段的说明。 概述 功能门控是一组描述 etcd 特性的 key=value 键值对。 可使用 etcd 的 --feature-gates 命令行标志来开启或关闭这些特性。 etcd 允许启用或禁用一组功能门控。 使用 -h 标志查看全部功能门控列表。 要设置功能门控,请使用 --feature-gates 标志,并在命令行中指定功能对的列表: …
-
12. 其他配置段
下述配置段较少使用,通常仅支持少量参数。它们之间不存在隐式关联。所有段均通过单一关键字启动。在 “global” 段之前禁止出现任何此类段。部分段的支持可能受构建选项限制(例如与 SSL 相关的任何功能)。 12.1. 跟踪 为调试目的,可激活 HAProxy 子系统上的追踪功能。该功能将输出特定子系统的调试消息,是诊断问题的强力工具。可通过 CLI 动态配置追踪。也可在配置文件中通过专用 “traces” 段预先定义部分设置。有关追踪的更多详情,请参阅管理指南。它仍然是用于复杂调试会话的开发 …
下述配置段较少使用,通常仅支持少量参数。它们之间不存在隐式关联。所有段均通过单一关键字启动。在 “global” 段之前禁止出现任何此类段。部分段的支持可能受构建选项限制(例如与 SSL 相关的任何功能)。 12.1. 跟踪 为调试目的,可激活 HAProxy 子系统上的追踪功能。该功能将输出特定子系统的调试消息,是诊断问题的强力工具。可通过 CLI 动态配置追踪。也可在配置文件中通过专用 “traces” 段预先定义部分设置。有关追踪的更多详情,请参阅管理指南。它仍然是用于复杂调试会话的开发 …
-
11. 粘性表与对等节点
在 HAProxy 中,粘性表是一种机制,允许将一定数量的信息和指标与特定类型的键关联,并在最后一次更新后持续一定时间。这可视为表格中的一行多列数据,其中行号由键值决定,各列代表不同的衡量标准。 粘性表最初设计用于存储客户端-服务器会话粘性信息,以维持两者之间的持久会话。客户端连接或发送请求时,将通过一个标识符(源地址、Cookie 或 URL 参数)进行识别,并将选定的服务器与该标识符关联存储在粘性表中,持续时间为可配置时长,以便来自同一客户端的后续访问可自动路由至同一服务器,即客户端创建其 …
在 HAProxy 中,粘性表是一种机制,允许将一定数量的信息和指标与特定类型的键关联,并在最后一次更新后持续一定时间。这可视为表格中的一行多列数据,其中行号由键值决定,各列代表不同的衡量标准。 粘性表最初设计用于存储客户端-服务器会话粘性信息,以维持两者之间的持久会话。客户端连接或发送请求时,将通过一个标识符(源地址、Cookie 或 URL 参数)进行识别,并将选定的服务器与该标识符关联存储在粘性表中,持续时间为可配置时长,以便来自同一客户端的后续访问可自动路由至同一服务器,即客户端创建其 …
-
10. FastCGI 应用程序
HAProxy 可以向 Responder FastCGI 应用发送 HTTP 请求。此功能自 HAProxy 2.1 版本起引入。为此,必须将服务器配置为使用 FastCGI 协议(在服务器行中使用关键字 “proto fcgi”),且后端管理这些服务器时,必须配置并使用一个 FastCGI 应用(在代理段中使用关键字 “use-fcgi-app”)。可以定义多个 FastCGI 应用,但每个后端在同一时间只能使用其中一个。 HAProxy 实现了 FastCGI 规范中针对 …
HAProxy 可以向 Responder FastCGI 应用发送 HTTP 请求。此功能自 HAProxy 2.1 版本起引入。为此,必须将服务器配置为使用 FastCGI 协议(在服务器行中使用关键字 “proto fcgi”),且后端管理这些服务器时,必须配置并使用一个 FastCGI 应用(在代理段中使用关键字 “use-fcgi-app”)。可以定义多个 FastCGI 应用,但每个后端在同一时间只能使用其中一个。 HAProxy 实现了 FastCGI 规范中针对 …
-
版本命令(version)
显示已安装的 pgBackRest 版本。 命令选项 输出格式选项(--output) 输出类型。 支持以下输出类型: text — 以文本形式显示已安装的 pgBackRest 版本。 num — 以整数形式显示已安装的 pgBackRest 版本。 default: text example: --output=num
显示已安装的 pgBackRest 版本。 命令选项 输出格式选项(--output) 输出类型。 支持以下输出类型: text — 以文本形式显示已安装的 pgBackRest 版本。 num — 以整数形式显示已安装的 pgBackRest 版本。 default: text example: --output=num
-
9. 支持的过滤器
以下是官方支持的过滤器及其所接受的参数列表。根据编译选项的不同,部分过滤器可能不可用。可用过滤器列表会在 haproxy -vv 中报告。 另请参见:“filter” 9.1. 跟踪 filter trace [name <name>] [random-forwarding] [max-fwd <max>] [hexdump] 参数: <name> 是在消息中报告的任意名称。未提供名称时使用 "TRACE"。 <quiet> 禁止输出跟踪消息。 <random-forwarding> 启用已解 …
以下是官方支持的过滤器及其所接受的参数列表。根据编译选项的不同,部分过滤器可能不可用。可用过滤器列表会在 haproxy -vv 中报告。 另请参见:“filter” 9.1. 跟踪 filter trace [name <name>] [random-forwarding] [max-fwd <max>] [hexdump] 参数: <name> 是在消息中报告的任意名称。未提供名称时使用 "TRACE"。 <quiet> 禁止输出跟踪消息。 <random-forwarding> 启用已解 …
-
版本历史
版本 4.1.5 发布于 2026-08-12 兼容性改进 兼容 PostgreSQL 14.24、15.19、16.15、17.11 与 18.6(Alexander Kukushkin) 添加用于限制逻辑解码输出插件的新 GUC output_plugin_libraries。 改进 将 REST API 连接重置的日志级别从 WARNING 调整为 DEBUG(Kyle McLaren) 屏蔽常见的“客户端在写入中途离开”类日志,同时不影响真正的非连接类错误处理。 错误修复 修正 …
版本 4.1.5 发布于 2026-08-12 兼容性改进 兼容 PostgreSQL 14.24、15.19、16.15、17.11 与 18.6(Alexander Kukushkin) 添加用于限制逻辑解码输出插件的新 GUC output_plugin_libraries。 改进 将 REST API 连接重置的日志级别从 WARNING 调整为 DEBUG(Kyle McLaren) 屏蔽常见的“客户端在写入中途离开”类日志,同时不影响真正的非连接类错误处理。 错误修复 修正 …
-
验证命令(verify)
verify 用于验证仓库中的备份和归档是否有效。 命令选项 输出格式选项(--output) 输出类型。 支持以下输出类型: none — 不输出验证信息。 text — 将验证信息输出到标准输出。 default: none example: --output=text 备份集选项(--set) 要验证的备份集。 验证与指定备份集关联的所有数据库文件和归档文件。 example: --set=20150131-153358F_20150131-153401I 详细输出选项 …
verify 用于验证仓库中的备份和归档是否有效。 命令选项 输出格式选项(--output) 输出类型。 支持以下输出类型: none — 不输出验证信息。 text — 将验证信息输出到标准输出。 default: none example: --output=text 备份集选项(--set) 要验证的备份集。 验证与指定备份集关联的所有数据库文件和归档文件。 example: --set=20150131-153358F_20150131-153401I 详细输出选项 …
-
常见问题
本节收录了关于 Patroni 最常见问题的解答,各子节聚焦于不同类别的问题。 希望这些内容能帮你解答大多数疑问。如果仍有疑问或遇到意外问题,请参阅 交流 和 报告问题 ,了解如何获取帮助或提交问题报告。 与其他高可用方案的比较 为什么 Patroni 需要独立的 DCS 节点集群,而 repmgr 等其他方案不需要? 实现高可用方案有多种不同方式,各有优缺点。 repmgr 等软件通过节点间通信来决定何时采取行动。 而 Patroni 则依赖存储在 DCS 中的状态,DCS 是 …
本节收录了关于 Patroni 最常见问题的解答,各子节聚焦于不同类别的问题。 希望这些内容能帮你解答大多数疑问。如果仍有疑问或遇到意外问题,请参阅 交流 和 报告问题 ,了解如何获取帮助或提交问题报告。 与其他高可用方案的比较 为什么 Patroni 需要独立的 DCS 节点集群,而 repmgr 等其他方案不需要? 实现高可用方案有多种不同方式,各有优缺点。 repmgr 等软件通过节点间通信来决定何时采取行动。 而 Patroni 则依赖存储在 DCS 中的状态,DCS 是 …
-
停止命令(stop)
禁止任何新的 pgBackRest 进程运行。默认情况下,正在运行的进程将被允许正常完成。使用 --force 选项可强制终止正在运行的进程。 stop 命令执行完成后,此后尝试运行的 pgBackRest 进程将返回错误。详情与示例请参见 启动与停止 。 命令选项 强制选项(--force) 强制停止所有 pgBackRest 进程。 此选项会向所有正在运行的 pgBackRest 进程发送 TERM 信号,实现立即的优雅关闭。注意,这也会关闭由其他系统发起、但在当前系统上运行的远程进程。例如 …
禁止任何新的 pgBackRest 进程运行。默认情况下,正在运行的进程将被允许正常完成。使用 --force 选项可强制终止正在运行的进程。 stop 命令执行完成后,此后尝试运行的 pgBackRest 进程将返回错误。详情与示例请参见 启动与停止 。 命令选项 强制选项(--force) 强制停止所有 pgBackRest 进程。 此选项会向所有正在运行的 pgBackRest 进程发送 TERM 信号,实现立即的优雅关闭。注意,这也会关闭由其他系统发起、但在当前系统上运行的远程进程。例如 …
-
7. ACL 与样本提取
HAProxy 可从请求或响应流、客户端或服务器信息、表格、环境信息等来源提取数据。提取此类数据的动作称为获取样本。获取后,这些样本可用于多种用途,例如作为粘性表的键,但最常见的用法是将其与称为模式的预定义常量数据进行匹配。 7.1. ACL 基础 访问控制列表(ACL)用于声明一种命名的匹配方法,以将任意信息与预先定义的模式列表进行比较。ACL 可视为大多数编程语言中函数的实际等价物,其声明使得该方法可在后续需要时被调用。ACL 的评估结果仅返回匹配或不匹配,这与许多编程语言中的布尔值类似。 …
HAProxy 可从请求或响应流、客户端或服务器信息、表格、环境信息等来源提取数据。提取此类数据的动作称为获取样本。获取后,这些样本可用于多种用途,例如作为粘性表的键,但最常见的用法是将其与称为模式的预定义常量数据进行匹配。 7.1. ACL 基础 访问控制列表(ACL)用于声明一种命名的匹配方法,以将任意信息与预先定义的模式列表进行比较。ACL 可视为大多数编程语言中函数的实际等价物,其声明使得该方法可在后续需要时被调用。ACL 的评估结果仅返回匹配或不匹配,这与许多编程语言中的布尔值类似。 …
-
启动命令(start)
如果 pgBackRest 进程之前已通过 stop 命令停止,可使用 start 命令重新允许它们运行。注意,此命令不会立即启动任何 pgBackRest 进程,只是解除运行限制。详情与示例请参见 启动与停止 。 通用选项 允许以 root 用户运行选项(--allow-root) 允许命令以 root 用户运行。 默认情况下,仅 restore 命令可以由 root 用户运行,因为该命令会谨慎管理文件所有权。以 root 运行其他命令可能创建由 root 所有的文件(例如仓库中的文件 …
如果 pgBackRest 进程之前已通过 stop 命令停止,可使用 start 命令重新允许它们运行。注意,此命令不会立即启动任何 pgBackRest 进程,只是解除运行限制。详情与示例请参见 启动与停止 。 通用选项 允许以 root 用户运行选项(--allow-root) 允许命令以 root 用户运行。 默认情况下,仅 restore 命令可以由 root 用户运行,因为该命令会谨慎管理文件所有权。以 root 运行其他命令可能创建由 root 所有的文件(例如仓库中的文件 …
-
6. 缓存
HAProxy 提供一个缓存,专为小型对象(如 favicon、CSS 等)的缓存而设计。 这是一个极简、低维护的缓存,运行于内存中。 缓存基于所有线程共享的内存区域,并划分为 1kB 的块。 若某个对象不再被使用,则可将其删除以存储新对象,且与其过期日期无关。当尝试分配新对象时,将优先删除最旧的对象。 缓存使用 Host 头和 URI 的哈希值作为键。 可通过 Unix 套接字命令 “show cache” 查看缓存状态,详见管理指南 第 9.3 节 “Unix 套接字命令”。 当对象从缓存 …
HAProxy 提供一个缓存,专为小型对象(如 favicon、CSS 等)的缓存而设计。 这是一个极简、低维护的缓存,运行于内存中。 缓存基于所有线程共享的内存区域,并划分为 1kB 的块。 若某个对象不再被使用,则可将其删除以存储新对象,且与其过期日期无关。当尝试分配新对象时,将优先删除最旧的对象。 缓存使用 Host 头和 URI 的哈希值作为键。 可通过 Unix 套接字命令 “show cache” 查看缓存状态,详见管理指南 第 9.3 节 “Unix 套接字命令”。 当对象从缓存 …
-
Stanza 升级命令(stanza-upgrade)
将 PostgreSQL 升级到新的主版本后,必须立即将所有 pgBackRest 配置中的 pg-path 更新为新的数据库位置,然后运行 stanza-upgrade 命令。若主机上配置了多个仓库,每个仓库都会执行 stanza 升级。若数据库处于离线状态,请使用 --no-online 选项。 命令选项 在线选项(--online) 在线更新集群。 指定 --no-online 可阻止 pgBackRest 在升级 stanza 时连接 PostgreSQL。 default: y …
将 PostgreSQL 升级到新的主版本后,必须立即将所有 pgBackRest 配置中的 pg-path 更新为新的数据库位置,然后运行 stanza-upgrade 命令。若主机上配置了多个仓库,每个仓库都会执行 stanza 升级。若数据库处于离线状态,请使用 --no-online 选项。 命令选项 在线选项(--online) 在线更新集群。 指定 --no-online 可阻止 pgBackRest 在升级 stanza 时连接 PostgreSQL。 default: y …
-
5. 绑定与服务器选项
“bind”、“server” 和 “default-server” 关键字支持多种设置,具体取决于构建选项以及 HAProxy 所基于的系统。这些设置通常由一个单词组成,有时后接一个值,与 “bind” 或 “server” 语句位于同一行。所有这些选项均在本节中描述。 5.1. 绑定选项 “bind” 关键字支持若干设置,这些设置均作为参数在同一行中传递。参数的排列顺序无关紧要,只要它们出现在绑定地址之后即可。所有这些参数均为可选。部分参数为单个单词(布尔值),而其他参数则需要在其后提供值 …
“bind”、“server” 和 “default-server” 关键字支持多种设置,具体取决于构建选项以及 HAProxy 所基于的系统。这些设置通常由一个单词组成,有时后接一个值,与 “bind” 或 “server” 语句位于同一行。所有这些选项均在本节中描述。 5.1. 绑定选项 “bind” 关键字支持若干设置,这些设置均作为参数在同一行中传递。参数的排列顺序无关紧要,只要它们出现在绑定地址之后即可。所有这些参数均为可选。部分参数为单个单词(布尔值),而其他参数则需要在其后提供值 …
-
Stanza 删除命令(stanza-delete)
stanza-delete 命令用于删除仓库中与指定 stanza 关联的所有数据。stanza 是 pgBackRest 中用于标识一个 PostgreSQL 集群备份配置的逻辑名称。 警告: 此命令会永久删除指定 stanza 在 pgBackRest 仓库中的所有备份和归档数据,请谨慎使用。 删除 stanza 的步骤如下: 停止与该 stanza 关联的 PostgreSQL 集群(或使用 --force 选项强制删除)。 在执行 stanza-delete 命令的主机上先运行 stop …
stanza-delete 命令用于删除仓库中与指定 stanza 关联的所有数据。stanza 是 pgBackRest 中用于标识一个 PostgreSQL 集群备份配置的逻辑名称。 警告: 此命令会永久删除指定 stanza 在 pgBackRest 仓库中的所有备份和归档数据,请谨慎使用。 删除 stanza 的步骤如下: 停止与该 stanza 关联的 PostgreSQL 集群(或使用 --force 选项强制删除)。 在执行 stanza-delete 命令的主机上先运行 stop …
-
4. 代理
代理配置可位于一组段中: defaults [<name>] [ from <defaults_name> ] frontend <name> [ from <defaults_name> ] backend <name> [ from <defaults_name> ] listen <name> [ from <defaults_name> ] 前端段描述了一组用于接收客户端连接的监听套接字。 后端段描述了一组代理将连接以转发传入连接的服务器。 段 “listen” 定义了一个完整的代理, …
代理配置可位于一组段中: defaults [<name>] [ from <defaults_name> ] frontend <name> [ from <defaults_name> ] backend <name> [ from <defaults_name> ] listen <name> [ from <defaults_name> ] 前端段描述了一组用于接收客户端连接的监听套接字。 后端段描述了一组代理将连接以转发传入连接的服务器。 段 “listen” 定义了一个完整的代理, …
-
Stanza 创建命令(stanza-create)
stanza-create 命令须在 pgbackrest.conf 中完成 stanza 配置后再执行(stanza 是 pgBackRest 中用于标识一个 PostgreSQL 集群备份配置的逻辑名称)。若配置了多个仓库,stanza-create 会在每个仓库上分别建立 stanza。已创建的 stanza 会被跳过,因此即便新增了仓库,也可以随时安全地重复执行 stanza-create。 更多信息和示例,请参见 创建 Stanza 。 命令选项 在线选项(--online) 在在线集 …
stanza-create 命令须在 pgbackrest.conf 中完成 stanza 配置后再执行(stanza 是 pgBackRest 中用于标识一个 PostgreSQL 集群备份配置的逻辑名称)。若配置了多个仓库,stanza-create 会在每个仓库上分别建立 stanza。已创建的 stanza 会被跳过,因此即便新增了仓库,也可以随时安全地重复执行 stanza-create。 更多信息和示例,请参见 创建 Stanza 。 命令选项 在线选项(--online) 在在线集 …
-
3. 全局段
“global” 段中的参数为进程级配置,通常与操作系统相关。这些参数通常只需一次性设置,一旦配置正确便无需再修改。部分参数在命令行中也有对应选项。 以下关键字在 “global” 段中受支持: 进程管理与安全 51degrees-allow-unmatched 51degrees-cache-size 51degrees-data-file 51degrees-difference 51degrees-drift 51degrees-property-name-list …
“global” 段中的参数为进程级配置,通常与操作系统相关。这些参数通常只需一次性设置,一旦配置正确便无需再修改。部分参数在命令行中也有对应选项。 以下关键字在 “global” 段中受支持: 进程管理与安全 51degrees-allow-unmatched 51degrees-cache-size 51degrees-data-file 51degrees-difference 51degrees-drift 51degrees-property-name-list …
-
服务器心跳命令(server-ping)
向 pgBackRest TLS 服务器发送 ping,确认其正在接受连接。此命令仅作为存活性检查,不进行身份验证。 若命令行中未指定主机,则使用 tls-server-host 选项的值。 命令选项 TLS 服务器地址选项(--tls-server-address) TLS 服务器地址。 服务器监听客户端请求的 IP 地址。 default: localhost example: --tls-server-address=* TLS 服务器端口选项(--tls-server-port) TLS …
向 pgBackRest TLS 服务器发送 ping,确认其正在接受连接。此命令仅作为存活性检查,不进行身份验证。 若命令行中未指定主机,则使用 tls-server-host 选项的值。 命令选项 TLS 服务器地址选项(--tls-server-address) TLS 服务器地址。 服务器监听客户端请求的 IP 地址。 default: localhost example: --tls-server-address=* TLS 服务器端口选项(--tls-server-port) TLS …
-
2. 配置 HAProxy
2.1. 配置文件格式 HAProxy 的配置过程涉及三个主要参数来源: 命令行参数,始终具有最高优先级 配置文件,其格式在此处描述 运行进程的环境,若显式引用了某些环境变量 配置文件采用一种相对简单的分层格式,遵循若干基本规则: 1. 配置文件是有序的语句序列 2. 语句是未受保护的 "#"(井号)之前的单个非空行 3. 一行由未受保护的空格或制表符分隔的一系列词元(或 "单词")组成 4. 行首的单词或单词序列是本文列出的某个关键字或关键字序列 5. 其余单词均为首个关键字的参数;其中一些 …
2.1. 配置文件格式 HAProxy 的配置过程涉及三个主要参数来源: 命令行参数,始终具有最高优先级 配置文件,其格式在此处描述 运行进程的环境,若显式引用了某些环境变量 配置文件采用一种相对简单的分层格式,遵循若干基本规则: 1. 配置文件是有序的语句序列 2. 语句是未受保护的 "#"(井号)之前的单个非空行 3. 一行由未受保护的空格或制表符分隔的一系列词元(或 "单词")组成 4. 行首的单词或单词序列是本文列出的某个关键字或关键字序列 5. 其余单词均为首个关键字的参数;其中一些 …
-
服务器命令(server)
pgBackRest 服务器允许在不使用 SSH 协议的情况下访问远程主机。 命令选项 TLS 服务器地址选项(--tls-server-address) TLS 服务器地址。 服务器监听客户端请求的 IP 地址。 default: localhost example: --tls-server-address=* TLS 服务器授权客户端选项(--tls-server-auth) TLS 服务器授权客户端。 服务器通过验证客户端证书,并将其证书 CN(Common Name,通用名称)与 …
pgBackRest 服务器允许在不使用 SSH 协议的情况下访问远程主机。 命令选项 TLS 服务器地址选项(--tls-server-address) TLS 服务器地址。 服务器监听客户端请求的 IP 地址。 default: localhost example: --tls-server-address=* TLS 服务器授权客户端选项(--tls-server-auth) TLS 服务器授权客户端。 服务器通过验证客户端证书,并将其证书 CN(Common Name,通用名称)与 …
-
许可证与致谢
pgBadger 是以 PostgreSQL License 发布的自由开源软件。只要保留版权与许可证声明,就可以免费使用、复制、修改与分发。 PostgreSQL License Copyright (c) 2012-2026, Gilles Darold Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and …
pgBadger 是以 PostgreSQL License 发布的自由开源软件。只要保留版权与许可证声明,就可以免费使用、复制、修改与分发。 PostgreSQL License Copyright (c) 2012-2026, Gilles Darold Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and …
-
恢复命令(restore)
restore 命令默认从第一个存有备份的仓库中自动选取最新备份(参见 快速开始 - 恢复备份 )。仓库的检查顺序由 pgbackrest.conf 决定(例如先检查 repo1,再检查 repo2)。若要从特定仓库恢复,可使用 --repo 选项(例如 --repo=1)。若需恢复非最新的备份,可传入 --set 选项。 指定 --type=time 或 --type=lsn 进行 PITR 时,必须通过 --target 选项提供目标时间或 LSN。若未指定 --set,pgBackRest …
restore 命令默认从第一个存有备份的仓库中自动选取最新备份(参见 快速开始 - 恢复备份 )。仓库的检查顺序由 pgbackrest.conf 决定(例如先检查 repo1,再检查 repo2)。若要从特定仓库恢复,可使用 --repo 选项(例如 --repo=1)。若需恢复非最新的备份,可传入 --set 选项。 指定 --type=time 或 --type=lsn 进行 PITR 时,必须通过 --target 选项提供目标时间或 LSN。若未指定 --set,pgBackRest …
-
文档与社区
1. 可用文档 HAProxy 的完整文档由以下文件组成。请先查阅与问题相关的文档,以节省时间并获得最准确的答案。如果这些文档已经给出答案,请勿再向邮件列表重复提问。 intro.txt (本文档):介绍负载均衡基础、HAProxy 产品及其能力边界、应避免的常见陷阱、部分操作系统特有限制、获取方式、演进过程、如何确认当前版本包含所有已知修复、升级方法,以及补充产品和替代方案。 management.txt :介绍如何启动 HAProxy,如何在运行时及多节点环境中管理 HAProxy,以及如 …
1. 可用文档 HAProxy 的完整文档由以下文件组成。请先查阅与问题相关的文档,以节省时间并获得最准确的答案。如果这些文档已经给出答案,请勿再向邮件列表重复提问。 intro.txt (本文档):介绍负载均衡基础、HAProxy 产品及其能力边界、应避免的常见陷阱、部分操作系统特有限制、获取方式、演进过程、如何确认当前版本包含所有已知修复、升级方法,以及补充产品和替代方案。 management.txt :介绍如何启动 HAProxy,如何在运行时及多节点环境中管理 HAProxy,以及如 …
-
仓库列表命令(repo-ls)
repo-ls 类似于 Unix 的 ls 命令,但支持所有 pgBackRest 仓库类型。该命令接受一个路径参数,可以是绝对路径,也可以是相对于 --repo-path 所定义的仓库根路径的相对路径。此命令主要用于管理、排查和测试场景,并非常规部署的必要命令。 默认以文本格式输出,每行一个文件名。指定 --output=json 可切换为 JSON 格式。 若配置了多个仓库,默认操作优先级最高的仓库(如 repo1),如需指定特定仓库,请使用 --repo 选项。 命令选项 过滤输出选项 …
repo-ls 类似于 Unix 的 ls 命令,但支持所有 pgBackRest 仓库类型。该命令接受一个路径参数,可以是绝对路径,也可以是相对于 --repo-path 所定义的仓库根路径的相对路径。此命令主要用于管理、排查和测试场景,并非常规部署的必要命令。 默认以文本格式输出,每行一个文件名。指定 --output=json 可切换为 JSON 格式。 若配置了多个仓库,默认操作优先级最高的仓库(如 repo1),如需指定特定仓库,请使用 --repo 选项。 命令选项 过滤输出选项 …
-
版本历史
pgBadger 9.x–13.x 的版本历史,按主要版本系列分组,每个系列按从新到旧排序。 这些条目描述的是各版本发布时的行为。历史默认值、配置名称和升级指引可能与 13.2 不同;实际运行设置请以当前命令行参考和 PostgreSQL 日志配置指南为准。 系列 收录版本 首末发布日期 页面 13.x 13.0–13.2 2024-12-08 – 2025-12-29 阅读 13.x 12.x 12.0–12.4 2022-09-13 – 2023-12-25 阅读 12.x 11.x …
pgBadger 9.x–13.x 的版本历史,按主要版本系列分组,每个系列按从新到旧排序。 这些条目描述的是各版本发布时的行为。历史默认值、配置名称和升级指引可能与 13.2 不同;实际运行设置请以当前命令行参考和 PostgreSQL 日志配置指南为准。 系列 收录版本 首末发布日期 页面 13.x 13.0–13.2 2024-12-08 – 2025-12-29 阅读 13.x 12.x 12.0–12.4 2022-09-13 – 2023-12-25 阅读 12.x 11.x …
-
仓库获取命令(repo-get)
repo-get 命令类似于 Unix 的 cat 命令,但支持所有仓库类型。使用此命令需要提供完整的文件名,主要用于管理、排查和测试目的,不是常规 pgBackRest 使用流程中的必需命令。 若仓库已加密,repo-get 将自动解密文件。文件不会自动解压,但可将输出通过管道传递给相应的解压命令,例如 gzip -d。 若配置了多个仓库,命令默认使用优先级最高的仓库(如 repo1),除非通过 --repo 选项指定了具体仓库。 命令选项 忽略缺失文件选项(--ignore-missing) …
repo-get 命令类似于 Unix 的 cat 命令,但支持所有仓库类型。使用此命令需要提供完整的文件名,主要用于管理、排查和测试目的,不是常规 pgBackRest 使用流程中的必需命令。 若仓库已加密,repo-get 将自动解密文件。文件不会自动解压,但可将输出通过管道传递给相应的解压命令,例如 gzip -d。 若配置了多个仓库,命令默认使用优先级最高的仓库(如 repo1),除非通过 --repo 选项指定了具体仓库。 命令选项 忽略缺失文件选项(--ignore-missing) …
-
常见问题解答
如何连接到 PgBouncer? PgBouncer 扮演 PostgreSQL 服务器的角色,只需将客户端指向 PgBouncer 端口即可。 如何在多个服务器之间实现查询负载均衡? PgBouncer 支持在数据库连接字符串中指定以逗号分隔的主机列表。使用 load_balance_hosts=round-robin 时,新建服务端连接会在该列表中的主机之间轮换。例如: [databases] app = host=pg1,pg2 port=5432 dbname=app …
如何连接到 PgBouncer? PgBouncer 扮演 PostgreSQL 服务器的角色,只需将客户端指向 PgBouncer 端口即可。 如何在多个服务器之间实现查询负载均衡? PgBouncer 支持在数据库连接字符串中指定以逗号分隔的主机列表。使用 load_balance_hosts=round-robin 时,新建服务端连接会在该列表中的主机之间轮换。例如: [databases] app = host=pg1,pg2 port=5432 dbname=app …
-
报告示例
示例内容由 pgBadger 11.8 于 2022 年 5 月生成。报告导航、图表、样式与脚本均可离线使用。 示例 展示内容 本地副本 完整报告 PostgreSQL 活动与 PgBouncer 统计 打开完整报告 增量报告 日历索引、每周累计与每日页面 打开增量索引 错误与事件 仅包含错误和运行事件的报告 打开错误报告 完整报告 完整报告是一份自包含 HTML 文档。可通过顶部导航查看全局统计、查询、会话、连接、临时文件、检查点、自动清理、锁,以及 PgBouncer 专用图表。 其中数据只 …
示例内容由 pgBadger 11.8 于 2022 年 5 月生成。报告导航、图表、样式与脚本均可离线使用。 示例 展示内容 本地副本 完整报告 PostgreSQL 活动与 PgBouncer 统计 打开完整报告 增量报告 日历索引、每周累计与每日页面 打开增量索引 错误与事件 仅包含错误和运行事件的报告 打开错误报告 完整报告 完整报告是一份自包含 HTML 文档。可通过顶部导航查看全局统计、查询、会话、连接、临时文件、检查点、自动清理、锁,以及 PgBouncer 专用图表。 其中数据只 …
-
Info 命令(info)
info 命令可作用于单个 stanza 或所有 stanza。默认输出为文本格式,以人类可读的摘要展示所请求 stanza 的备份信息。该格式可能随版本更新而变化。 如需机器可读输出,请使用 --output=json。JSON 输出包含的信息远多于文本格式,且除非发现缺陷,其格式保持稳定。 若只需快速查看进度信息,可指定 --detail-level=progress。注意此模式会跳过 stanza 可用性检查以外的所有检查。 每个 stanza 占独立的输出区块,可使用 --stanza …
info 命令可作用于单个 stanza 或所有 stanza。默认输出为文本格式,以人类可读的摘要展示所请求 stanza 的备份信息。该格式可能随版本更新而变化。 如需机器可读输出,请使用 --output=json。JSON 输出包含的信息远多于文本格式,且除非发现缺陷,其格式保持稳定。 若只需快速查看进度信息,可指定 --detail-level=progress。注意此模式会跳过 stanza 可用性检查以外的所有检查。 每个 stanza 占独立的输出区块,可使用 --stanza …
-
输出格式
pgBadger 会根据输出文件扩展名,或 -x / --extension 选项选择格式。同一次解析可多次使用 -o / --outfile,同时生成多种格式。 格式 常用扩展名 最适合 HTML .html 带图表的交互式人类可读报告 文本 .txt 终端查看与纯文本归档 二进制 .bin 可合并的中间统计数据与报告重建 JSON .json 与其他软件集成;需要 JSON::XS 原始 CSV 自选输出文件 使用 --dump-raw-csv 导出逐行数据 HTML 与文本 默认输出为 …
pgBadger 会根据输出文件扩展名,或 -x / --extension 选项选择格式。同一次解析可多次使用 -o / --outfile,同时生成多种格式。 格式 常用扩展名 最适合 HTML .html 带图表的交互式人类可读报告 文本 .txt 终端查看与纯文本归档 二进制 .bin 可合并的中间统计数据与报告重建 JSON .json 与其他软件集成;需要 JSON::XS 原始 CSV 自选输出文件 使用 --dump-raw-csv 导出逐行数据 HTML 与文本 默认输出为 …
-
性能与容量规划
典型 CPU 使用率数据显示,在 TCP 或 HTTP 关闭模式下,HAProxy 占用约 15% 的处理时间,内核占用约 85%;在 HTTP 持久连接模式下,HAProxy 占用约 30%,内核占用约 70%。这表明操作系统及其调优对整体性能有显著影响。 不同用户的应用场景差异很大,有的关注带宽,有的关注请求速率,有的关注连接并发数,有的关注 SSL 性能。本节将提供一些容量规划的参考依据。 请注意,每次操作都会带来开销,因此每个独立操作都会在其余操作的基础上增加额外开销,这种开销在某些情 …
典型 CPU 使用率数据显示,在 TCP 或 HTTP 关闭模式下,HAProxy 占用约 15% 的处理时间,内核占用约 85%;在 HTTP 持久连接模式下,HAProxy 占用约 30%,内核占用约 70%。这表明操作系统及其调优对整体性能有显著影响。 不同用户的应用场景差异很大,有的关注带宽,有的关注请求速率,有的关注连接并发数,有的关注 SSL 性能。本节将提供一些容量规划的参考依据。 请注意,每次操作都会带来开销,因此每个独立操作都会在其余操作的基础上增加额外开销,这种开销在某些情 …
-
常见问题解答
简介 常见问题解答旨在针对一些具体问题提供详细说明,这些问题可能未在用户指南、配置参考或命令参考中涵盖。如果在此处找不到您的问题,pgBackRest 在 GitHub 上的 问题列表 也是一个宝贵的资源。 遇到"could not find WAL segment"错误该怎么办? 此错误可能有多种原因,包括但不限于: archive_command 配置错误 pgBackRest 配置文件配置错误 网络或权限问题 第三方产品(如 S3、Swift 或 MinIO)配置问题 大量 WAL 积压 …
简介 常见问题解答旨在针对一些具体问题提供详细说明,这些问题可能未在用户指南、配置参考或命令参考中涵盖。如果在此处找不到您的问题,pgBackRest 在 GitHub 上的 问题列表 也是一个宝贵的资源。 遇到"could not find WAL segment"错误该怎么办? 此错误可能有多种原因,包括但不限于: archive_command 配置错误 pgBackRest 配置文件配置错误 网络或权限问题 第三方产品(如 S3、Swift 或 MinIO)配置问题 大量 WAL 积压 …
-
版本变更日志
PgBouncer 1.26.x 2026-09-23 - PgBouncer 1.26.0 - “Ignore all previous search_path(忽略此前所有 search_path)” 安全 修复 CVE-2026-19888:PgBouncer 1.26.0 之前未检查 SCRAM client-final-message 是否包含 nonce。未经身份验证的远程攻击者可发送不含 nonce 的 client-final-message,使 PgBouncer 崩溃。这也 …
PgBouncer 1.26.x 2026-09-23 - PgBouncer 1.26.0 - “Ignore all previous search_path(忽略此前所有 search_path)” 安全 修复 CVE-2026-19888:PgBouncer 1.26.0 之前未检查 SCRAM client-final-message 是否包含 nonce。未经身份验证的远程攻击者可发送不含 nonce 的 client-final-message,使 PgBouncer 崩溃。这也 …
-
帮助命令(help)
help 命令提供三个层级的帮助信息:未指定命令时显示通用帮助;指定命令(例如 pgbackrest help backup)时显示该命令的完整说明及有效选项列表;在命令之外还指定了某个选项(例如 pgbackrest help backup type)时显示该选项在此命令下的完整说明。 命令选项 显示帮助选项(--help) 显示帮助信息。 即使未指定 help 命令也会显示帮助信息,且优先于 --version 选项。 default: n example: --help 显示版本选项 …
help 命令提供三个层级的帮助信息:未指定命令时显示通用帮助;指定命令(例如 pgbackrest help backup)时显示该命令的完整说明及有效选项列表;在命令之外还指定了某个选项(例如 pgbackrest help backup type)时显示该选项在此命令下的完整说明。 命令选项 显示帮助选项(--help) 显示帮助信息。 即使未指定 help 命令也会显示帮助信息,且优先于 --version 选项。 default: n example: --help 显示版本选项 …
-
版本发布说明
简介 pgBackRest 的版本号由主版本号和次版本号两部分组成。主版本升级 可能 破坏与上一主版本的兼容性,但 v2 版本与 v1 仓库完全兼容,且接受所有 v1 选项。次版本可包含漏洞修复和新功能,但不会更改仓库格式,并尽量避免修改选项和命名约定。v1 版本的文档可在 此处 查阅。版本说明中还可能包含"附加说明",此部分变更仅涉及文档或测试套件,不直接影响 pgBackRest 代码库。 本站文档版本 本站文档对应 v2.59.3。更新版本请查阅上游发布历史 。 v2.59.3 版本说明 …
简介 pgBackRest 的版本号由主版本号和次版本号两部分组成。主版本升级 可能 破坏与上一主版本的兼容性,但 v2 版本与 v1 仓库完全兼容,且接受所有 v1 选项。次版本可包含漏洞修复和新功能,但不会更改仓库格式,并尽量避免修改选项和命名约定。v1 版本的文档可在 此处 查阅。版本说明中还可能包含"附加说明",此部分变更仅涉及文档或测试套件,不直接影响 pgBackRest 代码库。 本站文档版本 本站文档对应 v2.59.3。更新版本请查阅上游发布历史 。 v2.59.3 版本说明 …
-
过期命令(expire)
pgBackRest 基于保留策略对全量备份进行轮换,策略可按数量或时间段定义。按数量保留时,过期操作只关注需要保留的备份数量,不考虑备份的创建时间。差异备份按数量进行保留,但当其依赖的全量备份过期时,差异备份也会随之过期。增量备份没有独立的保留策略——它们始终随关联的全量备份或差异备份一同过期。详情及示例请参见 全量备份保留策略 和 差异备份保留策略 章节。 默认情况下,未过期备份对应的已归档 WAL 会被保留。如有需要(不推荐),可通过归档保留选项按仓库单独调整此策略。详情及示例请参见 归档 …
pgBackRest 基于保留策略对全量备份进行轮换,策略可按数量或时间段定义。按数量保留时,过期操作只关注需要保留的备份数量,不考虑备份的创建时间。差异备份按数量进行保留,但当其依赖的全量备份过期时,差异备份也会随之过期。增量备份没有独立的保留策略——它们始终随关联的全量备份或差异备份一同过期。详情及示例请参见 全量备份保留策略 和 差异备份保留策略 章节。 默认情况下,未过期备份对应的已归档 WAL 会被保留。如有需要(不推荐),可通过归档保留选项按仓库单独调整此策略。详情及示例请参见 归档 …
-
源码发布版下载
PgBouncer 1.26 文件 日期 大小 校验值 pgbouncer-1.26.0.tar.gz 2026-09-23 897943 bytes sha256 PgBouncer 1.25 文件 日期 大小 SHA256 pgbouncer-1.25.2.tar.gz 2026-05-08 865371 bytes sha256 pgbouncer-1.25.1.tar.gz 2025-12-03 864801 bytes sha256 pgbouncer-1.25.0.tar.gz …
PgBouncer 1.26 文件 日期 大小 校验值 pgbouncer-1.26.0.tar.gz 2026-09-23 897943 bytes sha256 PgBouncer 1.25 文件 日期 大小 SHA256 pgbouncer-1.25.2.tar.gz 2026-05-08 865371 bytes sha256 pgbouncer-1.25.1.tar.gz 2025-12-03 864801 bytes sha256 pgbouncer-1.25.0.tar.gz …
-
配置参考
简介 pgBackRest 可以完全通过命令行参数使用,但当配置较为复杂或需要设置大量选项时,使用配置文件更为实用。配置文件的默认路径为 /etc/pgbackrest/pgbackrest.conf。若该路径下不存在配置文件,则会检查旧的默认路径 /etc/pgbackrest.conf。 以下是支持的选项类型: String(字符串):文本字符串,常见用途包括标识符、密码等。 命令行示例:--stanza=demo配置文件示例 …
简介 pgBackRest 可以完全通过命令行参数使用,但当配置较为复杂或需要设置大量选项时,使用配置文件更为实用。配置文件的默认路径为 /etc/pgbackrest/pgbackrest.conf。若该路径下不存在配置文件,则会检查旧的默认路径 /etc/pgbackrest.conf。 以下是支持的选项类型: String(字符串):文本字符串,常见用途包括标识符、密码等。 命令行示例:--stanza=demo配置文件示例 …
-
patronictl 命令行
Patroni 提供了 patronictl 命令行工具,用于与 Patroni 的 REST API 和 DCS 交互,旨在简化集群操作,适合人工操作或脚本调用。 配置 patronictl 使用以下 3 个配置节: ctl:用于对 Patroni REST API 进行认证以及验证服务器身份,详见 ctl 配置参数 ; restapi:同样用于认证和验证服务器身份,仅在 ctl 配置不足时作为补充。patronictl 主要使用 restapi.authentication 节(当 …
Patroni 提供了 patronictl 命令行工具,用于与 Patroni 的 REST API 和 DCS 交互,旨在简化集群操作,适合人工操作或脚本调用。 配置 patronictl 使用以下 3 个配置节: ctl:用于对 Patroni REST API 进行认证以及验证服务器身份,详见 ctl 配置参数 ; restapi:同样用于认证和验证服务器身份,仅在 ctl 配置不足时作为补充。patronictl 主要使用 restapi.authentication 节(当 …
-
HAProxy 3.4.6-66 中文文档
HAProxy 是一款免费、快速、可靠的反向代理,适用于高可用、TCP 与 HTTP 负载均衡及应用流量管理。本组件收录三套 HAProxy 3.4 核心手册的完整中文译文,并将其重新编排为适合 OINK 阅读器的 Markdown 扁平阅读顺序。 本版对齐官方英文维护分支手册的 3.4.6-66 快照。最新稳定版为 3.4.6(v3.4.6); 该快照包含稳定版发布之后的文档变更,源文件固定于提交 16acce1dac1d 。 选择手册 入门指南 — 用 9 个主题介绍负载均衡基础 …
HAProxy 是一款免费、快速、可靠的反向代理,适用于高可用、TCP 与 HTTP 负载均衡及应用流量管理。本组件收录三套 HAProxy 3.4 核心手册的完整中文译文,并将其重新编排为适合 OINK 阅读器的 Markdown 扁平阅读顺序。 本版对齐官方英文维护分支手册的 3.4.6-66 快照。最新稳定版为 3.4.6(v3.4.6); 该快照包含稳定版发布之后的文档变更,源文件固定于提交 16acce1dac1d 。 选择手册 入门指南 — 用 9 个主题介绍负载均衡基础 …
-
检查命令(check)
check 命令用于验证 pgBackRest 及 archive_command 的配置是否正确,确保指定 stanza 的归档与备份能够正常运作。该命令会对当前主机上为该 stanza 配置的所有仓库和数据库逐一检查,可检测出配置错误——尤其是归档配置问题,此类问题会导致所需的 WAL 段无法进入归档,从而造成备份不完整。此命令可在 PostgreSQL 主机或仓库主机上运行;也可在备库主机上运行,但由于备库无法执行 pg_switch_xlog()/pg_switch_wal(),命令仅会 …
check 命令用于验证 pgBackRest 及 archive_command 的配置是否正确,确保指定 stanza 的归档与备份能够正常运作。该命令会对当前主机上为该 stanza 配置的所有仓库和数据库逐一检查,可检测出配置错误——尤其是归档配置问题,此类问题会导致所需的 WAL 段无法进入归档,从而造成备份不完整。此命令可在 PostgreSQL 主机或仓库主机上运行;也可在备库主机上运行,但由于备库无法执行 pg_switch_xlog()/pg_switch_wal(),命令仅会 …
-
pgBadger 9.x 版本记录
v9.2 · 2017-07-27 这是维护版本,并增加以下功能: 添加检查点距离与估计值报告。 SQL 格式化器支持 AWS Redshift 关键字。 远程模式自动识别日志格式,允许同时解析远程 PgBouncer 与 PostgreSQL 日志。 其他缺陷修复与功能改进: 修复直方图未显示超过最后一个分组范围的数据的问题。 修复缺少日志行号模式 [%l-n] 时的 journalctl 解析。感谢 Christian Schmitt 报告。 添加检查点距离与估计值报告。感谢 …
v9.2 · 2017-07-27 这是维护版本,并增加以下功能: 添加检查点距离与估计值报告。 SQL 格式化器支持 AWS Redshift 关键字。 远程模式自动识别日志格式,允许同时解析远程 PgBouncer 与 PostgreSQL 日志。 其他缺陷修复与功能改进: 修复直方图未显示超过最后一个分组范围的数据的问题。 修复缺少日志行号模式 [%l-n] 时的 journalctl 解析。感谢 Christian Schmitt 报告。 添加检查点距离与估计值报告。感谢 …
-
命令参考
简介 pgBackRest 通过命令来执行各项功能。本文档对每个命令的选项进行了详尽列举——即每个适用于某命令的选项都会随该命令一并列出,即便该选项同样适用于其他命令。所有可在 pgbackrest.conf 中配置的选项均包含在内。 在 pgbackrest.conf 中配置的非布尔型选项,可在命令行上使用 reset- 前缀将其重置为默认值。这一功能可用于在仓库主机上直接恢复备份。通常情况下,pgBackRest 检测到数据库主机是远程主机后会报错,因为恢复操作无法远程执行。在命令行添加 …
简介 pgBackRest 通过命令来执行各项功能。本文档对每个命令的选项进行了详尽列举——即每个适用于某命令的选项都会随该命令一并列出,即便该选项同样适用于其他命令。所有可在 pgbackrest.conf 中配置的选项均包含在内。 在 pgbackrest.conf 中配置的非布尔型选项,可在命令行上使用 reset- 前缀将其重置为默认值。这一功能可用于在仓库主机上直接恢复备份。通常情况下,pgBackRest 检测到数据库主机是远程主机后会报错,因为恢复操作无法远程执行。在命令行添加 …
-
Patroni REST API
Patroni 提供了丰富的 REST API,供 Patroni 自身在主库竞选期间调用,也供 patronictl 工具执行故障转移、主从切换、重新初始化、重启和重载等操作,还可供 HAProxy 或其他负载均衡器执行 HTTP 健康检查,以及用于监控目的。以下是 Patroni REST API 端点的完整列表。 健康检查端点 对于所有健康检查 GET 请求,Patroni 返回描述节点状态的 JSON 文档,并附带相应的 HTTP 状态码。若不需要 JSON 响应体,可使用 HEAD …
Patroni 提供了丰富的 REST API,供 Patroni 自身在主库竞选期间调用,也供 patronictl 工具执行故障转移、主从切换、重新初始化、重启和重载等操作,还可供 HAProxy 或其他负载均衡器执行 HTTP 健康检查,以及用于监控目的。以下是 Patroni REST API 端点的完整列表。 健康检查端点 对于所有健康检查 GET 请求,Patroni 返回描述节点状态的 JSON 文档,并附带相应的 HTTP 状态码。若不需要 JSON 响应体,可使用 HEAD …
-
备份命令(backup)
配置多个仓库时,pgBackRest 默认备份到优先级最高的仓库(如 repo1),除非通过 --repo 选项明确指定目标仓库。 pgBackRest 本身不内置调度器,建议通过 cron 或其他调度机制触发备份。 详情与示例请参见 执行备份 。 命令选项 备份注解选项(--annotation) 为备份附加用户自定义的键值对注解。 可为备份附加任意键值对信息,此选项可多次使用以添加多个注解。 通过 --set 指定备份时,info 命令的文本输出会显示注解;JSON 输出则始终包含注解信息。 …
配置多个仓库时,pgBackRest 默认备份到优先级最高的仓库(如 repo1),除非通过 --repo 选项明确指定目标仓库。 pgBackRest 本身不内置调度器,建议通过 cron 或其他调度机制触发备份。 详情与示例请参见 执行备份 。 命令选项 备份注解选项(--annotation) 为备份附加用户自定义的键值对注解。 可为备份附加任意键值对信息,此选项可多次使用以添加多个注解。 通过 --set 指定备份时,info 命令的文本输出会显示注解;JSON 输出则始终包含注解信息。 …
-
pgBadger 10.x 版本记录
v10.3 · 2019-02-14 这是维护版本,修复了用户报告的日志格式自动识别问题,以及另一处 PgBouncer 日志解析问题。同时添加一项功能: -o | --outfile 现在可多次指定,使单条命令输出多种格式。例如: pgbadger -o out.html -o out.json /log/pgsql-11.log 将生成 HTML 与 JSON 两份报告,分别保存到对应文件。 其他缺陷修复与功能改进: 修复指定数据库、用户、客户端或应用过滤条件时,部分查询未出现在统计报告中的 …
v10.3 · 2019-02-14 这是维护版本,修复了用户报告的日志格式自动识别问题,以及另一处 PgBouncer 日志解析问题。同时添加一项功能: -o | --outfile 现在可多次指定,使单条命令输出多种格式。例如: pgbadger -o out.html -o out.json /log/pgsql-11.log 将生成 HTML 与 JSON 两份报告,分别保存到对应文件。 其他缺陷修复与功能改进: 修复指定数据库、用户、客户端或应用过滤条件时,部分查询未出现在统计报告中的 …
-
命令行参考
用法与选项 用法:pgbadger [options] logfile […] PostgreSQL 日志分析器,生成详细报告和图表。 参数: logfile 可以是单个日志文件、文件列表,或返回文件列表的 shell 命令。 若要从标准输入传入日志内容,请使用 - 作为文件名。 注意:csvlog 不支持从标准输入读取。 选项: -a | --average minutes : 查询与连接平均值图表的时间粒度,单位为分钟。默认 5 分钟。 -A | --histo-average min: 查 …
用法与选项 用法:pgbadger [options] logfile […] PostgreSQL 日志分析器,生成详细报告和图表。 参数: logfile 可以是单个日志文件、文件列表,或返回文件列表的 shell 命令。 若要从标准输入传入日志内容,请使用 - 作为文件名。 注意:csvlog 不支持从标准输入读取。 选项: -a | --average minutes : 查询与连接平均值图表的时间粒度,单位为分钟。默认 5 分钟。 -A | --histo-average min: 查 …
-
环境变量
可以使用系统环境变量覆盖 Patroni 配置文件中定义的部分配置参数。本文档列出了 Patroni 处理的所有环境变量。通过环境变量设置的值始终优先于配置文件中的值。 全局/通用 PATRONI_CONFIGURATION:可通过 PATRONI_CONFIGURATION 环境变量为 Patroni 提供完整配置。设置此变量后,其他所有环境变量将被忽略! PATRONI_THREAD_POOL_SIZE:Patroni 用于执行异步任务,以及在领导者竞选或 failsafe 检查期间通过 …
可以使用系统环境变量覆盖 Patroni 配置文件中定义的部分配置参数。本文档列出了 Patroni 处理的所有环境变量。通过环境变量设置的值始终优先于配置文件中的值。 全局/通用 PATRONI_CONFIGURATION:可通过 PATRONI_CONFIGURATION 环境变量为 Patroni 提供完整配置。设置此变量后,其他所有环境变量将被忽略! PATRONI_THREAD_POOL_SIZE:Patroni 用于执行异步任务,以及在领导者竞选或 failsafe 检查期间通过 …
-
Patroni 配置
Patroni 的配置分为 3 种类型: 全局 动态配置 。 这些选项存储在 DCS(分布式配置存储)中,并应用于集群的所有节点。动态配置可以随时通过 patronictl edit-config 工具或 Patroni REST API 进行设置。如果更改的选项不属于启动配置,它们将异步地(在下一个唤醒周期时)应用到每个节点,随后触发重载。如果节点需要重启才能应用配置(对于上下文为 postmaster 且值已更改的 PostgreSQL 参数 ),则会在 members.data JSON …
Patroni 的配置分为 3 种类型: 全局 动态配置 。 这些选项存储在 DCS(分布式配置存储)中,并应用于集群的所有节点。动态配置可以随时通过 patronictl edit-config 工具或 Patroni REST API 进行设置。如果更改的选项不属于启动配置,它们将异步地(在下一个唤醒周期时)应用到每个节点,随后触发重载。如果节点需要重启才能应用配置(对于上下文为 postmaster 且值已更改的 PostgreSQL 参数 ),则会在 members.data JSON …
-
归档推送命令(archive-push)
接收来自 PostgreSQL 的 WAL 段,并将其归档到各个仓库中(仓库路径由带索引的 repo-path 选项定义,详见 仓库选项 章节)。WAL 段可以立即推送到归档,也可以根据 archive-async 的值先暂存在本地。配置了多个仓库时,archive-push 会尽量向所有仓库推送。 archive-push 由 PostgreSQL 负责配置和调用。相关示例请参见 配置归档 。 命令选项 异步归档选项(--archive-async) 异步推送/获取 WAL 段。 为 …
接收来自 PostgreSQL 的 WAL 段,并将其归档到各个仓库中(仓库路径由带索引的 repo-path 选项定义,详见 仓库选项 章节)。WAL 段可以立即推送到归档,也可以根据 archive-async 的值先暂存在本地。配置了多个仓库时,archive-push 会尽量向所有仓库推送。 archive-push 由 PostgreSQL 负责配置和调用。相关示例请参见 配置归档 。 命令选项 异步归档选项(--archive-async) 异步推送/获取 WAL 段。 为 …
-
pgBadger 11.x 版本记录
v11.8 · 2022-04-08 本版本修复了过去三个月用户报告的问题,尤其包括增量模式中检测新日志记录的两项修复: 修复 log_line_prefix 使用毫秒时间戳(%m)或纪元时间戳(%n)时的新记录检测。 修复未使用多进程时本地文件的新记录检测。 完整变更与致谢如下: 全面审查并简化日志文件变化的检测。 在事件报告中加入 could not (receive|send) data (from|to) client 消息。感谢 Adrien Nayrat 报告。 修复预备查询名称包含 …
v11.8 · 2022-04-08 本版本修复了过去三个月用户报告的问题,尤其包括增量模式中检测新日志记录的两项修复: 修复 log_line_prefix 使用毫秒时间戳(%m)或纪元时间戳(%n)时的新记录检测。 修复未使用多进程时本地文件的新记录检测。 完整变更与致谢如下: 全面审查并简化日志文件变化的检测。 在事件报告中加入 could not (receive|send) data (from|to) client 消息。感谢 Adrien Nayrat 报告。 修复预备查询名称包含 …
-
配置:pgbouncer.ini
描述 配置文件采用 “ini” 格式。节名称位于 [ 和 ] 之间。以 ; 或 # 开头的行被视为注释并忽略。当 ; 和 # 出现在行中间时,不会被识别为特殊字符。 通用设置 logfile 指定日志文件。若要以守护进程方式运行(-d),需要设置此项或 syslog。 日志文件保持打开状态,因此在日志轮转后,应执行 kill -HUP 或在控制台执行 RELOAD;。在 Windows 上,必须停止并重启服务。 注意:设置 logfile 本身并不会关闭向 stderr 的日志输出,如需关闭请 …
描述 配置文件采用 “ini” 格式。节名称位于 [ 和 ] 之间。以 ; 或 # 开头的行被视为注释并忽略。当 ; 和 # 出现在行中间时,不会被识别为特殊字符。 通用设置 logfile 指定日志文件。若要以守护进程方式运行(-d),需要设置此项或 syslog。 日志文件保持打开状态,因此在日志轮转后,应执行 kill -HUP 或在控制台执行 RELOAD;。在 Windows 上,必须停止并重启服务。 注意:设置 logfile 本身并不会关闭向 stderr 的日志输出,如需关闭请 …
-
YAML 配置参数
全局/通用 thread_pool_size:Patroni 用于执行异步任务,以及在主库竞选或 failsafe 检查期间通过 REST API 与其他成员通信的线程池大小。最小值为 5,默认值为 5。 thread_stack_size:指定 Patroni 启动的线程所使用的栈大小,取值必须按 64kB 对齐。最小值为 64kB,默认值(由 Patroni 设置)为 512kB。 name:主机名称,在集群中必须唯一。 namespace:Patroni 在配置存储中保存集群信息的路径, …
全局/通用 thread_pool_size:Patroni 用于执行异步任务,以及在主库竞选或 failsafe 检查期间通过 REST API 与其他成员通信的线程池大小。最小值为 5,默认值为 5。 thread_stack_size:指定 Patroni 启动的线程所使用的栈大小,取值必须按 64kB 对齐。最小值为 64kB,默认值(由 Patroni 设置)为 512kB。 name:主机名称,在集群中必须唯一。 namespace:Patroni 在配置存储中保存集群信息的路径, …
-
归档获取命令(archive-get)
PostgreSQL 通过此命令执行备份恢复、PITR,或将其作为流复制的替代方式来维持副本同步。WAL 段是 PostgreSQL 执行恢复或维护副本的必要条件。 配置多个仓库时,pgBackRest 按优先级顺序(如 repo1、repo2 等)依次从各仓库获取 WAL。速度更快或成本更低的存储应配置更高的优先级。若通过 --repo 选项指定了某个仓库,则仅从该仓库中查找。 archive-get 命令由 pgBackRest 在恢复过程中自动配置并生成,供 PostgreSQL 使用。相 …
PostgreSQL 通过此命令执行备份恢复、PITR,或将其作为流复制的替代方式来维持副本同步。WAL 段是 PostgreSQL 执行恢复或维护副本的必要条件。 配置多个仓库时,pgBackRest 按优先级顺序(如 repo1、repo2 等)依次从各仓库获取 WAL。速度更快或成本更低的存储应配置更高的优先级。若通过 --repo 选项指定了某个仓库,则仅从该仓库中查找。 archive-get 命令由 pgBackRest 在恢复过程中自动配置并生成,供 PostgreSQL 使用。相 …
-
pgBadger 12.x 版本记录
v12.4 · 2023-12-25 这是维护版本,修复了上一版本发布后用户报告的问题。 修复 PgBouncer 1.21 的报告。感谢 Ales Zeleny 提供补丁。 防止按文件并行处理的进程数超过文件数。感谢 maliangzhu 报告。 修复自 v12.3 起损坏的回归测试。感谢 ieshin 报告。 修复 LOG 记录被计入 ERROR 级别记录的情况。感谢 Matti Linnanvuori 报告。 v12.3 · 2023-11-27 这是维护版本,修复了上一版本发布后用户报告 …
v12.4 · 2023-12-25 这是维护版本,修复了上一版本发布后用户报告的问题。 修复 PgBouncer 1.21 的报告。感谢 Ales Zeleny 提供补丁。 防止按文件并行处理的进程数超过文件数。感谢 maliangzhu 报告。 修复自 v12.3 起损坏的回归测试。感谢 ieshin 报告。 修复 LOG 记录被计入 ERROR 级别记录的情况。感谢 Matti Linnanvuori 报告。 v12.3 · 2023-11-27 这是维护版本,修复了上一版本发布后用户报告 …
-
新闻
弱加密子密钥和盐值 2026 年 10 月 4 日 pgBackRest 2.59.3 之前的版本在生成加密所需的随机数据时,未检查是否发生错误。如果 OpenSSL 无法从操作系统获取随机数据,就会使用内存中已有的数据生成加密子密钥和盐值,且不报告错误。未启用加密的仓库不受影响。 这种错误应该很少见。可能的原因包括沙箱或 seccomp 策略阻止 getrandom() 系统调用,以及 OpenSSL 配置无效。 主要需要关注 archive.info 和 backup.info 中的子密钥 …
弱加密子密钥和盐值 2026 年 10 月 4 日 pgBackRest 2.59.3 之前的版本在生成加密所需的随机数据时,未检查是否发生错误。如果 OpenSSL 无法从操作系统获取随机数据,就会使用内存中已有的数据生成加密子密钥和盐值,且不报告错误。未启用加密的仓库不受影响。 这种错误应该很少见。可能的原因包括沙箱或 seccomp 策略阻止 getrandom() 系统调用,以及 OpenSSL 配置无效。 主要需要关注 archive.info 和 backup.info 中的子密钥 …
-
动态配置
动态配置存储在 DCS(分布式配置存储)中,并应用于集群的所有节点。 如需修改动态配置,可使用 patronictl edit-config 工具或 Patroni REST API 。 loop_wait:主循环每轮的休眠秒数。默认值:10,最小值:1。 ttl:获取领导者锁的 TTL(秒)。可以理解为触发自动故障转移前的等待时长。默认值:30,最小值:20。 retry_timeout:DCS 和 PostgreSQL 操作的重试超时时间(秒)。若 DCS 或网络故障时长短于此值 …
动态配置存储在 DCS(分布式配置存储)中,并应用于集群的所有节点。 如需修改动态配置,可使用 patronictl edit-config 工具或 Patroni REST API 。 loop_wait:主循环每轮的休眠秒数。默认值:10,最小值:1。 ttl:获取领导者锁的 TTL(秒)。可以理解为触发自动故障转移前的等待时长。默认值:30,最小值:20。 retry_timeout:DCS 和 PostgreSQL 操作的重试超时时间(秒)。若 DCS 或网络故障时长短于此值 …
-
注解命令(annotate)
backup 命令执行时附加的注解,可在事后通过 annotate 命令进行添加、修改或删除。 命令选项 备份注解选项(--annotation) 为备份添加用户自定义键值对注解。 可为备份附加具有描述性的键值对。此选项可多次使用,以添加多条注解。 使用 --set 指定备份后,注解将显示在 info 命令的文本输出中,并始终出现在 JSON 输出中。 example: --annotation=source="Sunday backup for website database" 备份集选项 …
backup 命令执行时附加的注解,可在事后通过 annotate 命令进行添加、修改或删除。 命令选项 备份注解选项(--annotation) 为备份添加用户自定义键值对注解。 可为备份附加具有描述性的键值对。此选项可多次使用,以添加多条注解。 使用 --set 指定备份后,注解将显示在 info 命令的文本输出中,并始终出现在 JSON 输出中。 example: --annotation=source="Sunday backup for website database" 备份集选项 …
-
pgBadger 13.x 版本记录
v13.2 · 2025-12-29 这是维护版本,修复了上一版本发布后用户报告的问题,并合入了相关补丁。 修复查询归一化无法正确处理配对单引号字符串及其中转义引号的问题。感谢 Bertrand Bourgier 报告。 修正文档中的占位符要求。 修复未显示错误日志样本的情况。感谢 john doe 报告。 修复 ! 与 %s 之间可能存在的优先级问题。感谢 Luca Santarelli 和 Philipp Trulson 报告。 将 pgFormatter 代码更新到 v5.9。 添加 …
v13.2 · 2025-12-29 这是维护版本,修复了上一版本发布后用户报告的问题,并合入了相关补丁。 修复查询归一化无法正确处理配对单引号字符串及其中转义引号的问题。感谢 Bertrand Bourgier 报告。 修正文档中的占位符要求。 修复未显示错误日志样本的情况。感谢 john doe 报告。 修复 ! 与 %s 之间可能存在的优先级问题。感谢 Luca Santarelli 和 Philipp Trulson 报告。 将 pgFormatter 代码更新到 v5.9。 添加 …