0、前言
前几天,将一台X9M-2升级至22.1.32版本,发现升级时间大大缩短。以前,每台服务器的升级时间大概需要2个小时左右,而现在只需要45分钟左右就可以升级完一台服务器。这个得益于22.1版本中的“Exadata Upgrade Improvements”特性。该特性主要有如下几个方面的增强:
- 优化操作顺序,消除不必要的重复操作、不必要的检查和不必要的reboot.
- 在可能的情况下,异步和并行地执行升级操作.
- 优化Exadata软件映像包,删除不必要的重新打包.
- 在可能的情况下, Pre-staging软件和firmware固件。
下面,简要记录Exadata升级的主要步骤及相关命令。
1、上传升级包
将所有软件包上传至计算节点的/u01/patch_repos目录下。
# mkdir -p /u01/patch_repos/{db,cell,roce}
存储节点升级包、ROCE升级包、计算节点升级包和计算节点的patchmgr工具(Patch 21634633)分别放在不同的目录。
[root@dm01dbadm01 /u01]# tree patch_repos/
patch_repos/
|-- cell
| |-- p37554697_221000_Linux-x86-64.zip
|-- db
| |-- p21634633_251200_Linux-x86-64.zip
| |-- p37471397_221000_Linux-x86-64.zip
|-- roce
|-- p37471399_221000_Linux-x86-64.zip
[root@dm01dbadm01 /u01]#
2、升级前准备工作
2.1、存储节点:
---存储节点的预升级检查
# cd /u01/patch_repos/cell
# unzip p37554697_221000_Linux-x86-64.zip
# cd /u01/patch_repos/cell/patch_22.1.32.0.0.250205
在该目录下创建cell_group文件, 内容为需要升级的存储节点的主机名
# ./patchmgr --cells cell_group --reset_force
# ./patchmgr --cells cell_group --cleanup
# ./patchmgr --cells cell_group --patch_check_prereq --rolling
2.2、计算节点:
---使用patchmgr工具备份操作系统:
# cd /u01/patch_repos/db/
# unzip p21634633_251200_Linux-x86-64.zip
# cd /u01/patch_repos/db/dbserver_patch_250213.1
在该目录下创建db_group文件,指定需要升级的计算节点, 注意,发起备份命令的计算节点不能对自己进行备份和升级工作。 所以对自己的备份和升级工作需要在其他计算节点执行。
# ./patchmgr --dbnodes db_group --repo /u01/patch_repos/db/p37471397_221000_Linux-x86-64.zip --target_version 22.1.32.0.0.250205 --cleanup --rolling
# ./patchmgr --dbnodes db_group --repo /u01/patch_repos/db/p37471397_221000_Linux-x86-64.zip --target_version 22.1.32.0.0.250205 --backup --rolling
# ./patchmgr --dbnodes db_group --repo /u01/patch_repos/db/p37471397_221000_Linux-x86-64.zip --target_version 22.1.32.0.0.250205 --precheck --rolling
---再次使用patchmgr工具备份计算节点db01的操作系统(在除了db01之外的计算节点上执行以下步骤):
# cd /u01/patch_repos/db/
# unzip p21634633_251200_Linux-x86-64.zip
# cd /u01/patch_repos/db/dbserver_patch_250213.1
在该目录下创建db_group文件,指定计算节点dm02dbadm01
# ./patchmgr --dbnodes db_group --repo /u01/patch_repos/db/p37471397_221000_Linux-x86-64.zip --target_version 22.1.32.0.0.250205 --cleanup --rolling
# ./patchmgr --dbnodes db_group --repo /u01/patch_repos/db/p37471397_221000_Linux-x86-64.zip --target_version 22.1.32.0.0.250205 --backup --rolling
# ./patchmgr --dbnodes db_group --repo /u01/patch_repos/db/p37471397_221000_Linux-x86-64.zip --target_version 22.1.32.0.0.250205 --precheck --rolling
2.3、ROCE交换机:
---升级前的预升级检查工作
# cd /u01/patch_repos/roce
# unzip p37471399_221000_Linux-x86-64.zip
# cd /u01/patch_repos/roce/patch_switch_22.1.32.0.0.250205
在该目录下创建roce_group文件,指定需要升级的roce交换机
# ./patchmgr --roceswitches roce_group --upgrade --roceswitch-precheck
3、正式升级
3.1 升级存储节点:
# cd /u01/patch_repos/cell/patch_22.1.32.0.0.250205
在该目录下创建cell_group文件, 内容为需要升级的存储节点的主机名
# screen -S cell01_upgrade
# ./patchmgr --cells cell_group --reset_force
# ./patchmgr --cells cell_group --cleanup
# ./patchmgr --cells cell_group --patch_check_prereq --rolling
# ./patchmgr --cells cell_group --patch --rolling
# ./patchmgr --cells cell_group --cleanup
升级后的检查工作:
# imageinfo
# imagehistory
3.2 升级计算节点:
# cd /u01/patch_repos/db/dbserver_patch_250213.1
在该目录下创建db_group文件, 内容为需要升级的计算节点的主机名
# screen -S db02_upgrade
# ./patchmgr --dbnodes db_group --repo /u01/patch_repos/db/p37471397_221000_Linux-x86-64.zip --target_version 22.1.32.0.0.250205 --upgrade --nobackup --rolling
升级后的检查工作:
# imageinfo
# imagehistory
3.3 升级RCOE交换机:
# cd /u01/patch_repos/roce/patch_switch_22.1.32.0.0.250205
在该目录下创建 roce_group 文件, 内容为Exadata中所有ROCE交换机的名称
# screen -S IB_upgrade
# ./patchmgr --roceswitches roce_group --upgrade --roceswitch-precheck
# ./patchmgr --roceswitches roce_group --upgrade
升级后的检查工作:
show version