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