HANA SR升级


提前先安装一套S/4 2020,并配置好SR,HANA版本为2.0 SP05 小版本为52

升级HANA SR的官方思路有三种:

  1. 断开SR,主备机分别升级,升级完成后重建SR。

  2. 断开SR,备机清空后,重新安装最新版的HANA2.0,重建SR。数据同步完成后,停止主节点让备节点接管,再升级主节点。重新切换到主节点接管。

  3. 不断开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推荐参数配置)