PostgreSQL 13 异步流复制+failover切换(#2.3)-202104

PostgreSQL 13 异步流复制+failover切换(#2.3)-202104

 

场景:

Failover : 如果主服务器发生故障,则备用服务器应开始故障转移过程。

 

## PostgreSQL 13 异步流复制+failover切换配置步骤

OS:RedHat 8.3

DB:PostgreSQL 13.1

Master:192.168.108.128

Replica:192.168.108.129

 

1.异步流复制环境配置

# 参考:PostgreSQL 13 异步流复制(#2.1)-202103

# 异步流复制已完成配置

pg13@pgdb01-> pg_controldata | grep cluster

Database cluster state:               in production

pg13@pgdb02-> pg_controldata | grep cluster

Database cluster state:               in archive recovery

 

2.模拟failover切换

2.1 主库(192.168.108.128)关闭或是已经关闭

pg_ctl -D $PGDATA status

pg_ctl -D $PGDATA stop -m fast

# 主库模拟关闭cluster databases

pg13@pgdb01-> pg_ctl -D $PGDATA status

pg_ctl: no server running

 

2.2 激活备库(192.168.108.129)进行failover切换

2.2.1 激活failover前,观察备库(192.168.108.129)standby.signal 文件

pg13@pgdb02-> cat standby.signal 

2.2.2 激活failover前,优先关闭主库(192.168.108.128)后database cluster和postgres进程状态

pg13@pgdb02-> pg_controldata | grep cluster

Database cluster state:               in archive recovery

pg13@pgdb02-> ps -ef | grep postgres

pg13       23066   23032  0 12:19 pts/1    00:00:00 psql -d postgres -p 5432

pg13       24346       1  0 14:03 ?        00:00:00 /db/pg13/soft/bin/postgres -D /db/pg13/data/slavedb

pg13       24347   24346  0 14:03 ?        00:00:00 postgres: startup recovering 000000010000000000000006

pg13       24348   24346  0 14:03 ?        00:00:00 postgres: checkpointer 

pg13       24349   24346  0 14:03 ?        00:00:00 postgres: background writer 

pg13       24350   24346  0 14:03 ?        00:00:00 postgres: stats collector 

pg13       24478   24132  0 14:14 pts/2    00:00:00 grep --color=auto postgres

 

2.2.3 激活failover

# pg12开始新增了一个pg_promote()函数,让我们可以通过SQL命令激活备库

postgres=# select pg_promote(true,60);

 pg_promote 

------------

 t

(1 row)

# 两个参数:

# wait: 表示是否等待备库的 promotion 完成或者 wait_seconds 秒之后返回成功,默认值为 true

# wait_seconds: 等待时间,单位秒,默认 60

 

2.2.4 激活failover后,观察新主库(192.168.108.129)standby.signal文件

# 旧备库激活成主库后,standby.signal文件被自动删除。本身该文件就是标注集群中备库的激活文件,现备库已成主库,自然这个standby.signal文件就会删除

pg13@pgdb02-> ls -l standby.signal 

ls: cannot access 'standby.signal': No such file or directory

 

2.2.5 激活failover后,新主库(192.168.108.129)database cluster和postgres进程状态

# 由旧备库in archive recovery状态变为新主库的in production状态

pg13@pgdb02-> pg_controldata | grep cluster

Database cluster state:               in production

# 旧备库的 startup recovering进程消失,因不需要恢复wal日志流,所以startup recovering进程消失。

pg13@pgdb02-> ps -ef | grep postgres

pg13       23066   23032  0 12:19 pts/1    00:00:00 psql -d postgres -p 5432

pg13       24346       1  0 14:03 ?        00:00:00 /db/pg13/soft/bin/postgres -D /db/pg13/data/slavedb

pg13       24348   24346  0 14:03 ?        00:00:00 postgres: checkpointer 

pg13       24349   24346  0 14:03 ?        00:00:00 postgres: background writer 

pg13       24350   24346  0 14:03 ?        00:00:00 postgres: stats collector 

pg13       24521   24346  0 14:16 ?        00:00:00 postgres: walwriter 

pg13       24522   24346  0 14:16 ?        00:00:00 postgres: autovacuum launcher 

pg13       24523   24346  0 14:16 ?        00:00:00 postgres: logical replication launcher 

pg13       24598   24132  0 14:22 pts/2    00:00:00 grep --color=auto postgres

 

# 至此已完成PostgreSQL 13 异步流复制+failover切换

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值