postgresql同步流复制搭建

节点 IP 角色
master 10.10.100.1 master
standby1 10.10.100.2 standby1
standby2 10.10.100.3 standby2

master上创建流复制所需要的用户。

CREATE ROLE replication WITH REPLICATION PASSWORD ‘replication‘ LOGIN;

修改master的pg_hba.conf文件,设置replication用户远程访问权限

## vim /data/pgsql/data/pg_hba.conf,追加下面一行
host    replication     replication        10.10.0.0/16         md5

master上设置与复制相关的参数

wal_level = hot_standby
max_wal_senders = 5
wal_keep_segments = 32
synchronous_standby_names = ‘standby01,standby02‘

master上重启pgsql

/etc/init.d/postgresql-9.5 restart

两个standby上都需要从master上获取一个基础的全备

pg_basebackup -h 10.10.100.1 -D /var/lib/pgsql/9.5/data/ -P -U replication -R  --xlog-method=stream

两个standby上都需要修改standby节点上的postgresql.conf文件,设置备库为standby的状态

## vim /data/pgsql/data/postgresql.conf
hot_standby = on

修改standby1的recovery.c文件,设置master节点的同步信息及trigger文件

standby_mode = ‘on‘
primary_conninfo = ‘application_name=standby01 user=replication password=replication host=10.10.100.1 port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres‘
trigger_file = ‘/data/pgsql/data/postgresql.trigger.1973‘

修改standby1的recovery.conf文件,设置master节点的同步信息及trigger文件

standby_mode = ‘on‘
primary_conninfo = ‘application_name=standby02 user=replication password=replication host=10.10.100.1 port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres‘

standby上重启pgsql

/etc/init.d/postgresql-9.5 restart

可以在master上创建一张测试表并插入数据,来验证standby上是否同步过来数据。当master挂掉之后,在standby上创建trigger_file参数声明的文件,就会触发standby的激活,会自动把standby提升为master。

时间: 2024-10-20 02:11:32

postgresql同步流复制搭建的相关文章

postgresql异步流复制搭建

节点 IP 角色 citus-master 10.10.100.1 master citus-standby 10.10.100.2 standby master上创建流复制所需要的用户. CREATE ROLE replication WITH REPLICATION PASSWORD 'replication' LOGIN; 修改master的pg_hba.conf文件,设置replication用户远程访问权限 ## vim /data/pgsql/data/pg_hba.conf,追加下

PostgreSQL12同步流复制搭建-同步不生效的问题

PostgreSQL12的流复制配置不再放到recovery.conf文件中,但是基本配置还是一样的,过年了也没心情工作,就来搭一下试试. 官方文档: https://www.postgresql.org/docs/12/runtime-config-replication.html 开始: 1)下载安装包: https://www.postgresql.org/docs/12/runtime-config-replication.html 2)解压并安装 tar xzvf postgresql

centos6.5下postgresql9.4.3同步流复制的standby安装与配置

一.同步流复制的架构 PostgreSQL从9.1版本之后提供了同步复制的架构.同步复制要求在数据写入Standby数据库后,事务的commit才返回,所以Standby库出现问题时,会导致主库被hang住.解决这个问题的方法是启动两个Standby数据库,这两个standby数据库只要有一个是正常的,就不会让主库hang住.所以在实际应用中,同步流复制,总是有1个主库和2个以上的Standby库. 二.同步复制的配置 实现同步复制功能主要是在主库上配置参数"synchronous_standb

PostgreSQL构建流复制拉取日志的起始位置在哪里

WaitForWALToBecomeAvailable: if (!InArchiveRecovery) currentSource = XLOG_FROM_PG_WAL; else if (currentSource == 0) currentSource = XLOG_FROM_ARCHIVE; for (;;){ int oldSource = currentSource; if (lastSourceFailed){ switch (currentSource){ case XLOG_F

PostgreSQL数据库Streaming Replication流复制主备延迟测试

PostgreSQL数据库流复制主库和备库之间的延迟时间是多少,无论对HA还是负载均衡来说都应该做个评估.比如单纯的HA架构,当主库发生故障时,我们允许多少时间内的数据丢失.不废话,直接进入本次实验测试. 测试环境: 主库:内存:32G,CPU:8核,IP:192.168.122.101 备库:内存:32G,CPU:8核,IP:192.168.122.102 数据库配置:默认 测试准备: 在两台服务器上安装好PostgreSQL数据库,安装过程不清楚的可以参考文章<PostgreSQL数据库编译

pg流复制

同步流复制应用场景:金融级的应用场景,2个副本通常是不够的,用户可能会需要多个副本,例如,一主4从,要求除了主以外,还需要2个同步的副本,其他可以为异步的副本.另一方面,我们在使用数据库时,为了扩展读的能力,读写分离是比较常见的用法. 还有一种场景,在主备切换时,要求备库快速激活成和主库一样的状态,也需要remote_apply级别的复制. 9.6以前的版本,同步复制是确保XLOG已经复制到备库,而不是已经在备库apply,虽然APPLY通常都很快,可能也在毫秒级别完成,但是以前没有apply级

PostgreSQL 9.5.5主从实现之异步流复制(Hot Standby)

前言 简单记录一下postgresql主从的实现方式之一--基于Standby的异步流复制,这是PostgreSQL9.x版本(2010.9)之后提供的一个很nice的功能,类似的功能在Oracle中是11g之后才提供的active dataguard和SQL Server 2012版本之后才提供的日志传送,此处再次为pg鼓掌,确实是一个很棒的开源数据库.废话不多说,本篇blog就详细记录一下在pg9.5中实现Hot Standby异步流复制的完整配置过程和注意事项. Standby数据库原理

金庸武功之“”左右互搏术“”postgresql 主从异步流复制配置

一.环境准备 a.关闭selinxu b.关闭iptables c.centos6.5 d.postgresql9.4.4 master:192.168.1.211 slave:  192.168.1.212 时间同步: #同步系统时间 [[email protected] ~]#  rm  -rf  /etc/localtime [[email protected] ~]#  ln  -s   /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

PostgreSQL流复制

原理机制 参考--https://yq.aliyun.com/articles/51009 主备总体结构 PG主备流复制的核心部分由walsender,walreceiver和startup三个进程组成. walsender进程是用来发送WAL日志记录的 walreceiver进程是用来接收WAL日志记录的 startup进程是用来apply日志的 配置环境 主机名 IP地址 角色 数据目录 postgres202 192.168.1.202 primary /home/postgres/dat