提前先安装一套S/4 2020,并配置好SR,HANA版本为2.0 SP05 小版本为52
升级HANA SR的官方思路有三种:
-
断开SR,主备机分别升级,升级完成后重建SR。
-
断开SR,备机清空后,重新安装最新版的HANA2.0,重建SR。数据同步完成后,停止主节点让备节点接管,再升级主节点。重新切换到主节点接管。
-
不断开SR,直接在备节点升级,升级完成后停止主节点让备节点接管,再升级主节点。重新切换到主节点接管。
以上三种方式,无论哪一种都可以达到目的,作者懒得重建SR,所以本次采用第三种方式。
从最后的结果上看,其实工作量并没有少太多。因为第三种方式有一个要处理的地方是前两种没有的。
提醒一下,HANA2.0 SP05只能运行在SLES15版本,SLES12是不支持的。强制安装会报错。所以想从SP05以下版本升级的玩家,要么连OS一起升级,要么用上面的方法二。
升级原理可以看看SAP官方HANA标准升级手册,下面这张图可以帮助大家理解
先看看当前SR的状态
Mast server:hana1
Standby server:hana2
下面进入正式的升级环节
零 提前准备的内容
1. 官方标准文档
2. 本文档
3. 系统配置架构清单
4. 用户密码表
5. 计划表
6. 停机通告
7. 回退方案
8. 零食小吃
9. 一盆香炉,三根香(加幸运点)
10. 跑路背包
一 配置SRTAKEOVER key用户
首先,在master DB的systemDB里,创建一个名为MY_REPO_IMPORT_USER的用户,密码为MyRepoUserPW123(密码可以自行修改)。这个用户用来导入新版本的数据字典。打开HANA Studio,在SQL命令窗口中输入以下代码后执行创建用户。
CREATE USER MY_REPO_IMPORT_USER PASSWORD MyRepoUserPW123;
GRANT EXECUTE ON SYS.REPOSITORY_REST TO MY_REPO_IMPORT_USER;
GRANT REPO.READ ON ".REPO_PACKAGE_ROOT" TO MY_REPO_IMPORT_USER;
GRANT REPO.IMPORT TO MY_REPO_IMPORT_USER;
GRANT SELECT ON _SYS_REPO.DELIVERY_UNITS TO MY_REPO_IMPORT_USER;
GRANT REPO.ACTIVATE_IMPORTED_OBJECTS ON ".REPO_PACKAGE_ROOT" TO MY_REPO_IMPORT_USER;
在sidadm用户环境下执行下面的语句,创建SRTAKEOVER KEY:
hdbuserstore SET SRTAKEOVER hana1:30013 MY_REPO_IMPORT_USER MyRepoUserPW123
注意命令中的关键点:
hana1:用hanastudio连接的主机名,不是绑定VIP的虚拟主机名
30013是systemDB的SQL端口
如下图,在主机和备机上都要执行。
官方参考资料:
https://help.sap.com/viewer/6b94445c94ae495c83a19646e7c3fd56/2.0.05/en-US/ab785910b8be46948cb1dce78b373a16.html
二 升级备节点
在备节点中,root用户进入到安装包里,执行下面的语句:
./hdblcm --action=update --ignore=check_signature_file
选择第一项
选择第一项,输入SYSTEM用户的密码
开始升级。升级过程不需要手动停止数据库,会自动重启。
可以看到备机的版本已经升级到53了
三 停止主节点并切换备节点为主节点
停止主节点
备节点启用,在sidadm用户环境下使用下面的命令:
hdbnsutil -sr_takeover
注意:SAP官方注释里有提到参数--suspendPrimary。这个参数suspendPrimary代表强制检查将主节点日志全部写进磁盘,避免漏掉数据。但我在操作的时候会报nameserver的错,但在日志中缺没有任何和错误相关的记录,这个问题可能是个BUG,期待SAP官方处理。
现在可以使用HANA Studio连接上接管的备机了,版本已经升级到53
四 升级主节点
在主节点上启动升级,在root用户环境下进入安装包,使用以下命令:
./hdblcm --action=update --hdbupd_server_nostart --ignore=check_signature_file
注意:参数hdbupd_server_nostart代表升级后不启动主节点数据库
至于为什么,后面会讲到
升级过程与升级备节点过程一样
五 注册主节点到备节点
在sidadm用户环境下,使用以下命令注册主节点到备节点:
hdbnsutil -sr_register --remoteHost=hana2 --remoteInstance=00 --replicationMode=sync --name=hana1 --operationMode=logreplay
六 关闭备节点,让主节点重新接管,并将备节点重新注册
关闭备节点
注意:必须在同步完成后再关闭
全文完
由于我的服务器只有128G内存,两台HANA各自分了64G,剩下的应用仅靠虚拟内存运行,故在做此测试的时候经常无缘无故的卡死,OOM频发,建议有条件的玩家尽量把内存调大一些。毕竟看到这篇文章的读者都是有钱人,不差钱。
整个过程只在接管时会有停机,时长非常短。
主力参考资料:
SAP HANA Server Installation and Update Guide(在help.sap.com可下载)
辅助参考资料:
HA201:High Availability and Disaster Tolerance Administration(没有Learning HUB账号可在CSDN或ITPUB下载)
Note:2078425(安装包签名损坏或为空的解决方案)
Note:2964000(子程序错误解决方案)
Note:2739643(视图为空的解决方案)
Note:2600030(HANA推荐参数配置)