怎么在CentOS中配置PostgreSQL主从复制

  介绍

本篇文章为大家展示了怎么在CentOS中配置PostgreSQL主从复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

主从复制

<强> 1。基于文件的日志传送

创建一个高可用性(HA)集群配置可采用连续归档,集群中主服务器工作在连续归档模式下,备服务器工作在连续恢复模式下(1台或多台可随时接管主服务器),备持续从主服务器读取细胞膜文件。

连续归档不需要对数据库表做任何改动,可有效降低管理开销,对主服务器的性能影响也相对较低。

直接从一个数据库服务器移动的WAL记录到另一台服务器被称为日志传送,PostgreSQL通过一次一文件(WAL段)的细胞膜记录传输实现了基于文件的日志传送。

日志传送所需的带宽取根据主服务器的事务率而变化;

日志传送是异步的,即细胞膜记录是在事务提交后才被传送,那么在一个窗口期内如果主服务器发生灾难性的失效则会导致数据丢失,还没有被传送的事务将会被丢失;

数据丢失窗口可以通过使用参数archive_timeout进行限制,可以低至数秒,但同时会增加文件传送所需的带宽。

<强> 2。流复制

PostgreSQL在9. x之后引入了主从的流复制机制,所谓流复制,就是备服务器通过tcp流从主服务器中同步相应的数据,主服务器在细胞膜记录产生时即将它们以流式传送给备服务器,而不必等到细胞膜文件被填充。

默认情况下流复制是异步的,这种情况下主服务器上提交一个事务与该变化在备服务器上变得可见之间客观上存在短暂的延迟,但这种延迟相比基于文件的日志传送方式依然要小得多,在备服务器的能力满足负载的前提下延迟通常低于一秒;

在流复制中,备服务器比使用基于文件的日志传送具有更小的数据丢失窗口,不需要采用archive_timeout来缩减数据丢失窗口;

将一个备服务器从基于文件日志传送转变成基于流复制的步骤是:把复苏。参看文件中的primary_conninfo设置指向主服务器;设置主服务器配置文件的listen_addresses参数与认证文件即可。

操作系统:CentOS 7

数据库:PostgreSQL 12

一、主库配置

1,创建具有流复制权限的用户

CREATE  ROLE  replica  login  replication  encrypted  password  & # 39;副本的密码& # 39;;

2,编辑pg_hba。参看

#,新增或修改下列属性设置   #,监听所有IP   时间=listen_addresses  & # 39; * & # 39;,   #,开启归档   时间=archive_mode 提醒;   #归档命令   时间=archive_command  & # 39; test  !, -f /var/lib/pgsql/12/数据/pg_archive/% f ,,, cp  % p /var/lib/pgsql/12/数据//pg_archive/% f # 39;   #,9.6开始没有hot_standby(热备模式)   wal_level =复制品   #最多有2个流复制连接   max_wal_senders =, 2,   时间=wal_keep_segments  16,   #流复制超时时间   wal_sender_timeout =60年代   #,最大连接数,据说从机需要大于或等于该值   max_connections  100=,

3,重启postgres

pg_ctl  -D /var/lib/pgsql/12/data  -l  logfile 启动

二,从库配置

1,验证在从库是否可以访问主节点

psql  -h  10.20.2.195  -U  postgres

2,停止从库postgres服务

pg_ctl  -D /var/lib/pgsql/12/data  -l  logfile 停止

3,清空从库数据存储文件夹

rm  -rf /var/lib/pgsql/12/数据/*

4,从主服务器上拷贝数据到从服务器,这一步叫做“基础备份”

pg_basebackup  -h 主节点IP  -p  5432年,-U  replica  -Fp  -Xs  -Pv  -R  -D /var/lib/pgsql/12/

5的数据,此数据时目录下会出现备用。信号文件,编辑此文件

# #,加入   时间=standby_mode  & # 39;在# 39;

6,修改postgresql。参看文件

#从机信息和连接用户   时间=primary_conninfo  & # 39;主机=主节点IP 港口=5432,用户=replica 密码=副本用户的密码& # 39;   #说明恢复到最新状态   时间=recovery_target_timeline  latest    #大于主节点,正式环境应当重新考虑此值的大小   max_connections =, 120,   #说明这台机器不仅用于数据归档,还可以用于数据查询   hot_standby =,   #流备份的最大延迟时间   时间=max_standby_streaming_delay  30 s    #向主机汇报本机状态的间隔时间   时间=wal_receiver_status_interval  10 s    # r出现错误复制,向主机反馈   hot_standby_feedback =,

怎么在CentOS中配置PostgreSQL主从复制