PostgreSQL 中复制的历史

主要观点:PostgreSQL 不断发展复制相关功能,从 7.1 的写前日志(WAL)到后续的多种复制特性如 Slony、点时间恢复(PITR)、pg_standby、热备、流复制、pg_basebackup、同步复制、级联复制、9.3 的 standby 可跟随时间线切换、9.4 的复制槽和逻辑解码等,各版本在复制功能上不断演进和完善,同时也带来了配置复杂等问题。
关键信息

  • 7.1 引入 WAL 解决全数据文件 fsync 慢的问题,当时只是实现细节,不可读或归档。
  • 2004 年 Slony-I 1.0 发布。
  • 8.0 增加 PITR 功能,主要用于缓解 pg_dump 备份方法的压力,引入基本配置机制。
  • 8.3 加入 pg_standby 程序,可实现复制设置,8.3 版安装易有备用服务器。
  • 9.0 出现热备和流复制,备用服务器可读写,更及时同步数据。
  • 9.1 有 pg_basebackup 和同步复制,方便备份,增加监控函数。
  • 9.2 允许备用服务器从其他备用服务器获取流复制数据。
  • 9.3 standby 可跟随时间线切换,使动态基础设施变更更简单。
  • 9.4 引入复制槽和逻辑解码,可摆脱归档,简化复制设置。
  • 9.5 有望加入 pg_rewind 工具解决主备切换问题。
    重要细节
  • 早期 PostgreSQL 设计有意无日志,与 Oracle 等基于日志架构不同。
  • 各版本的复制功能特点及带来的影响,如同步复制可能降低系统可用性等。
  • 配置复制相关功能复杂,存在多种限制,如不能只复制某些表等,逻辑解码可能是未来发展方向。
阅读 10
0 条评论