襄阳做网站,上海本地企业,wap手机网站静态模板,国家免费培训机构一、服务器规划 序号 IP 备注 1192.168.1.110主数据库2192.168.1.120从数据库
二、服务器部署
2.1、主服务器部署#xff08;192.168.1.110#xff09;
1#xff09;、于/opt/postgresql目录下#xff0c;编辑docker-compose.yml
version: 3
services:po…一、服务器规划 序号 IP 备注 1192.168.1.110主数据库2192.168.1.120从数据库
二、服务器部署
2.1、主服务器部署192.168.1.110
1、于/opt/postgresql目录下编辑docker-compose.yml
version: 3
services:postgres-master:image: pgrouting/pgrouting:12-3.1-3.1.3container_name: postgres12-slaveenvironment:POSTGRES_USER: postgresPOSTGRES_PASSWORD: 7Y6G#pg2789#Wsports:- 5432:5432volumes:- ./data:/var/lib/postgresql/data- /etc/localtime:/etc/localtime:ro#将外边时间直接挂载到容器内部权限只读# restart: always
2)、启动服务 cd /opt/postgresql
docker-compose up -d
3)、连接主数据库创建主从复制流复制用户
执行创建SQL语句
CREATE ROLE replica login replication encrypted password 123456;
4)、修改./data/pg_hba.conf文件
1)允许远程登录host all all 192.168.1.120/24 md5
2)允许从数据库链接主数据库去拖wal日志数据host replication replica 192.168.1.120/32 md5
3)配置用户的访问权限在ipv4下加入host all all 192.168.1.120/24 md5
修改postgres.conf文件
1)允许所有地址监听listen_addresses*
2)开启归档模式archive_mode on
3)归档配置
%p 是被归档的redo文件的路径
%f 是被归档的redo文档的文件名
%% 是百分号
archive_command cp -i %p /4T/%f /dev/null
4)主从设置为热血模式,流复制必选wal_levelhot_standby
5)流复制允许连接进程max_wal_senders5
6)pg_wal保留策略wal_keep_segments64
7) 中断连接和表示到数据库的连接数wal_sender_timeout 60smax_connections1000
5、重启主数据库服务 cd /opt/postgresql
docker-compose down
docker-compose up -d
2.2、从服务器部署192.168.1.120
1、于/opt/postgresql目录下编辑docker-compose.yml
version: 3
services:postgres-slave:image: pgrouting/pgrouting:12-3.1-3.1.3container_name: postgres12-slaveenvironment:POSTGRES_USER: postgresPOSTGRES_PASSWORD: 7Y6G#pg2789#Wsports:- 5432:5432volumes:- ./data:/var/lib/postgresql/data- /etc/localtime:/etc/localtime:ro#将外边时间直接挂载到容器内部权限只读# restart: always
2、启动服务 cd /opt/postgresql
docker-compose up -d
3、进入到从库postgres的容器内配置流复制 docker exec -it postgres12-slave /bin/bash
#切换到postgres用户
su - postgres
#使用pg_basebackup命令备份主数据库中的数据
pg_basebackup -h 192.168.1.110 -p 5432 -U replica --password -X stream -Fp --progress -D /var/lib/postgresql/data/pgdata -R;
4、修改postgres.conf配置
# 在备份的同时允许查询
hot_standbyon
# 流复制最大延迟 (可选)
max_standby_streaming_delay30s
# 从向主报告状态的最大间隔时间 (可选)
wal_receiver_status_interval10s
# 查询冲突时向主反馈 #默认参数非主从配置相关参数表示到数据库的连接数 (可选)
hot_standby_feedbackon
# 一般从库做主要的读服务时设置值需要高于主
max_connections1000
5、停止从数据库配置docker-compose.yml文件 cd /opt/postgresql
docker-compose down
于/opt/postgresql目录下编辑docker-compose.yml
version: 3
services:postgres-slave:image: pgrouting/pgrouting:12-3.1-3.1.3container_name: postgres12-slaveenvironment:POSTGRES_USER: postgresPOSTGRES_PASSWORD: 7Y6G#pg2789#Wsports:- 5432:5432volumes:#- ./data:/var/lib/postgresql/data- ./data/pgdata:/var/lib/postgresql/data- /etc/localtime:/etc/localtime:ro #将外边时间直接挂载到容器内部权限只读# restart: always
三、验证主从是否成功
1、连接数据库执行如下SQL命令 select client_addr,sync_state from pg_stat_replication;
2、连接数据执行如下SQL命令
select pg_is_in_recovery();