首页
首页
文章目录
  1. 简介
  2. 整体思路
  3. 1、关闭pacrmarker集群
  4. 2、检查pgsql记录最后的检查点为是否一致
  5. 3、备份老的data目录或者备份相关配置文件
  6. 4、编译安装pgsql11、在主库上初始化数据库
  7. 5、使用pg_upgrade -k升级数据库版本(主)
  8. 6、恢复配置文件(主)
  9. 7、启动停止pgsql数据库检查是否正常运行(主)
  10. 8、备份从库的配置文件(从)
  11. 9、传输整个主库数据目录到备库
  12. 10、启动备库、在主库检查是否连接成功
  13. 11,12、启动pacemarker集群、修改pacemarker配置文件,指向新的pgsql11路径
  14. 13、清除pacemarker异常

postgresql9.6.6 升级到11.2过程记录二(pacemarker 高可用+ pgsql主从)

简介

昨天写了一文章是《postgresql9.6.6 升级到11.2过程记录》,针对的是单库 没有集群的操作方法;

昨天晚上我就按照这个思路去升级我们的生产集群环境,很不幸,升级失败。。。 主从升级和单点升级不一样。在升级一台之后 pacemarker高可用无法启动pgsql

启动之后pgsql总是recovery…,搞得我慌的一匹,没办法 折腾了三个多小时,只能恢复了,所以就有了今天这篇文章。

如何升级基于pacemarker+pgsql高可用的pgsql版本。

整体思路

整体思路

1、关闭pacrmarker集群

1
pcs cluster stop --all

2、检查pgsql记录最后的检查点为是否一致

1
2
3
4
5
6
# 主库
$ pg_controldata | grep "Latest checkpoint location"
$ Latest checkpoint location: 0/1C0000D0
# 备库
$ pg_controldata | grep "Latest checkpoint location"
$ Latest checkpoint location: 0/1C0000D0

3、备份老的data目录或者备份相关配置文件

方法一、备份postgresql.conf和pg_hba.conf

方法二、备份整个数据库data目录。

我采用的是方法二。虽然慢但是保险

4、编译安装pgsql11、在主库上初始化数据库

具体请看上一篇文章。

5、使用pg_upgrade -k升级数据库版本(主)

1
/usr/local/pgsql11/bin/pg_upgrade -d /pgdata/data/ -D /pgdata/data11/ -b /usr/local/pgsql/bin -B /usr/local/pgsql11/bin/

备注:该命令的详细操作请看上一篇文章《postgresql9-6-6-升级到11-2过程记录》。有详细描写。各个参数的作用

6、恢复配置文件(主)

1
2
$ cp /pgdata/data/postgresql.conf /pgdata/data11/
$ cp /pgdata/data/pg_hba.conf /pgdata/data11/

7、启动停止pgsql数据库检查是否正常运行(主)

1
/usr/local/pgsql11/bin/pg_ctl -D /pgdata/data11/ start

8、备份从库的配置文件(从)

与第三步基本一致

方法一、备份postgresql.conf和pg_hba.conf和recovery.conf

方法二、备份整个数据库data目录。

我采用的是方法二。虽然慢但是保险

9、传输整个主库数据目录到备库

1
/usr/local/pgsql11/bin/pg_basebackup -h 10.10.76.220 -U postgres -D /pgdata/data11/ -X stream -P

10、启动备库、在主库检查是否连接成功

1
2
3
4
5
6
/usr/local/pgsql11/bin/pg_ctl -D /pgdata/data11/ stop

# 在主库执行
psql -U postgres
select * from pg_stat_replication ;
\q

11,12、启动pacemarker集群、修改pacemarker配置文件,指向新的pgsql11路径

1
2
3
4
crm
configure
edit
y

13、清除pacemarker异常

1
pcs resource cleanup

以上

End!

支持一下
扫一扫,我会更有动力更新
  • 微信扫一扫
  • 支付宝扫一扫