磐维数据库2.0版本升级实战

本文主要介绍了使用pwpatch工具将磐维数据库从2.0.2版本升级到2.0.3版本的过程。

1 升级须知

  • 由于升级期间需停止数据库运行,请提前规划业务中断窗口期。
  • 确保在业务中断窗口期内,数据库 License 未过期。
    如安装了正式 License,则检查正式 License;如果没有正式 License,则查临时 License。
    要检查 License 是否过期,使用 pw_licensetool 工具执行以下命令。
    pw_licensetool { --view-temporary | --dump= $license_dir }

1.1 升级方式

升级前与升级后的 PanWeiDB 数据库为相同大版本时,版本内部补丁升级的方式选择如下表所示。

1.2 检查数据库版本

postgres=# select pw_version();
                                 pw_version                                  
-----------------------------------------------------------------------------
 (PanWeiDB_V2.0-S2.0.2_B01) compiled at 2024-03-29 20:29:01 commit 2b900fc  +
  product name:PanWeiDB                                                     +
  version:V2.0-S2.0.2_B01                                                   +
  commit:2b900fc                                                            +
  openGauss version:5.0.0                                                   +
  host:x86_64-pc-linux-gnu
(1 row)

 虚拟机环境中数据库版本为V2.0-S2.0.2_B01 ,因此使用pwpatch进行升级。

1.3 升级流程

1、升级前,用户需明确当前和目标 PanWeiDB 数据库版本并选择合适的升级方式。本步骤需完成升级前检查和备份数据、校验软件包等操作。
2、执行升级时,用户依据指南进行升级。
3、升级执行完成后用户需进行升级验证,验证升级后版本是否正确、系统是否正常等内容。
4、如升级验证不通过或升级失败,需要对升级操作进行回滚和还原。
5、完成以上步骤后升级流程结束。

1.4 注意事项

  • 升级方式的选择与数据库版本有较大相关性,用户选择方式前应了解当前PanWeiDB 数据库的版本。
  • 建议在数据库系统空闲情况下进行升级,尽量避开业务繁忙的时间段。
  • 由于安装包名称变化,PanWeiDB 2.0.0 PSU1 版本 CM 无法识别 PanWeiDB V2.0-S2.0.2_B01 内核包,会影响扩容操作。因此需要升级 CM 版本。
  • PanWeiDB 2.0.0 PSU1 版本中 CM 已知问题的修复需要进行 CM 升级。
  • PanWeiDB V2.0-S2.0.3_B01 对应版本依赖库与 PanWeiDB 2.0.0 PSU1版本 CM 依赖存在差异。

2 升级前准备

2.1 检查数据库状态,确保数据库运行正常

[omm@node1 ~]$ pw_ctl status
[2024-07-17 09:15:18.384][973525][][pw_ctl]: pw_ctl status,datadir is /database/panweidb/data 
pw_ctl: server is running (PID: 936290)
/database/panweidb/app/bin/panweidb "-D" "/database/panweidb/data" "-M" "primary"

2.2 检查数据库节点磁盘使用率 

df -h
建议:数据库节点磁盘使用率低于 80% 时再执行升级操作。

2.3 数据备份

升级过程有可能会影响到业务的正常运行。提前备份数据,就可以在风险发生后,尽快的恢复业务。请参考《PanWeiDB V2.0-S2.0.3 管理员指南》->备份与恢复章节,完成数据备份。
建议:对行数据备份进行压缩,减少磁盘占用。 

2.4 验证 2.0.3 安装包的md5

[root@node1 soft]# md5sum PanWeiDB_V2.0-S2.0.3_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz 
8a8a975f36328b590a07b546132d67d2  PanWeiDB_V2.0-S2.0.3_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz

2.5 检查 python 环境 

[root@node1 soft]# python3 -V
Python 3.7.9

3 集群升级方案

PanWeiDB V2.0-S2.0.2_B01 升级至 PanWeiDB V2.0-S2. 0.3_B01

 在进行升级前,请确保已执行 2 升级前准备 相关操作。
说明:本文以数据库安装目录为 /database/panweidb 为例。

3.1停止数据库集群

1、备份配置文件
[omm@node1 ~]$ cp /home/omm/.bashrc /home/omm/bashrc.bak
2、备份数据库系统目录
mkdir -p /database/panweidb/bak/app
cp -r /database/panweidb/app/bin /database/panweidb/bak/app/bin
cp -r /database/panweidb/app/share /database/panweidb/bak/app/share
cp -r /database/panweidb/tool /database/panweidb/bak/app/tool
cp -r /database/panweidb/app/lib /database/panweidb/bak/app/lib
cp -r /database/panweidb/app/include /database/panweidb/bak/app/include
3、查看集群状态
[omm@node1 ~]$ gs_om -t status --detail
[  CMServer State   ]

node     node_ip         instance                             state
---------------------------------------------------------------------
1  node1 *.*.*.50  1    /database/panweidb/cm/cm_server Primary
2  node2 *.*.*.52  2    /database/panweidb/cm/cm_server Standby
3  node3 *.*.*.54  3    /database/panweidb/cm/cm_server Standby

[   Cluster State   ]

cluster_state   : Normal
redistributing  : No
balanced        : Yes
current_az      : AZ_ALL

[  Datanode State   ]

node     node_ip         instance                     state            
-----------------------------------------------------------------------
1  node1 *.*.*.50  6001 /database/panweidb/data P Primary Normal
2  node2 *.*.*.52  6002 /database/panweidb/data S Standby Normal
3  node3 *.*.*.54  6003 /database/panweidb/data S Standby Normal
4、停止集群
[omm@node1 ~]$ gs_om -t stop
Stopping cluster.
=========================================
Successfully stopped cluster.
=========================================
End stop cluster.
再次查看集群状态,state 列为 Down 表示集群停止成功。
gs_om -t status --detail
[omm@node1 ~]$ gs_om -t status --detail
[  CMServer State   ]

node     node_ip         instance                             state
---------------------------------------------------------------------
1  node1 *.*.*.50  1    /database/panweidb/cm/cm_server       Down
2  node2 *.*.*.52  2    /database/panweidb/cm/cm_server       Down
3  node3 *.*.*.54  3    /database/panweidb/cm/cm_server       Down

cm_ctl: can't connect to cm_server.
Maybe cm_server is not running, or timeout expired. Please try again.

5、调整数据库配置。
cp -r postgresql.conf postgresql.conf.bak
5.1 修改各节点postgresql.conf 文件中的以下数据库参数:
logging_collector=on
enable_global_syscache=on
uppercase_attribute_name=off
enable_prevent_job_task_startup =on
5.2 注释各节点的 postgresql.conf 文件中的 replconninfo 参数。
#replconninfo1 = 'xxxxxxxxxxxxxxxxxxxxxxxxx' 
#replconninfo2 = 'xxxxxxxxxxxxxxxxxxxxxxxxx'
6、进行集群解耦
注释各节点数据库定时任务。
[omm@node1 data]$ crontab -e

#*/1 * * * * source /etc/profile;(if [ -f ~/.profile ];then source ~/.profile;fi);source ~/.bashrc;nohup /database/panweidb/app/bin/om_monitor -L /database/panweidb/log/omm/cm/om_monitor >>/dev/null 2>&1 &
停止 各节点om_monitor 进程。
[omm@node1 data]$ ps -ef | grep om_monitor
omm       110739       1  0 Jul16 ?        00:09:13 /database/panweidb/app/bin/om_monitor -L /database/panweidb/log/omm/cm/om_monitor
omm       995776  989250  0 10:14 pts/0    00:00:00 grep --color=auto om_monitor
[omm@node1 data]$ kill -9 110739
[omm@node1 data]$ ps -ef | grep om_monitor
omm       995892  989250  0 10:16 pts/0    00:00:00 grep --color=auto om_monitor
7、修改环境变量。
vi ~/.bashrc 加入:
export PGUSER=omm
export LC_ALL=en_US.UTF-8
注意不动原来的环境变量。

 3.3 升级cm版本

本文以升级安装包上传至 /soft 目录为例。 

解压安装包
cd /soft
[root@node1 soft]# mkdir panwei203cm
[root@node1 soft]# tar zxvf PanWeiDB_V2.0-S2.0.3_B01-install-bclinux_euler21.10-x86_64-no_mot.tar.gz -C panwei203cm

分别将 cm 工具解压到数据库系统目录的 app 目录,将 om 工具解压到数据库系统目录的 tool 目录下,并替换 tool 目录下的 version.cfg。
[root@node1 soft]# cd panwei203cm
[root@node1 panwei203cm]# tar xvf PanWeiDB_V2.0-S2.0.3_B01-bclinux-64bit-cm.tar.gz -C /database/panweidb/app

[root@node1 panwei203cm]# tar xvf PanWeiDB_V2.0-S2.0.3_B01-bclinux-64bit-om.tar.gz -C /database/panweidb/tool
[root@node1 panwei203cm]# cp /database/panweidb/app/version.cfg /database/panweidb/tool/
cp: overwrite '/database/panweidb/tool/version.cfg'? y

将解压后的文件所有权授予 omm 用户
[root@node1 panwei203cm]# cd /database/panweidb
[root@node1 panweidb]# chown omm:dbgrp -R *
[root@node1 panweidb]# 

3.4 配置环境变量(可选) 

已进行环境变量隔离的集群可以跳过本步骤。
对于未进行环境变量隔离的集群(如 OM 默认部署的集群),pwpatch 在升级过程中会在 .bashrc 清理环境变量,可能会导致缺少部分运行所需的环境变量,导致集群无法启动,OM 工具无法使用等现象。因此需要按照备份的环境变量修改.bashrc 文件。

[omm@node1 ~]$ mv bashrc.bak .bashrc
[omm@node1 ~]$ chmod +r .bashrc
[omm@node1 ~]$ ls -l .bashrc
-rw-r--r-- 1 omm dbgrp 857 Jul 17 09:50 .bashrc
使环境变量生效:
[omm@node1 ~]$ source ~/.bashrc

3.5 恢复集群环境 

1 确认$GAUSSHOME 环境变量是否指向正确路径。
[omm@node1 ~]$ echo $GAUSSHOME
/database/panweidb/app
2 使用 gs_om 工具恢复集群环境。
[omm@node1 ~]$ gs_om -t generateconf -X panweidb1m2s.xml --distribute
Generating static configuration files for all nodes.
Creating temp directory to store static configuration files.
Successfully created the temp directory.
Generating static configuration files.
Successfully generated static configuration files.
Static configuration files for all nodes are saved in /database/panweidb/tool/script/static_config_files.
Distributing static configuration files to all nodes.
Successfully distributed static configuration files.
也可以替换备份的 cluster_static_config。
cp /database/panweidb/bak/app/bin/cluster_static_config $GAUSSHOME/bin
3 恢复配置文件。
cd $PGDATA
vi postgresql.conf
恢复 postgresql.conf 文件为升级前的配置。
logging_collector=off
enable_global_syscache=off
uppercase_attribute_name=on
enable_prevent_job_task_startup =off
replconninfo1 ='xxxxxxxxxxxxxxxxxxxxxxxxx' 
replconninfo2 = 'xxxxxxxxxxxxxxxxxxxxxxxxx

4 恢复定时任务。
crontab -e

3.6 手工升级其它两台备库 

操作步骤请参考3.1-3.5。 

 3.7 启动集群

cm_ctl start

3.8 查看集群状态 

6 
[omm@node1 ~]$ gs_om -t status --detail
[  CMServer State   ]

node     node_ip         instance                             state
---------------------------------------------------------------------
1  node1 *.*.*.50  1    /database/panweidb/cm/cm_server Primary
2  node2 *.*.*.52  2    /database/panweidb/cm/cm_server Standby
3  node3 *.*.*.54  3    /database/panweidb/cm/cm_server Standby

[   Cluster State   ]

cluster_state   : Normal
redistributing  : No
balanced        : Yes
current_az      : AZ_ALL

[  Datanode State   ]

node     node_ip         instance                     state            
-----------------------------------------------------------------------
1  node1 *.*.*.50  6001 /database/panweidb/data P Primary Normal
2  node2 *.*.*.52  6002 /database/panweidb/data S Standby Normal
3  node3 *.*.*.54  6003 /database/panweidb/data S Standby Normal

3.9 检查升级后数据库版本 

[omm@node1 ~]$ gsql --version
gsql (PanWeiDB_V2.0-S2.0.3_B01) compiled at 2024-05-25 22:36:36 commit e857234 

总结 

总的来说,升级过程还是比较顺利的。 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值