PostgreSQL高可用:修订间差异
跳到导航
跳到搜索
(→实施) |
(→实施) |
||
第27行: | 第27行: | ||
PostgreSQL10 开始,实现了基于表级别的复制 | PostgreSQL10 开始,实现了基于表级别的复制 | ||
==== postgresql.conf ==== | |||
* listen_address | |||
可以按需配置网段或 IP | |||
* wal_level | |||
设置流复制模式至少设置为replica | |||
* archive_mode | |||
是否启用归档 | |||
* archive_command | |||
WAL 日志归档命令,生产环境可以将归档拷贝到对应目录或其他机器上 | |||
* max_wal_senders | |||
最大WAL发送进程数,此数量需大于等于从库个数且比 max_connections 小 | |||
* wal_keep_segments | |||
pg_wal 目录下保留 WAL 日志的个数。每个 WAL 文件默认 16M,为保障从库能在应用归档落后时依旧能追上主库,可以设置较大一些 | |||
* hot_standby | |||
控制在恢复归档期间是否支持只读操作,设置为 ON 后从库为只读模式 | |||
[[分类:Develop]] | [[分类:Develop]] | ||
[[分类:DB]] | [[分类:DB]] | ||
[[分类:PostgreSQL]] | [[分类:PostgreSQL]] |
2023年9月1日 (五) 14:57的版本
介绍一种基于 pgpool-II 的方案,实现在双机条件下,pgpool-II 服务的高可用,PostgreSQL 的高可用和负载均衡等功能。
方案架构
在两台服务器上,分别部署 PostgreSQL 和 pgpool-II 。
PostgreSQL 通过流复制(streaming replication)实现数据同步。
pgpool-II 监控数据库集群的状态,并将用户请求分发到数据库节点上。 pgpool-II 主节点启动虚拟 IP,作为对外访服务的地址。
pgpool-II 服务高可用
当 pgpool-II 主节点停止后,standby 节点升级为主节点。
PostgreSQL 高可用和在线恢复
主数据库停止或所在服务器宕机,则进行主备切换,原主库服务器启动后自动切换为新主库的备库。
负载均衡
客户端通过 pgpool-II 访问 PostgreSQL 的写请求被发送给主库,而读请求可以随机发送给主库或备库。
实施
PostgreSQL 支持物理复制(流复制)及逻辑复制2种。
- 流复制
流复制同步方式有同步、异步两种,基于实例级的复制,只能复制整个 PostgreSQL 实例,而不能基于部分库及表。
- 逻辑复制
PostgreSQL10 开始,实现了基于表级别的复制
postgresql.conf
- listen_address
可以按需配置网段或 IP
- wal_level
设置流复制模式至少设置为replica
- archive_mode
是否启用归档
- archive_command
WAL 日志归档命令,生产环境可以将归档拷贝到对应目录或其他机器上
- max_wal_senders
最大WAL发送进程数,此数量需大于等于从库个数且比 max_connections 小
- wal_keep_segments
pg_wal 目录下保留 WAL 日志的个数。每个 WAL 文件默认 16M,为保障从库能在应用归档落后时依旧能追上主库,可以设置较大一些
- hot_standby
控制在恢复归档期间是否支持只读操作,设置为 ON 后从库为只读模式