IBM Cloud Docs
将 SAP S/4HANA 迁移至 IBM Power Virtual Server

将 SAP S/4HANA 迁移至 IBM Power Virtual Server

迁移 SAP S/4HANA 数据库前的步骤

以下部分包含为准备 SAP HANA 数据库迁移而提供的若干重要建议。 阅读并执行相关的 SAP 说明。

在尝试任何数据迁移或复制操作之前,请检查源数据库是否存在任何问题。

如果存在问题,可能是以下问题之一。

  • 垃圾回收中断或失败。
  • 源数据库仍包含客户删除等操作产生的条目、表格或数据,这会导致数据库实际大小出现误报。
  • 数据库检查期间发现不一致之处。
  • 极端的加载或卸载操作会导致孤立条目。
  • 从内存到磁盘的三角合并过程中出现的硬件问题。
  • 检测到过多的页面内存转储,这表明页面可能已损坏。
  • SAP HANA 迷你检查期间显示的警报。

任何数据迁移或复制操作不当都可能导致数据丢失和应用程序不一致。 在执行任何相关任务之前,请务必阅读并理解相关的 SAP 注意事项和更正说明。IBM Cloud® 不对任何数据丢失或应用程序完整性负责。

以下部分包含 SAP 建议的预备步骤,以确保源数据库处于一致的状态。 在开始任何迁移、备份或恢复操作之前,仔细检查源数据库的一致性(例如行存储、列存储、页面)和跟踪文件是否存在任何问题。 在开始迁移之前,必须完成这些建议的步骤。

检查并确认数据库运行状况

检查数据库的健康状况,以降低将现有问题转移到目标系统的风险。 健康检查可防止预先存在的问题(如一致性或块损坏)迁移到目标 SAP HANA 系统。 SAP HANA 在这种情况下,系统复制功能无法为您提供帮助,因此请务必执行这些必要的检查。 请使用以下 SAP 备注来帮助您。

检查数据库跟踪文件

数据库跟踪信息写入操作系统级别的特定文件。 跟踪目录位于:

/usr/sap/<SID>/HDB<inst>/<host>/trace/DB_<SID>/

<sid>adm 用户环境中的以下别名可帮助您快速切换到操作系统级别的跟踪目录:

cdtrace

数据库跟踪文件使用以下命名规则:

<service>_<host>.<port>.<counter>.trc

在动态分层的情况下,可以存在一个符合以下约定的文件( SAP 注释 2871785):

esserver_console_<host>.<port>.<counter>.trc 示例:

indexserver_saphana01.30003.024.trc 您可以在操作系统级别直接访问这些文件,也可以通过以下方式访问:

  • SAP HANA Studio -> Administration -> Diagnosis Files
  • DBACOCKPIT -> Diagnostics -> Diagnosis Files

更多信息

以下 SAP 备注中的SQL语句指示是否需要重组数据库以及重组后节省的空间量。

此检查有两个目的。

  1. 突出显示是否需要对 SAP HANA 数据库进行重组操作。
  2. 如果需要进行重组,它将在节省空间操作完成后提供预估规模。

重组数据库行存储

如果您的数据库严重碎片化,则需要重新组织行存储。

从 SAP HANA 2.0 SPS04 开始,如果利用率低于定义的阈值,则在线行存储重组会自动触发大型行存储(分配大小>= 3.2 GB)。

默认情况下,阈值为60%,每小时在后台检查一次利用率。

如果您的数据库版本低于 SAP HANA 2.0 SPS04,请按照

请务必仔细阅读这些 SAP 说明中的指导,并按照与您的现有 SAP HANA 版本相关的步骤操作。

SQL 迷你检查

使用此SQL语句显示 SAP HANA 数据库的当前大小。

SELECT HOST, PORT, TO_DECIMAL( SUM(FREE_SIZE)*100 / SUM(ALLOCATED_SIZE), 10,2) "Free Space Ratio in %",TO_DECIMAL(
SUM(ALLOCATED_SIZE)/1048576, 10, 2) "Allocated Size in MB",TO_DECIMAL( SUM(FREE_SIZE)/1048576, 10, 2) "Free Size in MB" FROM
M_RS_MEMORY WHERE ( CATEGORY = 'TABLE' ) and ( ALLOCATED_SIZE > 0 ) GROUP BY HOST, PORT

如需更多有用的SQL语句,请使用以下 SAP 备注。 本 SAP 说明包含一些有用的SQL语句,您可以使用 hdbsql 可执行文件从命令行运行这些语句。 或者,您可以使用 SAP HANA Studio内置的SQL控制台。

来自 SQLStatements_Internal.zip 的命令会增加崩溃或终止等不稳定风险。 如果您要运行这些命令,请谨慎操作。 也许先在开发或概念验证系统上运行它们。

以下SQL语句可帮助您识别关键的技术问题。 下载SQL Collection压缩文件时,请搜索 SQL: "HANA_Configuration_MiniChecks"

SQL: "HANA_Configuration_MiniChecks" 进行多项小型检查,如果发现潜在危急情况,则会返回。C = 'X' 您可以使用以下 SAP 备注来解释结果。

在源系统上安排 SAP HANA 大小调整报告

如果计划将现有的 SAP 系统从内部部署站点迁移到 IBM Cloud® 环境,则需要首先运行 SAP Sizing 报告。 SAP HANA 内存大小报告的当前版本为 Advanced correction version 17

如果您想运行 SAP HANA 尺寸报告,请参阅以下 SAP 说明。

建议您使用 SAP 尺码报告的最新高级校正功能。 运行报告时,请确保包含 SAP HANA 数据库增长的预测。 生成的报告将列出您的 Power Virtual Server 实例目标所需的CPU、内存和存储空间建议。 请访问 IBM Cloud®,选择 IBM Power Virtual Server 的最新认证资料。

额外尺寸 SAP 备注

将 EarlyWatch 警报报告作为早期指标

如果您的本地环境设置了 SAP Solution Manager,您可以为源系统生成 EarlyWatch 警报报告。

该报告概述了您的本地源系统可能存在的具体问题。 您必须立即解决SQL性能指标和紧急性能KPI指标的问题。 被标记为 RedSevere problems detected 的问题必须尽快处理。

检查 EarlyWatch 警报报告,了解源数据库 SAP HANA 中存在的问题,并根据严重程度,对 Service SummaryAlert Overview 部分中的每个发现采取行动。

更多相关 SAP 备注 EarlyWatch 警报报告

源数据库凭证

当您在 SAP HANA 系统复制设置中添加 SAP HANA 系统时,请记住,从源主服务器到目标辅助服务器的复制过程会覆盖MDC用户表 SAP${sid}.USR02。 因此,请务必通过检查 SAP HANA Studio,了解当前在源代码上使用SYS权限在 SAP HANA Studio中注册MDC的用户。 作为 Best Practice,请确保您知道数据库用户的登录凭据和源系统的密码。 例如,如果您忘记了密码,并继续执行从源到目标的 SAP HANA 系统复制,您可以通过交换主服务器和辅助服务器来测试辅助目标。 如果您不知道源系统上数据库用户的登录凭证和密码,那么您就无法在 SAP HANA Studio或 SAP HANA Cockpit设置中注册系统。

在 IBM 上创建目标 SAP HANA 系统 Power Virtual Server

规划 IBM Power Virtual Server 部署

您的 IBM Cloud 账户中的Power Server工作区是执行以下步骤的前提条件。 阅读详细信息, 请访问 SAP,网址为 IBM Power Virtual Server。

如 SAP on IBM Power Virtual Server 中的混合云网络注意事项 所述,需要建立混合云网络连接。

可部署 SAP HANA 基础设施的规划在 规划部署中 进行了描述。

目标系统的规模对于您的规划至关重要。 请遵循源系统 SAP HANA 尺寸报告中的建议。 此外,请参考 EarlyWatch 警报报告(EWA报告)中的调查结果。 这两个因素为推荐的目标系统规模提供了切实可行的方法,请参阅 SAP 系统的规模确定流程

比较目标系统所需的CPU、核心和存储空间

检查 IBM Cloud® 中认证的配置文件是否接近或符合源系统尺寸报告中提到的建议,并考虑EWA报告摘要。

请从以下两个链接中选择正确的 IBM Power Systems Virtual Server 认证资料:

目标服务器的存储容量必须与源系统相同或更大,且大小适当

请记住,要考虑到 SAP HANA 数据库的增长,并遵循 IBM 系统存储架构和 SAP HANA TDI配置指南。

以下文件概述了 IBM Cloud 中目标服务器的存储配置要求:

请考虑创建文件系统挂载点所需的额外空间,用于存储软件可执行文件和初始 SAP HANA 系统备份。 根据您计划的 IBM Power Virtual Server 基础设施,您可以创建文件系统作为 NFS 挂载,以导出到架构中的其他系统。

创建软件库文件系统并传输安装包

与之前的演示系统一样,挂载点 swrepo 至少需要 200 GB 的可用空间。 从 SAP Marketplace下载 SAP HANA 软件——与源系统中您的 SAP HANA 版本匹配的版本。

  • 软件下载主页

    • 访问 SAP 中的软件下载 对我来说
    • 请输入您的 SAP“S”用户ID和密码,以便继续操作。
  • 软件中心 目录视图

    • 支持包和升级
    • 按字母顺序索引(A-Z)
    • “H”
    • SAP HANA 平台版
    • SAP HANA 平台版本 2.0
    • SAP HANA 数据库 2.0
    • 确保“选择”框显示 LINUX ON POWER LE 64BIT
    • 选择源系统上安装的 IMDB_SERVER20,下载到您的笔记本电脑或PC上
    • 返回 SAP HANA 平台版 2.0 页面
    • SAP HANA 客户 2.0
    • 确保“选择”框显示 LINUX ON POWER LE 64BIT
    • 选择您在源系统上安装的版本(如果列表中没有您想要的版本,请选择更高版本)
    • 返回 *软件中心目录视图
    • 支持包和升级
    • 右侧是搜索框,搜索 SAPCAR
    • 在显示的结果列表中,选择 SAPCAR 7.53 维护软件组件
    • 选择文件 SAPCAR_1200-70007726.EXE,并确保选择框显示 LINUX ON POWER LE 64BIT
    • 下载到您的笔记本电脑或PC或跳转主机

在目标系统上创建一个名为 /swrepo 的目录。

sudo mkdir /swrepo

确保用户拥有此目录,以便用户能够正常工作和提取文件。

sudo chown $USER: /swrepo

将安装文件和SAPCAR实用程序下载到目标 SAP HANA 服务器 /swrepo 挂载点。 SAPCAR实用程序需要可执行权限才能解压.SAR存档文件。

chmod -R 755 /swrepo/SAPCAR_1200-70007726.EXE

您可以在 .bash_profile 中为该实用程序设置别名SAPCAR。 此设置允许从任何目录执行SAPCAR命令。

要在您的bash配置文件中添加一行,请使用以下命令。

echo "alias SAPCAR='/swrepo/SAPCAR_1200-70007726.EXE'" >>$HOME/.bash_profile

使用源命令启用新定义的别名。

source $HOME/.bash_profile

请发送电子邮件至 SAPCAR -v 获取版本列表,以检查其是否可用:

SAPCAR -v

打开文件

请使用以下示例解压文件。

SAPCAR -xvf IMDB_CLIENT20_XXX_XX-XXXXXXXX.SAR -manifest /SAP_HANA_CLIENT/SIGNATURE.SMF

sapcar文件提取输出如下例所示。

x SAP_HANA_CLIENT/SIGNATURE.SMF
SAPCAR: 98 file(s) extracted

SAPCAR -xvf IMDB_SERVER20_XXX_XX-XXXXXXXX.SAR -manifest /SAP_HANA_DATABASE/SIGNATURE.SMF

x /SAP_HANA_DATABASE/SIGNATURE.SMF
SAPCAR: 355 file(s) extracted

在提取过程中,将创建 /swrepo/SAP_HANA_DATABASE/swrepo/SAP_HANA_CLIENT 目录,其中包含安装所需的文件。

确保目标服务器操作系统和补丁级别与源服务器一致

检查目标系统的操作系统版本和补丁级别。 对于生产系统,同一级别可确保安装程序轻松执行类似和迁移操作。 对于非生产系统,例如 IBM Power Virtual Server 中的概念验证系统(POC),则可以选择更高版本的操作系统。

目标服务器——RHEL和SLES

要确定操作系统版本和补丁级别,请运行以下命令。

cat /etc/os-release

或者,在 Red Hat Linux 系统中,您可以使用第二个文件。

cat /etc/redhat-release

在 SUSE Linux Enterprise Server (用于 SAP 应用程序)上,可通过以下命令列出版本和补丁级别。

lsb_release -a

确保文件系统和挂载点与源系统匹配

源系统和目标系统必须具有相同的存储、LVM和文件系统映射。 只有在需要更大的存储容量或迁移时,才会使用。 在本节开头还强调了文件系统结构要求以及TDI要求。 此外,请确保挂载点和文件的所有权UID和GUID与源系统一致。 此外,挂载点需要两个系统上定义的相同的 <SID>。 当您在目标系统上安装 SAP HANA 时,将使用源系统中相同的 <SID><instance number>

export SID=<SID>                           # SAP HANA System ID (uppercase)
export sid=<sid>                           # SAP HANA System ID (lowercase)
export INSTNO=<INSTNO>                     # SAP HANA Instance Number

export SiteOnPrem=<PrimarySiteName>        # HANA System Replication Site Name 1 - Migration from On-Prem - Source
export SiteOnCloud=<secondarySiteName>     # HANA System Replication Site Name 2 - Migration to On-Cloud - Target

export NODE1=<Hostname 1>                  # Hostname of On-Prem Server
export NODE2=<Hostname 2>                  # Hostname of IBM Power Virtual Server Instance

/etc/hosts 中所有涉及迁移项目的系统条目

/etc/hosts 文件需要包含源系统以及任何相关的 SAP Netweaver或 S/4 FES应用服务器的条目。 您可以使用DNS服务器进行网络资源解析,但如果您在 /etc/hosts 文件中包含IP地址、短名称、FQDN和描述,以帮助识别网络中的服务器,则效果会更好,尤其是在网络解析或DNS服务出现问题时。

准备和调整操作系统,以便 SAP HANA

请使用以下 SAP 说明开始准备阶段,以便安装 SAP HANA。

请确保您完成了 Recommended OS Settings for RHEL 8 中提到的任务,因为这些任务是需要应用的重要调整和性能设置。 如果忽视,可能会影响 SAP 产品的安装以及之后的性能。

使用hcmt工具进行 SAP HANA 预检查

在部署 SAP HANA 或申请 SAP HANA 认证之前,hcmt 的硬件和云测量工具 SAP HANA 可以帮助您测量和分析您的硬件或云系统。 这些工具包括以下组件:

  • SAP HANA 硬件和云测量工具
  • SAP HANA 硬件和云测量分析

在安装 SAP HANA 之前,请使用以下 SAP 提示检查并验证操作系统和配置。

如果您在运行 hcmt 时遇到端口问题,请打开第二个终端会话。 导航至 hcmt 的设置目录,现在开始一个会话,保持所需的端口打开。

要以服务器-客户端模式运行 hcmt,您需要启动两个会话:

  1. hcmt 服务器模式开启——跳转主机从远程服务器收集测试结果
  2. hcmt 客户在目标系统上运行,使用完整执行计划运行 性能测试。SAP HANA hcmt
Hcmt服务器会话

hcmt服务器收集hcmt客户端系统测量到的数据。 运行HCMT服务器的典型系统是跳转主机或类似系统。 导航至hcmt的安装目录,并运行以下命令

sudo ./hcmt -v -S

以下示例为预期输出。

hcmt-2.00.062.00.1650891137 (2022-04-25 15:12:20)

Server started, listening on port 50000 ...
Hcmt 客户会话

在目标系统上,如果您希望将 SAP HANA 服务器作为 hcmt 命令的客户端,请使用完整执行计划。

sudo ./hcmt -v -p /swrepo/HCMT/setup/config/full_executionplan.json

系统输出:

hcmt-2.00.062.00.1650891137 (2022-04-25 15:12:20)
Loading executionplan
LogVolume (/hana/log):
DataVolume (/hana/data):
Hosts: <`Leave Blank!!!!`>  Leave this field blank, otherwise it will affect the test.
Start execution of plan
Executing Test C9C9F832-854F-492D-8E7EFB4609AC435C
Note: CPU Micro Benchmark

如果您收到“端口50000已被占用”的错误信息,则可能已经安装了 SAP HANA。 停止 SAP HANA 系统,然后再次运行 hcmt 命令。

计划变更:CPU性能

该命令将在设置目录下生成 hcmresult-YYYMMDDHHMMSS.zip 文件。 将此文件上传到HCMT SAP 网站并查看结果,以确保HANA设置和配置正确。

如果您遇到问题,仍然可以使用旧的检查工具。

在目标系统上安装 SAP HANA

请记住以下变量:

export SID=<SID>                           # SAP HANA System ID (uppercase)
export sid=<sid>                           # SAP HANA System ID (lowercase)
export INSTNO=<INSTNO>                     # SAP HANA Instance Number

在这个例子中,安装已经完成,您需要输入“Y”继续。 返回HANA_DATABASE目录。

运行 SAP HANA 数据库生命周期管理器命令。

sudo ./hdblcm

以下示例为预期输出。

SAP HANA Lifecycle Management - SAP HANA Database 2.00.061.00.1644229038
************************************************************************

这将扫描目录以查找所需软件。

Scanning software locations...
Detected components:
    SAP HANA Database (2.00.061.00.1644229038) in /swrepo/HANA/SAP_HANA_DATABASE/server
    SAP HANA Database Client (2.11.20.1644165757) in /swrepo/HANA/SAP_HANA_CLIENT/client


Do you want to specify additional components location? (y/n) [n]: `n`

选择 n,无需添加其他组件,然后继续。

Choose an action

Index | Action                    | Description
-------------------------------------------------------------
1     | install                   | Install new system
2     | extract_components        | Extract components
3     | print_detected_components | Print detected components
4     | Exit (do nothing)         |

Enter selected action index [4]: `1`

输入 1,然后按 <enter> 键安装新系统。

以下示例继续输出。


SAP HANA Database version '2.00.061.00.1644229038' will be installed.

Select additional components for installation:

Index | Components | Description
--------------------------------------------------------------------------------
1     | all        | All components
2     | server     | No additional components
3     | client     | Install SAP HANA Database Client version 2.11.20.1644165757

Enter comma-separated list of the selected indices [3]: `1`

输入 1,然后按 <enter> 安装所有组件。 在输出结果下一行接受一系列默认值。

Enter Installation Path [`/hana/shared`]:
Enter Local Host Name [`Yourhostname`]:
Do you want to add hosts to the system? (y/n) [`n`]:

输入 n,无需其他系统。 检查源 SAP HANA 数据库系统参数:

  • 来源:SAP HANA SID
  • 来源:SAP HANA Instance Number

继续为目标系统设定相同的值:

Enter SAP HANA System ID: `<Needs to match the source system>`
Enter Instance Number [00]: `<Needs to match the source system>`
Enter Local Host Worker Group [default]:

Index | System Usage | Description
-------------------------------------------------------------------------------
1     | production   | System is used in a production environment
2     | test         | System is used for testing, not production
3     | development  | System is used for development, not production
4     | custom       | System usage is neither production, test nor development

Select System Usage / Enter Index [4]: 2

请输入代表计划功能的数字。 在示例中, 2 表示测试系统。

接受更多默认值:

Do you want to enable data and log volume encryption? [n]:
Enter Location of Data Volumes [/hana/data/<SID>]:
Enter Location of Log Volumes [/hana/log/<SID>]:
Restrict maximum memory allocation? [n]:
Apply System Size Dependent Resource Limits? (SAP Note 3014176) [y]:

确定源系统上设置的这些密码:

  • sapadm 口令
  • <sid>adm 口令
  • 系统 数据库 用户 SYSTEM 密码

在目标系统上设置相同的密码:

Enter SAP Host Agent User (sapadm) Password: <Use the same password used on the source system>
Confirm SAP Host Agent User (sapadm) Password: <Use the same password used on the source system>
Enter System Administrator (<sid>adm) Password:  <Use the same password used on the source system>
Confirm System Administrator (<sid>adm) Password: <Use the same password used on the source system>
Enter System Administrator Home Directory [/usr/sap/<SID>/home]:
Enter System Administrator Login Shell [/bin/sh]:
Enter System Administrator User ID [1001]: <check that the user ID number matches the source system>
Enter ID of User Group (sapsys) [79]:  <Check that the GUID number matches the source system>
Enter System Database User (SYSTEM) Password: <Use the same password used on the source system>
Confirm System Database User (SYSTEM) Password: <Use the same password used on the source system>

Restart system after machine reboot? [n]:
Summary before execution

在摘要中,您可以检查并确认安装选项是否正确。 然后选择“Y”开始。 大约20分钟后,您会看到以下信息。

Registering SAP HANA Database Components on Local Host...
- Deploying SAP Host Agent configurations...
Creating Component List...
SAP HANA Database System installed
Log file written to xxxxxx

检查 SAP HANA 是否运行并确定版本

运行以下 HDB proc 命令,以确认所有服务在主系统和辅助系统 SAP HANA 上均已启动。

sudo -i -u ${sid}adm -- HDB proc

SAP HANA 版本需要等于或大于主服务器

要验证 SAP HANA 数据库版本,请在两个节点上使用以下命令。

sudo -i -u ${sid}adm -- HDB version

MDC/SYSTEMDB SAP HANA 数据库的初始备份

备份 SYSTEMDB

将SYSTEMDB条目和MDC添加到HANA Studio应用程序中。 或者,如果您在景观中有一个 SAP HANA Cockpit,您可以将目标系统添加到您的HANA Cockpit中。 添加两个系统后,请完成初始系统备份。 在SYSTEMDB条目上,点击右键并选择。

  • 备份与恢复
  • 备份系统数据库
  • 备份类型 Complete Data Backup
  • 目标 File
  • 备份目标地址 /swrepo/backup/data/SYSTEMDB 确保目录结构存在且可由用户 ${sid}adm 写入。
  • 备份前缀 COMPLETE_DATA_BACKUP_INITIAL_DDMMYYY 下一步
  • Review Backup Setup 然后选择 Finish

请确保 SYSTEMDB@${SID} 备份成功完成。

备份 MDC

备份与恢复

  • 备份租户数据库
  • 指定租户数据库 ${sid}。 下一步
  • 备份类型 Complete Data Backup
  • 目的地 File.
  • 备份目标地址 /swrepo/backup/data/DB_${sid} 确保目录结构存在且可由用户 ${sid}adm 写入。
  • 备用前缀 COMPLETE_DATA_BACKUP_INITIAL_DDMMYYY。 下一步
  • Review Backup Setup 然后选择。Finish

请确保 DB_${sid} 的备份没有错误。

检查备份状态

在 SYSTEMDB 条目上,-> 右键单击并选择以下操作。

  • 备份与恢复
  • 选择 打开 Backup Console
  • 选择选项卡 Backup Catalog
  • 在数据库字段中,为MDC选择 ${sid}
  • 在数据库字段中,选择 <SYSTEMDB> 作为SYSTEMDB

可选的跟踪日志文件检查

数据库跟踪信息写入操作系统级别的特定文件。 跟踪目录位于以下位置:

/usr/sap/${sid}/HDB<inst>/<host>/trace/DB_${sid}/

${sid}adm 用户的环境中,可以使用以下别名快速切换到操作系统级别的跟踪目录:

cdtrace

数据库跟踪文件使用以下命名规则:

<service>_<host>.<port>.<counter>.trc

在动态分层的情况下,可以存在一个符合以下约定的文件( SAP 注释 2871785):

esserver_console_<host>.<port>.<counter>.trc

  • 示例:

indexserver_saphana01.30003.024.trc 您可以在操作系统级别直接访问这些文件,也可以通过以下方式访问:

  • SAP HANA Studio -> Administration -> Diagnosis Files
  • DBACOCKPIT -> Diagnostics -> Diagnosis Files

使用 SAP HANA 迁移 SAP S/4HANA 系统复制

配置前预先检查 SAP HANA 系统复制

在配置 SAP HANA 系统复制之前,必须检查一些前提条件。 所述步骤适用于 Red Hat Enterprise Linux 8(RHEL)和SUSE Enterprise Linux (SLES)。

检查源系统中的 SAP HANA 数据库用户

请咨询您的 SAP 基础管理团队或 SAP HANA 管理员,以确定访问系统使用的是哪个 SAP HANA 数据库用户。 通常情况下,该用户为 SYSTEM 用户,或者如果您的 SAP 基础管理团队实施了 SAP 安全建议,则为 SAP 架构所有者用户。

SAP HANA 激活 系统复制的预备步骤 SAP HANA

设置主系统和辅助系统 SAP HANA 的环境变量

为了简化设置,请在两个节点上为 ${sid}adm 准备以下环境变量。 这些环境变量将在后续命令中用于其余示例。

在两个节点上运行以下命令。 请记住,源系统和目标系统中的变量必须相同。

export SID=<SID>                                 # SAP HANA System ID (uppercase)
export sid=<sid>                                 # SAP HANA System ID (lowercase)
export INSTNO=<INSTNO>                           # SAP HANA Instance Number
export DIR_INSTANCE=/usr/sap/${SID}/HDB${INSTNO} # "${sid}adm" home directory

export SiteOnPrem=<PrimarySiteName>        # HANA System Replication Site Name 1 - Migration from On-Prem - Source
export SiteOnCloud=<secondarySiteName>     # HANA System Replication Site Name 2 - Migration to On-Cloud - Target

export NODE1=<Hostname 1>                  # Hostname of On-Prem Server
export NODE2=<Hostname 2>                  # Hostname of IBM Power Virtual Server Instance

请确保 SAP HANA 在两个系统上都能运行

作为操作系统用户 ${sid}adm,可以使用命令 HDB proc 验证所有服务是否已启动。

在主服务器和辅助服务器上运行以下命令:SAP HANA。

sudo -i -u ${sid}adm -- HDB proc

SAP HANA 版本必须等于或大于主服务器

在每个节点上运行以下命令,以确定 SAP HANA 服务器的版本。

sudo -i -u ${sid}adm -- HDB version

目标系统版本必须与源系统版本相同或更高。 该版本的唯一例外是启用了 Active/Active 读取的配置,在这种情况下,源系统和目标系统上的HDB版本必须相同。

  • 因此,请确保源服务器和目标服务器的系统配置完全相同。 然后,比较两个系统中的ini文件设置。

  • 对于横向扩展配置,请确保源服务器和目标服务器上的工作节点(横向扩展)数量和角色相同。

  • 两个系统必须使用相同的 ${sid}instance numbers

  • 从主系统和辅助系统中备份 PKI SSFS .key and the .dat files

  • 将现有PKI密钥从主系统复制到辅助系统。

为确保在需要时能够恢复到原始安装状态,请备份主系统和辅助系统上的现有密钥。

sudo -i -u ${sid}adm -- cp -p /usr/sap/${SID}/SYS/global/security/rsecssfs/data/SSFS_${SID}.DAT /usr/sap/${SID}/SYS/global/security/rsecssfs/data/SSFS_${SID}.DAT_<hostname>

在备份现有PKI SSFS .key.dat 文件后,现在需要将PKI SSFS .key.dat 文件从主系统复制到目标系统。

复制过程中,SAP HANA 2.0 数据和日志传输通道需要使用系统PKI SSFS 存储证书文件进行身份验证。

PKI SSFS 存储证书文件的系统存储在 /usr/sap/${SID}/SYS/global/security/rsecssfs/ 的子目录 datakey 中。

在 NODE2 上,运行以下命令,从 NODE1 复制文件 SSFS_${SID}.DATSSFS_${SID}.KEY

作为 ${sid}adm 用户,请在 NODE2 上运行以下两个命令。

scp ${NODE1}:/usr/sap/${SID}/SYS/global/security/rsecssfs/data/SSFS_${SID}.DAT /usr/sap/${SID}/SYS/global/security/rsecssfs/data/SSFS_${SID}.DAT
scp ${NODE1}:/usr/sap/${SID}/SYS/global/security/rsecssfs/key/SSFS_${SID}.KEY /usr/sap/${SID}/SYS/global/security/rsecssfs/key/SSFS_${SID}.KEY

在 SAP HANA 系统启动时,NODE2 上复制的 PKI SSFS 存储证书将激活。

检查配置参数 log_mode 是否设置为正常

确保在主和辅 SAP HANA 服务器的 global.ini 持久性部分,将配置参数 log_mode 设置为正常

在两个系统上运行以下命令,以验证 log_mode 设置。

sudo -i -u ${sid}adm -- grep -i 'log_mode' /usr/sap/${SID}/HDB${INSTNO}/exe/config/global.ini

预期输出结果如下

log_mode=normal

先注册主服务器

在主 SAP HANA 系统上,运行以下命令,将此节点注册为 primary,用于 SAP HANA 系统复制。

sudo -i -u ${sid}adm -- hdbnsutil -sr_enable --name=${SiteOnPrem}

预期输出结果如下

nameserver is active, proceeding ...
successfully enabled system as system replication source site
done.

检查主系统是否已注册

使用以下命令验证主系统是否已成功注册。

sudo -i -u ${sid}adm -- hdbnsutil -sr_state

预期输出结果如下

System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~

online: true

mode: primary
operation mode: primary
site id: 1
site name: SiteOnPrem

is source system: true
is secondary/consumer system: false
has secondaries/consumers attached: false
is a takeover active: false
is primary suspended: false

Host Mappings:
~~~~~~~~~~~~~~


Site Mappings:
~~~~~~~~~~~~~~
SiteCloud (primary/)

Tier of SiteCloud: 1

Replication mode of SiteCloud: primary

Operation mode of SiteOnPrem :


Hint based routing site:
done.

请确保 SAP HANA 在辅助网站上未处于活动状态

辅助站点不能是正在运行的 SAP HANA 服务器。 使用以下命令停止 SAP HANA 数据库服务。

sudo -i -u ${sid}adm -- HDB stop

预期输出结果如下

hdbdaemon will wait maximal 300 seconds for NewDB services finishing.
Stopping instance using: /usr/sap/${SID}/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr 10 -function Stop 400

10.08.2023 10:32:07
Stop
OK
Waiting for stopped instance using: /usr/sap/${SID}/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr 10 -function WaitforStopped 600 2


10.08.2023 10:32:51
WaitforStopped
OK
hdbdaemon is stopped.

注册辅助系统

现在注册辅助系统。

sudo -i -u ${sid}adm -- hdbnsutil -sr_register \
    --name=<secondarySiteName> \
    --remoteHost=<primary_host> \
    --remoteInstance=<primary_systemnr> \
    --replicationMode=[sync|syncmem|async] \
    --operationMode=[delta_datashipping|logreplay|logreplay_readaccess]

例如,如果您使用

  • SiteOnCloud 作为二级网站名称
  • syncmem 复制模式和
  • logreplay 作为操作模式

最后一条命令的示例如下

sudo -i -u ${sid}adm -- hdbnsutil -sr_register \
    --name=${SiteOnCloud} \
    --remoteHost=${NODE1} \
    --remoteInstance=${INSTNO} \
    --replicationMode=syncmem \
    --operationMode=logreplay

预期输出结果如下

Thu 10 Aug 10:36:13 CEST 2023
adding site ...
collecting information ...
updating local ini files ...
done.

在启用SELinux的情况下排除hdbnsutil错误

如果启用了安全增强型 Linux (SELinux),则 hdbnsutil 的输出结果可能与预期不符。 您可以看到以下两种症状之一。

  • Command is not recognized 错误消息
  • 显示使用信息

SELinux设置为 enforcing 时,会阻止命令 hdbnsutil${sid}adm 用户上下文中重启saphostagent。 您可以添加适当的SELinux安全策略,也可以按照 SAP 的建议进行操作。 然后,禁用SELinux。

使用以下命令检查当前的SELinux状态。

sestatus

以下输出是一个示例。

SELinux status:                 enforcing

如果 sestatus 命令返回 enforcing,则根据安全策略,即使以root权限运行命令也会被阻止。

要临时禁用 SELinux,请运行以下命令。

sudo setenforce 0

SELinux现在暂时关闭,直到下次重启。

现在再查看 sestatus,状态显示为 disabled

使用以下命令检查 saphostagent 进程是否正在运行。

sudo ps -ef | grep -i host

如果输出为空且未显示任何进程,请手动重启saphostagent。

sudo -i -u ${sid}adm -- /usr/sap/hostctrl/exe/saphostexec -restart /usr/sap/hostctrl/exe/host_profile

检查 SAP HANA 系统复制两侧的状态

检查主系统状态

在主节点上验证系统复制状态。 在主服务器上运行以下命令

sudo -i -u ${sid}adm -- hdbnsutil -sr_state

预期输出结果如下

System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~

online: true

mode: primary
operation mode: primary
site id: 1
site name: SiteOnPrem_hostname

is source system: true
is secondary/consumer system: false
has secondaries/consumers attached: true
is a takeover active: false
is primary suspended: false

Host Mappings:
~~~~~~~~~~~~~~

<SiteOnCloud_hostname> -> [SiteOnPrem_hostname] <SiteOnPrem_hostname_hostname>
<SiteOnCloud_hostname> -> [SiteOnCloud] <SiteOnPrem_hostname_hostname>


Site Mappings:
~~~~~~~~~~~~~~
SiteOnPrem_hostname (primary/primary)
    |---SiteOnCloud (syncmem/logreplay)

Tier of SiteCloud: 1
Tier of SiteOnPrem_hostname: 2

Replication mode of SiteOnPrem_hostname: primary
Replication mode of SiteOnCloud: syncmem

Operation mode of SiteOnPrem_hostname: primary
Operation mode of SiteOnCloud logreplay

Mapping: SiteOnPrem_hostname -> SiteOnCloud

Hint based routing site:
done.

检查辅助系统状态

现在检查第二个节点上的系统复制状态。 在第二个服务器上运行相同的命令。

sudo -i -u ${sid}adm -- hdbnsutil -sr_state

预期输出结果如下

System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~

online: false

mode: syncmem
operation mode: unknown
site id: 2
site name: SiteOnCloud

is source system: unknown
is secondary/consumer system: true
has secondaries/consumers attached: unknown
is a takeover active: false
is primary suspended: false
is timetravel enabled: false
replay mode: auto
active primary site: 1

primary masters: <SiteOnPrem_hostname_hostname>
done.

重启辅助服务器

到目前为止,两个 SAP HANA 服务器都配置为复制伙伴。 现在重启辅助 SAP HANA 服务器,完成复制设置。

在辅助服务器上运行以下命令

sudo -i -u ${sid}adm -- HDB start

预期输出结果如下

StartService
OK

Starting instance using: /usr/sap/${SID}/SYS/exe/hdb/sapcontrol -prot NI_HTTP -nr 10 -function StartWait 2700 2
OK


10.08.2023 10:38:47
Start
OK

10.08.2023 10:40:17
StartWait
OK

检查 HDB infoHDB proc 的辅助端,确认 SAP HANA 是否重新运行。 成功时,在主系统上运行 sr_state 命令。

sudo -i -u ${sid}adm -- hdbnsutil -sr_state

预期输出结果如下

System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~

online: true

mode: primary
operation mode: primary
site id: 1
site name: SitePrem

is source system: true
is secondary/consumer system: false
has secondaries/consumers attached: true
is a takeover active: false
is primary suspended: false

Host Mappings:
~~~~~~~~~~~~~~

<SiteOnCloud_hostname> -> [SiteOnPrem] <SiteOnPrem>
<SiteOnCloud_hostname> -> [SiteOnCloud] <SiteOnPrem>


Site Mappings:
~~~~~~~~~~~~~~
SiteOnPrem (primary/primary)
    |---SiteOnCloud (syncmem/logreplay)

Tier of SiteOnprem : 1
Tier of SiteOnCloud: 2

Replication mode of SiteOnPrem: primary
Replication mode of SiteOnCloud: syncmem

Operation mode of SiteOnPrem: primary
Operation mode of SiteOnCloud: logreplay

Mapping: SiteOnprem_hostname -> SiteOnCloud

Hint based routing site:
done.

检查复制状态

在辅助系统配置完成且辅助服务器上的 SAP HANA 启动后,复制过程将自动开始与 full replica 同步数据。 您可以验证主服务器上的初始复制,并查看完整复制操作的当前完成状态。

使用以下命令运行 Python 脚本。

sudo -i -u ${sid}adm -- python ${DIR_INSTANCE}/exe/python_support/systemReplicationStatus.py

预期输出结果如下

|Database |Host     |Port  |Service Name |Volume ID |Site ID |Site Name |Secondary |Secondary |Secondary |Secondary  |Secondary     |Replication |Replication |Replication    |Secondary    |
|         |         |      |             |          |        |          |Host      |Port      |Site ID   |Site Name  |Active Status |Mode        |Status      |Status Details |Fully Synced |
|-------- |-------- |----- |------------ |--------- |------- |--------- |----------|--------- |--------- |---------- |------------- |----------- |----------- |-------------- |-------------|
|SYSTEMDB |<NODE1>  |31001 |nameserver   |        1 |      1 |SiteOnPrem|  <NODE2> |    31001 |        2 |SiteOnCloud|YES           |SYNCMEM     |ACTIVE      |               |         True|
|S4H      |<NODE1>  |31007 |xsengine     |        2 |      1 |SiteOnPrem|  <NODE2> |    31007 |        2 |SiteOnCloud|YES           |SYNCMEM     |ACTIVE      |               |         True|
|S4H      |<NODE1>  |31040 |docstore     |        5 |      1 |SiteOnPrem|  <NODE2> |    31040 |        2 |SiteOnCloud|YES           |SYNCMEM     |ACTIVE      |               |         True|
|S4H      |<NODE1>  |31003 |indexserver  |        3 |      1 |SiteOnPrem|  <NODE2> |    31003 |        2 |SiteOnCloud|YES           |SYNCMEM     |ACTIVE      |               |         True|
|S4H      |<NODE1>  |31011 |dpserver     |        4 |      1 |SiteOnPrem|  <NODE2> |    31011 |        2 |SiteOnCloud|YES           |SYNCMEM     |ACTIVE      |               |         True|

status system replication site "1": ACTIVE
overall system replication status: ACTIVE

Local System Replication State
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

mode: PRIMARY
site id: 1
site name: SiteOnPrem_hostname

四种检查系统复制状态的方法

选项1. landscapeHostConfiguration.py

第一种选择使用 Python 脚本 landscapeHostConfiguration.py,从服务器的角度进行查看。 此脚本显示每个 SAP HANA 服务器系统的状态行。

运行以下命令。

sudo -i -u ${sid}adm -- python ${DIR_INSTANCE}/exe/python_support/landscapeHostConfiguration.py

请确保输出中列出的每台服务器的主机状态栏都显示 OK

选项2. systemReplicationStatus.py

第二个备选方案使用 Python 脚本 systemReplicationStatus.py,用于查看 SAP HANA 系统复制的数据库视图。 该脚本在数据库表后显示每个数据库的状态行和总体状态。

使用以下命令运行 Python 脚本。

sudo -i -u ${sid}adm -- python ${DIR_INSTANCE}/exe/python_support/systemReplicationStatus.py

请确保列出的每个数据库在复制状态列中显示一个 ACTIVE。 预期的脚本输出包含以下一行:

overall system replication status: ACTIVE
选项3. hdbcons

使用 hdbcons 命令并使用 ${sid}adm 用户身份运行,检查系统复制的详细状态。 第三种选择是按服务器和服务的技术视图。

使用以下命令运行 SAP HANA 数据库管理客户端 hdbcons

sudo -i -u ${sid}adm -- hdbcons -e hdbindexserver "replication info"
选项4。 SQL 脚本

第四种方案使用可在 SAP HANA 工作室或驾驶舱中运行的SQL语句。 此选项为 SAP HANA 系统复制的每个站点视图主机数。

通过运行以下SQL语句进行检查。

select host, SECONDARY_HOST, PORT, SITE_NAME, SECONDARY_SITE_NAME, REPLICATION_MODE, REPLICATION_STATUS, REPLICATION_STATUS_DETAILS,SECONDARY_ACTIVE_STATUS from M_SERVICE_REPLICATION;

请特别查看SQL输出中的 REPLICATION_STATUSREPLICATION_STATUS_DETAILS 列。

复制完成

在禁用复制设置之前,请检查跟踪日志,查看复制操作执行后是否存在任何不一致或异常。 复制完成后,数据库仅包含主系统上的所有活动服务。 但是您仍然可以检查跟踪日志,查看是否存在任何不一致或问题。

检查数据库跟踪文件

数据库跟踪信息写入操作系统级别的特定文件。 跟踪目录位于: /usr/sap/<SID>/HDB<inst>/<host>/trace/DB_<SID>/

${sid}adm 用户环境中,以下别名允许 ${sid}adm 用户快速切换到操作系统级别的跟踪目录:

cdtrace

数据库跟踪文件的命名规则如下: <service>_<host>.<port>.<counter>.trc

在动态分层的情况下,也可以存在一个符合以下约定的文件( SAP 注释 2871785): esserver_console_<host>.<port>.<counter>.trc

示例: indexserver_saphana01.30003.024.trc

您可以通过三种方式访问数据库跟踪文件:

  • 直接在操作系统层面
  • SAP HANA Studio -> Administration -> Diagnosis Files
  • DBACOCKPIT -> Diagnostics -> Diagnosis Files

SAP HANA 系统复制资源

有关更多信息,请参阅以下链接: