PostgreSQL主从复制配置

AI-摘要
文章摘要 GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
PostgreSQL主从复制配置
Mr.蓝桉本文主要介绍基于pg_basebackup实现主从复制(异步流复制)
PostgreSQL安装的方法可以参考这篇文章,PostgreSQL安装
关于基本的配置就不作过多的介绍了,直接开始
MASTER节点
首先在master节点创建一个用于复制的用户rep 设置密码 123456,并授予rolcanlogin权限
1 | CREATE ROLE rep WITH REPLICATION LOGIN PASSWORD '123456'; |
接下来需要配置pg_hba.conf文件,配置完后记得重启PG
由于我们的SLAVE节点是一个DOCKER PG的容器,下面就需要使用pg_basebackup来备份MASTER 节点的数据目录用来启动SLAVE节点,先备份
1 | pg_basebackup -D /opt/pg_basebackup/ -h 172.17.0.2 -p 5432 -U rep -Fp -R -X s -P -v |
SLAVE节点
接下来在DOCKER的数据目录下创建一个SLAVE的本地映射文件用于启动SLAVE节点
接下来将MASTER节点中pg_basebackup备份的数据COPY到我们准备的本地映射centos9_pg目录下
1 | docker cp centos9:/opt/pg_basebackup /var/lib/docker/centos9_pg/ |
然后启动SLAVE节点即可
1 | docker run -itd --name pg.slave.16.3 -e POSTGRES_PASSWORD=123456 -v /var/lib/docker/centos9_pg:/var/lib/postgresql/data 07a4ee949b9e |
进入容器,看到从数据目录下多了一个standby.signal文件,这默认是一个空文件,其实是一个标识文件。
是因为上面备份的时候使用了-R参数,所以在同步的数据里,所以会在postgresql.auto.conf里配置上 primary_conninfo信息。
验证主从同步
在MASTER节点上可以看到流复制的监控信息,其中 state = streaming 表示流复制状态正常
1 | select * from pg_stat_replication; |
下面执行DML语句进行验证(验证的数据在备份之前就可以准备好)
总结
在配置的过程中如果遇到报错一定要去看下错误日志,错误日志中会记录详细信息
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果
















