Docker部署postgresql读写分离

不建议使用DOCKER部署数据库

1.安装pgsql主库(master)用于读写

# master
docker run --name postgres-01 -v /data/postgres:/var/lib/postgresql/data /
-e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres

2.修改主库配置文件

vim pg_hba.conf 增加以下配置:(切记:必须要配置为从库的ip/32)

host all all 0.0.0.0 0.0.0.0 md5
host replication postgres 192.168.42.70/32 md5      #这句话的意思允许从数据库连接主数据库去拖wal日志数据

vim postgresql.conf

Listen_adresses = *
wal_level = hot_standby                 #主从设置为热血模式,流复制必选
max_wal_senders=2 						#流复制允许连接进程
wal_keep_segments =64 
max_connections = 1000 					#默认参数,非主从配置相关参数,表示到数据库的连接数

wal_level表示启动搭建Hot Standby,max_wal_senders则需要设置为一个大于0的数,它表示主库最多可以有多少个并发的standby数据库,而最后一个wal_keep_segments也应当设置为一个尽量大的值,以防止主库生成WAL日志太快,日志还没有来得及传送到standby就被覆盖,但是需要考虑磁盘空间允许,一个WAL日志文件的大小是16M

2.安装pgsql从库(standby)用于读

# standby
docker run --name postgres-02 -v /data/postgres-02:/var/lib/postgresql/data -e POSTGRES_PASSWORD=postgres -p 7001:5432 -d postgres
经验分享 程序员 微信小程序 职场和发展