admin管理员组文章数量:1130349
PG学习笔记(1)—— 主从复制:流复制
闲云野鹤,乡夫俗子,不过一隅静土。
背景
PostgreSQL 9.1之前,主从复制传输以WAL日志文件为单位,主库写完WAL日志后再传输给从库,导致主从延迟较大。基于这种情况,PostgreSQL 9.1引入主从流复制,以WAL日志的record为传输单位,从库及时同步主库数据,并且应用每个WAL record,因此能做到同步复制。另外实现了Hot Standby,从库在应用WAL record的同事能够提供制度服务。
架构
PG主从流复制的核心有三个进程构成:
- walsender:用于主库发送WAL日志记录到从库;
- walreceiver:用于从库接收主库的WAL日志记录;
- startup:用于从库apply日志。
流复制的启动
1.启动过程
- 启动主从服务器;
- 从库节点启动startup进程;
- 从库节点启动walreceiver进程;
- walreceiver进程向主库节点发送连接请求,如果主库尚未启动,walreceiver会定期重发该请求;
- 当主节点收到连接请求时,将启动walsender进程,并建立walsender和walreceiver之间的TCP连接;
- walreceiver发送从库节点最新的LSN;
- 如果从库最新的LSN小于主库最新LSN,即落后。walsender会将前一个LSN到后一个LSN之间的wal数据发送到walreceiver;
- 流复制开始工作。
2.walsender状态
通过pg_stat_replication试图可以查看所有运行的walsender状态
walsender进程可能的状态如下
- start-up
- catch-up
- streaming
- backup
3。从库节点长期停机启动
- PostgreSQL 9.4之前,如果从库节点请求的WAL段在主库节点已经被覆盖,那么备份节点将无法追上主节点。暂时没有解决方案,需要把wal_keep_segments参数调大;
- PostgreSQL 9.4之后,使用复制槽(replication)来预防——通过暂停walreceiver进程,将含有未发送wal段的pg_xlog保存在复制槽中。复制槽可以提供wal数据发送的灵活性,主要用于逻辑复制。
流复制过程
流复制包括两个方面:日志传输和数据同步
- 流复制基于日志传输,主节点会在写入日志记录时,将WAL数据发送到已连接的从库节点;
PG学习笔记(1)—— 主从复制:流复制
闲云野鹤,乡夫俗子,不过一隅静土。
背景
PostgreSQL 9.1之前,主从复制传输以WAL日志文件为单位,主库写完WAL日志后再传输给从库,导致主从延迟较大。基于这种情况,PostgreSQL 9.1引入主从流复制,以WAL日志的record为传输单位,从库及时同步主库数据,并且应用每个WAL record,因此能做到同步复制。另外实现了Hot Standby,从库在应用WAL record的同事能够提供制度服务。
架构
PG主从流复制的核心有三个进程构成:
- walsender:用于主库发送WAL日志记录到从库;
- walreceiver:用于从库接收主库的WAL日志记录;
- startup:用于从库apply日志。
流复制的启动
1.启动过程
- 启动主从服务器;
- 从库节点启动startup进程;
- 从库节点启动walreceiver进程;
- walreceiver进程向主库节点发送连接请求,如果主库尚未启动,walreceiver会定期重发该请求;
- 当主节点收到连接请求时,将启动walsender进程,并建立walsender和walreceiver之间的TCP连接;
- walreceiver发送从库节点最新的LSN;
- 如果从库最新的LSN小于主库最新LSN,即落后。walsender会将前一个LSN到后一个LSN之间的wal数据发送到walreceiver;
- 流复制开始工作。
2.walsender状态
通过pg_stat_replication试图可以查看所有运行的walsender状态
walsender进程可能的状态如下
- start-up
- catch-up
- streaming
- backup
3。从库节点长期停机启动
- PostgreSQL 9.4之前,如果从库节点请求的WAL段在主库节点已经被覆盖,那么备份节点将无法追上主节点。暂时没有解决方案,需要把wal_keep_segments参数调大;
- PostgreSQL 9.4之后,使用复制槽(replication)来预防——通过暂停walreceiver进程,将含有未发送wal段的pg_xlog保存在复制槽中。复制槽可以提供wal数据发送的灵活性,主要用于逻辑复制。
流复制过程
流复制包括两个方面:日志传输和数据同步
- 流复制基于日志传输,主节点会在写入日志记录时,将WAL数据发送到已连接的从库节点;
版权声明:本文标题:PG学习笔记(1)—— 主从复制:流复制 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1754380766a2679384.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论