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)

 可以顺利升级


本文转自 pgmia 51CTO博客,原文链接:http://blog.51cto.com/heyiyi/1928603

相关文章
|
6月前
|
关系型数据库 MySQL API
|
SQL 关系型数据库 测试技术
timescaleDB双机热备流复制与测试
最近有项目要用到热备功能,timescaledb只能兼容pg的流复制,不能兼容其他的复制策略,所以这里我们采用pg的流复制功能镜像部署,并进行了一些测试
855 0
|
关系型数据库 流计算 PostgreSQL
关于PostgreSQL逻辑订阅中的复制状态
关于PostgreSQL逻辑订阅中的复制状态
2682 0
|
3月前
|
关系型数据库 数据库 PostgreSQL
[postgres]配置主从异步流复制
[postgres]配置主从异步流复制
|
5月前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之离线同步任务中,把表数据同步到POLARDB,显示所有数据都是脏数据,报错信息:ERROR JobContainer - 运行scheduler 模式[local]出错.是什么原因
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
存储 NoSQL 数据库
无主复制系统(1)-节点故障时写DB概述
单、多主复制的思路都是:客户端向某主节点发写请求,而DB系统负责将写请求复制到其他副本。
99 0
|
关系型数据库 数据库 PostgreSQL
PostgreSQL 同步流复制原理和代码浅析
数据库ACID中的持久化如何实现 数据库ACID里面的D,持久化。 指的是对于用户来说提交的事务,数据是可靠的,即使数据库crash了,在硬件完好的情况下,也能恢复回来。PostgreSQL是怎么做到的呢,看一幅图,画得比较丑,凑合看吧。假设一个事务,对数据库做了一些操作,并且产生了一些脏数据,
13378 0
LXJ
|
关系型数据库 Shell 数据库
postgresql双机热备(流复制)及主备切换
postgresql双机热备(流复制)及主备切换
LXJ
2472 0
|
SQL Web App开发 关系型数据库
下一篇
无影云桌面