Centos7下Postgresql9.3主备双机流复制搭建(同步与异步)

Centos7下postgresql9.3(以下简称pg9.3)主备双机流复制搭建(同步与异步

异步流复制配置:

前提先规划好主机,网络,存储,主备机时间同步等。

1,主备库建立

 前提主备机器都已安装完pg9.3,参考Centos7下postgresql9.3源码安装:https://www.cnblogs.com/jinli1771/p/14289309.html

2,主机新建replication角色

postgres=# CREATE USER repl REPLICATION LOGIN  ENCRYPTED PASSWORD 'repl';

 

3,配置主库postgresql.conf和pg_hba.conf。

1)配置postgresql.conf

# - Settings -

wal_level = hot_standby                       #主备机需配置为hot_standby

# - Archiving -

archive_mode = on                       # 为on表示归档模式开启

archive_command = 'cp %p /usr/local/pg93/data/archive/%f'   # %p代表xlog日志的全路径,%f指文件名

max_wal_senders=16                         #至少1个流复制节点连接到主机

wal_keep_segments=32                     #WAL日志保留个数,不能超出目录大小,编译时指定大小,默认10M

2)配置pg_hba.conf

 

红框代表允许repl用户从任何IP免密连接到主机。

4,备节点使用pg_basebackup创建备库基础备份(创建前先删除$PGDATA目录)

 

-Fp表示输出的格式默认普通非压缩

-P 指打印出复制进度

-R 直接生成备机用于复制的配置文件recovery.conf

-D 表示复制至指定目录

-h 主机名

-p 端口号

-U 复制的用户

由于主机pg_hba.conf配置的repl免密登录因此可以不用输入密码。

复制完毕后,检查recovery.conf

 

 primary_conninfo指连接到主机(192.168.138.81)的用户是repl,端口是8493。

5,启动hot_standby

pg_ctl start

 

 查看数据库已启动,同时多了流复制接收进程和恢复进程

 

6,测试验证

主节点执行

 

备节点查询已同步

 

 同步流复制

1 主机只需在异步流复制两个postgresql.conf配置添加两个参数:

# - Settings -

synchronous_standby_names = '*'     # 同步流复制的备机列表名称,*代表全部的备节点

# - Master Server -

synchronous_commit = on         # 同步流复制提交,支持全局,事务,会话中打开

2 测试同步流复制:

1)连接主节点,插入test表,插入成功无等待。

  2)模拟备节点故障停止,主节点再次插入已经变为等待。

主节点

  

  3)重新启动备节点,发现主节点插入成功。

主节点

 

  

原文地址:https://www.cnblogs.com/jinli1771/p/14315775.html