步骤:
1.主库创建从库复制账号:
CREATE USER sync replication LOGIN CONNECTION LIMIT 5 ENCRYPTED PASSWORD '123456';
2.修改pg_hba.conf,增加replica用户,进行同步。

3.修改postgresql.conf

wal_level = hot_standby # 这个是设置主为wal的主机

max_wal_senders = 32 # 这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个
wal_keep_segments = 256 # 设置流复制保留的最多的xlog数目
wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间

max_connections = 100 # 这个设置要注意下,从库的max_connections必须要大于主库的

4.重启主数据库
5.清空备库data目录下所有文件。使用pg_basebackup从主库拉取基础备份到备库,使用stream复制到从库data目录.pg_basebackup为postgresql自带备份工具,除此之外还有pg_dump,pg_dumpall

./opt/ppas/bin/pg_basebackup -Fp --progress -D /opt/ppas/data/ -h 192.168.37.136 -p 5444 -Usync -W

6.data目录重新赋权

chown -R enterprisedb.enterprisedb /opt/ppas/data

7.修改从库recovery.conf 文件,该文件可复制/opt/ppas/share/recovery.conf.sample后进行修改。该文件用户设置主库相关信息

cp /opt/ppas/share/recovery.sample /opt/ppas/data/recovery.conf
修改以下内容:
standby_mode = on # 这个说明这台机器为从库
primary_conninfo = 'host=10.12.12.10 port=5432 user=replica password=replica' # 这个说明这台机器对应主库的信息

recovery_target_timeline = 'latest' # 这个说明这个流复制同步到最新的数据
8.修改从库postgresql.conf文件
vi /opt/ppas/data/postgresql.conf
修改以下内容:
max_connections = 1000 # 一般查多于写的应用从库的最大连接数要比较大

hot_standby = on # 说明这台机器不仅仅是用于数据归档,也用于数据查询
max_standby_streaming_delay = 30s # 数据流备份的最大延迟时间
wal_receiver_status_interval = 1s # 多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间
hot_standby_feedback = on # 如果有错误的数据复制,是否向主进行反馈

9.启动从库。查看从库进程中是否存在在recieve进程及主库进程中是否存在sender进程。存在则搭建成功。如果没有。查看日志。日志所在路径为:/opt/ppas/data/pg_log/
10.在主库查看复制状态: select * from pg_stat_replication;

说明:-[ RECORD 1 ]----+------------------------------
pid | # sender的进程
usesysid | # 复制的用户id
usename | # 复制的用户用户名
application_name | walreceiver
client_addr | # 复制的客户端地址
client_hostname |
client_port | # 复制的客户端端口
backend_start | # 这个主从搭建的时间
backend_xmin |
state | # 同步状态 startup: 连接中、catchup: 同步中、streaming: 同步
sent_location | # Master传送WAL的位置
write_location | # Slave接收WAL的位置
flush_location | # Slave同步到磁盘的WAL位置
replay_location | # Slave同步到数据库的WAL位置
sync_priority | #同步Replication的优先度
0: 异步、1~?: 同步(数字越小优先度越高)
sync_state | # 有三个值,async: 异步、sync: 同步、potential: 虽然现在是异步模式,但是有可能升级到同步模式

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code