Pg 流复制方式HA 版本升级步骤

一、HA Description:

Master:192.168.1.10

Slave:192.168.1.20

VIP: eth0:pgvip(master and slave) 192.168.1.30

PGDATA: /pgdata95

pg_version: 9.5.2

二、upgrade steps:

(一)升级Slave数据库软件版本

1.postgres(192.168.1.20)

pg_ctl -D /pgdata95 stop -m fast

2.postgres(192.168.1.20)

update postgresql soft version,不使用pg_upgrade命令方式升级,仅小版本升级使用9.5.2 --》 9.5.3

安装同主分支版本 例如,9.5.3

3.postgres(192.168.1.20)

修改数据库PATH为最新版本的bin路径,例如,

# Installation prefix

prefix=/opt/pgsql/9.5.7(新版本软件目录)

# Data directory

PGDATA="/pgdata95"(原data目录)

启动salve

pg_ctl -D /path/to/database start

(二)停止VIP,禁止提供服务

4.root(192.168.1.10)

ifconfig eth0:pgvip down

(三)Master 执行检查点

5.db super(192.168.1.10)

checkpoint;

6.postgres(192.168.1.10)

SELECT sent_location, replay_location

FROM pg_stat_replication WHERE usename = ‘rep_user‘;

7.postgres(192.168.1.10)

重复以上查询,直到sent_location 和 replay_location 相等

8.postgres(192.168.1.10)

pg_ctl -D /pgdata95 stop -m fast

(四)提升Slave为Master

9.postgres(192.168.1.20)

pg_ctl -D /pgdata95 promote

(五)启动VIP,对外提供服务

10.root(192.168.1.20)

ifconfig eth0:pgvip 192.168.1.30 up

(六)通知研发或者运维重启应用程序的数据库连接池

11.如果必要,通知研发与支持重启应用程序的数据库连接池。

(七)升级 Master 数据库软件版本

12.postgres(192.168.1.10)

update postgresql soft version

修改数据库PATH为最新版本的bin路径,例如,

# Installation prefix

prefix=/opt/pgsql/9.5.7(新版本软件目录)

# Data directory

PGDATA="/pgdata95"(原data目录)

(八)重做Slave

13.postgres(192.168.1.10)

清空数据库数据目录,rm -Rf /pgdata95

14.postgres(192.168.1.10)

pg_basebackup -U rep_user -h 192.168.1.20 -D /pgdata95 --checkpoint=fast --xlog-method=stream -R

(九)启动新的Slave

15.postgres(192.168.1.10)

pg_ctl -D /path/to/database start

使用方式

以上升级最好在数据库主版本一致的情况下进行

  1. 如slave(9.5.2)升级到(10.0.beta1),pg_upgrade升级方式

    slave日志报错:

    2017-05-23 00:09:19.319 CST [10078] FATAL:  database system identifier differs between the primary and standby

    2017-05-23 00:09:19.319 CST [10078] DETAIL:  The primary‘s identifier is 6417769161397888214, the standby‘s identifier is 6422989582

    707312045.

    2017-05-23 00:09:34.340 CST [10098] FATAL:  database system identifier differs between the primary and standby

    2017-05-23 00:09:34.340 CST [10098] DETAIL:  The primary‘s identifier is 6417769161397888214, the standby‘s identifier is 6422989582

    707312045.

    如遇到此情况,需要先停止Master数据库对外服务,然后升级Master为大版本,重新做Slave解决

  2. 如果slave(9.5.2)升级到(9.5.3)

可以顺利升级

时间: 2024-10-05 20:20:53

Pg 流复制方式HA 版本升级步骤的相关文章

PGPool-II+PG流复制实现HA主备切换

基于PGPool的双机集群如下图所示:pg主节点和备节点实现流复制热备,pgpool1,pgpool2作为中间件,将主备pg节点加入集群,实现读写分离,负载均衡和HA故障自动切换.两pgpool节点可以委托一个虚拟ip节点作为应用程序访问的地址,两节点之间通过watchdog进行监控,当pgpool1宕机时,pgpool2会自动接管虚拟ip继续对外提供不间断服务. 1. 主机规划 192.168.20.201 redis01 192.168.20.202 redis02 192.168.20.2

corosync+pacemaker实现pg流复制自动切换

一.环境 $ cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) node1: 192.168.111.128 node2: 192.168.111.129 vip-master: 192.168.111.228 vip-slave: 192.168.111.229 配置主机名 hostnamectl set-hostname postgres128 hostnamectl set-hostname postgres129 [

pg流复制部署实践

1 介绍 流复制是pg数据库9.0后面版本新增的功能,基本原理是从服务器连接到主服务器,主服务器在WAL记录产生时就将它们以流式传送到从服务器中,而不必等到WAL日志文件被填充. 默认情况下,流复制是异步的,在这种情况下,主服务器提交一个事务与该变化在从服务器上变得可见之间存在短暂的延迟,不过这种延迟比基于文件的日志传送方式中要小得多,在从服务器硬件等负载条件允许的情况下,延迟通常低于一秒. 2 部署 2.1 服务器配置 服务器 IP 说明 master(centos6.5) 192.168.0

【Postgresql】postgresql9.3.9版本基于流复制方式双机热备方案

系统环境:centos6.5数据库版本: postgres9.3.9虚拟机2台:Master:10.0.2.160Slave:10.0.2.69数据存储位置:/usr/local/pgsql/data/ 安装pgsql数据库 安装过程可参考我上一篇博客:http://blog.51cto.com/13632960/2117902 两台机器都需要安装完成,我在做热备的时候,Master数据库开启,Slave关闭. 创建流复制用户 Master端进入数据库并执行: CREATE USER repus

pg流复制

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

Postgresql流复制+pgpool实现高可用

pgpool 概述 pgpool-II 是一个位于 PostgreSQL 服务器和 PostgreSQL 数据库客户端之间的中间件,它提供以下功能:连接池.复制.负载均衡.限制超过限度的连接以及并行查询.文档在此. 四种模式 O 意味着“可用”, X 意味着“不可用(1) 并行查询模式需要同时打开复制和负载均衡,但是复制和负载均衡无法用于并行查询模式中的分布式表.(2) 在线恢复可以和流复制同时使用.(*3) 客户端仅仅是通过 pgpool-II 连接到 PostgreSQL服务器.这种模式仅仅

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

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

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

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数据库原理