PostgreSQL 10主从复制配置

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

本篇使用流复制模式配置主从复制
Master: 172.30.9.118 / PostgreSQL 10
Slave: 172.30.9.147 / PostgreSQL 10

主库配置

  1. 编辑postgresql配置文件postgresql.conf
listen_address = '*'
wal_level = replica
max_wal_senders = 10 # 并发的从库数量
wal_keep_segments = 64 # 默认是0,代表主库wal日志文件保存的个数,设置数量多一点可以防止主库生成日志太快而被覆盖的情况发生
  1. 创建用于主从同步的同步账户
create user replica superuser password '123456'; 
  1. 编辑与配置文件同目录下面的pg_hba.conf
# 在配置文件中追加从库访问限制,允许从库发起流复制
host    replication    replica    172.30.9.147/32    trust

从库配置

  1. 从主库同步目前的所有数据
pg_basebackup -h 172.30.9.118 -U replica -F p -X stream -P -R -D /var/lib
/postgresql/10/main/ -l backup20181122
#-h指定连接的数据库的主机名或IP地址
#-U指定连接的用户名
#-F指定了输出的格式,支持p(原样输出)或者t(tar格式输出)
#-X表示备份开始后,启动另一个流复制连接从主库接收WAL日志
#-P表示允许在备份过程中实时的打印备份的进度
#-R表示会在备份结束后自动生成recovery.conf文件
#-D指定备份写入的数据目录,需要与数据库配置的数据库目录一致,初次备份之前从库的数据目录需要手动清空
#-l表示指定一个备份的标识

同步成功后若无法启动数据库,请检查之前清空的数据目录的所有者身份或读写权限,所有者postgres,权限0700

  1. 修改从库配置文件postgresql.conf
hot_standby = on

检查主从复制是否有效

修改配置后需分别重启主从数据库,重启成功后使用命令查看进程情况

ps -ef | grep postgres
# 分别查看主从数据库是否有包含wal sender/receiver process

最后在主库中进行数据操作,查看对应的从库是否有数据变化

从库为只读模式,无法进行 增 / 删 / 改 操作

转载于:https://my.oschina.net/robin3d/blog/2907024

你可能感兴趣的:(数据库,python)