PostgreSQL主从同步

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

PostgreSQL主从同步

1 PG数据库主从流复制

1.1 物理流复制原理

备库不断的从主库同步相应的数据,并在备库apply每个WAL record,这里的流复制每次传输单位是WAL日志的record。备库通过同步主库发送的没有界限的一串数据流保持为最新的状态。

1.2 物理流复制特点

1. 延迟极低,不怕大事务

2. 支持断点续传

3. 支持多副本

4. 配置简单

5. 备库与主库物理完全一致,并支持只读

2 PG数据库一主一从异步流复制过程

1.  事务commit后,日志在主库写入wal日志,异步流复制无需等待从库反馈的接收结果。 

2.  主库通过日志传输进程将日志块传给从库,从库接收进程收到日志开始回放,最终保证主从数据的一致性。



从库同步主库全量数据

3.1 pg_basebackup方式从库同步主库全量数据

  • 主从状态异常



  • 停服务postgresql.service



  • 清理PG从库数据目录$PGDATA

[postgres@localhost ~]$ cd $PGDATA

[postgres@localhost pg_data]$ ls



[postgres@localhost pg_data]$ rm -rf *

  • pg_basebackup同步主库全量数据

/var/postgresql/soft/pg12.8/bin/pg_basebackup -w -d 'application_name=pgautofailover_standby_2 host=192.168.56.118 port=5432 user=pgautofailover_replicator sslmode=prefer' --pgdata /data/kdcc/postgres/pg_data -U pgautofailover_replicator --verbose --progress --max-rate 100M --wal-method=stream --slot pgautofailover_standby_2



  • 启动服务postgresql.service

[root@localhost system]# systemctl start postgresql.service



  • 主从状态恢复正常



3.2 pg_auto_failover方式从库同步主库全量数据

  • destroy异常从节点

异常从节点上执行

$ pg_autoctl drop node --pgdata /data/kdcc/postgres/pg_data –destroy



  • PG集群状态检查



  • pg_autoctl同步主库全量数据

pg_autoctl create postgres \

    --hostname 192.168.56.119 \

    --auth trust \

    --no-ssl \

--monitor 'postgres://autoctl_node@192.168.56.120:5433/pg_auto_failover?sslmode=prefer'



注意事项:底层也是调用pg_basebackup同步主库全量数据。

  • 启动paf集群

nohup pg_autoctl run &

  • 主从状态恢复正常



PostgreSQL主从同步

1 PG数据库主从流复制1.1 物理流复制原理备库不断的从主库同步相应的数据,并在备库apply每个WAL record,这里的流复制每次传输单位是WA...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息