第 6 章 有用的命令
以下是有用的命令的 3 部分。在大多数情况下,它应该有助于验证操作或配置是否成功。示例与响应一起列出。在某些情况下,出于格式化原因,输出已被调整。
-
当由 <
sid>adm
用户以%开始时,此文档中列出的所有命令均以%
开头。 -
root 用户运行
的所有命令都以#
开头。 -
要执行命令,请省略前缀
%
或#
。
6.1. SAP HANA 命令 复制链接链接已复制到粘贴板!
SAP HANA 命令由 < sid>adm
用户执行。Example:
6.1.1. 使用 hdbclm进行 SAP HANA 安装 复制链接链接已复制到粘贴板!
第三个站点的安装与第二个站点的安装类似。安装可以使用 hdblcm
作为用户 root 来完成。为确保之前未安装任何内容,请运行 hdbuninst
以检查 SAP HANA 是否尚未安装在此节点上。
HANA 卸载的输出示例:
DC3# cd /software/DATA_UNITS/HDB_SERVER_LINUX_X86_64 root@DC3/software/DATA_UNITS/HDB_SERVER_LINUX_X86_64# ./hdbuninst Option 0 will remove an already existing HANA Installation No SAP HANA Installation found is the expected answer
DC3# cd /software/DATA_UNITS/HDB_SERVER_LINUX_X86_64
root@DC3/software/DATA_UNITS/HDB_SERVER_LINUX_X86_64# ./hdbuninst
Option 0 will remove an already existing HANA Installation
No SAP HANA Installation found is the expected answer
HANA 安装的输出示例:
在安装开始前,会列出概述:
输入 y 开始安装。
6.1.2. 使用 hdbsql 检查 Inifile 内容 复制链接链接已复制到粘贴板!
6.1.3. 检查数据库 复制链接链接已复制到粘贴板!
检查数据库是否正在运行,并发现当前的主节点。
列出数据库实例
如果输出为绿色,则实例正在运行。
列出数据库进程
通常,所有数据库进程都处于 GREEN
状态。
列出 SAP HANA 进程
显示 SAP HANA landscape 配置
返回码:
- 0: fatal
- 1: error
- 2: warning
- 3: info
- 4: OK
发现主数据库
% hdbnsutil -sr_state | egrep -e "primary masters|^mode"
% hdbnsutil -sr_state | egrep -e "primary masters|^mode"
辅助检查示例:
% hdbnsutil -sr_state | egrep -e "primary masters|^mode" mode: syncmem primary masters: node1
% hdbnsutil -sr_state | egrep -e "primary masters|^mode"
mode: syncmem
primary masters: node1
在当前主上检查示例:
% hdbnsutil -sr_state | egrep -e "primary masters|^mode" mode: primary
% hdbnsutil -sr_state | egrep -e "primary masters|^mode"
mode: primary
显示数据库版本
使用 SQL 查询的示例:
hdbsql RH2=> select * from m_database SYSTEM_ID,DATABASE_NAME,HOST,START_TIME,VERSION,USAGE "RH2","RH2","node1","2023-06-22 15:33:05.235000000","2.00.059.02.1647435895","CUSTOM" 1 row selected (overall time 29.107 msec; server time 927 usec)
hdbsql RH2=> select * from m_database
SYSTEM_ID,DATABASE_NAME,HOST,START_TIME,VERSION,USAGE
"RH2","RH2","node1","2023-06-22 15:33:05.235000000","2.00.059.02.1647435895","CUSTOM"
1 row selected (overall time 29.107 msec; server time 927 usec)
使用 systemOverview.py
的示例:
6.1.4. 启动和停止 SAP HANA 复制链接链接已复制到粘贴板!
选项 1:HDB 命令
% HDB help Usage: /usr/sap/RH2/HDB02/HDB { start|stop|reconf|restart|version|info|proc|admin|kill|kill-<sig>|term } kill or kill-9 should never be used in productive environment!
% HDB help
Usage: /usr/sap/RH2/HDB02/HDB { start|stop|reconf|restart|version|info|proc|admin|kill|kill-<sig>|term }
kill or kill-9 should never be used in productive environment!
启动数据库
% HDB start
% HDB start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 停止数据库
% HDB stop
% HDB stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
选项 2 (推荐):使用 sapcontrol
% sapcontrol -nr ${TINSTANCE} -function StartSystem HDB 03.07.2023 14:08:30 StartSystem OKhttps://cube-shop-chiemsee.de/e-bike/e-mtb-fully/stereo-hybrid-140/cube-stereo-hybrid-140-hpc-race-750-dazzle-n-orange-2023
% sapcontrol -nr ${TINSTANCE} -function StartSystem HDB
03.07.2023 14:08:30
StartSystem
OKhttps://cube-shop-chiemsee.de/e-bike/e-mtb-fully/stereo-hybrid-140/cube-stereo-hybrid-140-hpc-race-750-dazzle-n-orange-2023
% sapcontrol -nr ${TINSTANCE} -function StopSystem HDB 03.07.2023 14:09:33 StopSystem OK
% sapcontrol -nr ${TINSTANCE} -function StopSystem HDB
03.07.2023 14:09:33
StopSystem
OK
使用 GetProcessList 来监控 HANA 服务的启动和停止:
% sapcontrol -nr ${TINSTANCE} -function GetProcessList
% sapcontrol -nr ${TINSTANCE} -function GetProcessList
6.1.5. 检查 SAP HANA System Replication 状态 复制链接链接已复制到粘贴板!
有多种方法可以检查 SAP HANA 系统复制状态:
-
在主节点上
% python systemReplicationStatus.py #
-
% echo $? #
(Return code of systemReplicationStatus) -
% hdbnsutil -sr_state
-
% hdbnsutil -sr_stateConfiguration
作为监控器运行的 systemReplicationStatus.py 输出示例
:
返回代码的预期结果为:
- 10: NoHSR
- 11: error
- 12: unknown
- 13: 初始化
- 14: 同步
- 15: active
在大多数情况下,系统复制检查将返回返回码 15
。另一个显示选项是使用 -t
(printLandscapeTree)。
当前主机上的输出示例:
% python systemReplicationStatus.py -t HANA System Replication landscape: DC1 ( primary ) | --- DC3 ( syncmem ) | --- DC2 ( syncmem )
% python systemReplicationStatus.py -t
HANA System Replication landscape:
DC1 ( primary )
| --- DC3 ( syncmem )
| --- DC2 ( syncmem )
hdbnsutil -sr_state
示例:
主上的 sr_stateConfiguation
示例:
二级上的 sr_stateConfiguration
示例:
您还可以在节点是当前主的辅助数据库中检查。在故障转移过程中,会出现两个主数据库,并且需要这些信息来确定潜在的主数据库错误,需要重新注册为次要数据库。
如需更多信息,请参阅示例 :检查 Primary 和 Secondary Systems 上的状态。
6.1.6. 注册辅助节点 复制链接链接已复制到粘贴板!
为 SAP HANA 系统复制环境注册辅助数据库的先决条件:
注册示例:
在注册了 global.ini
文件后,将自动更新
…来自:
…至:
6.1.7. sapcontrol GetProcessList 复制链接链接已复制到粘贴板!
检查活跃的 SAP HANA 数据库的进程
6.1.8. sapcontrol GetInstanceList 复制链接链接已复制到粘贴板!
这将列出 SAP HANA 数据库的实例状态。它还将显示端口。有三个不同的状态名称:
- GREEN (运行)
- GRAY (停止)
- YELLOW (当前正在更改)
活跃实例示例:
停止的实例示例:
6.1.9. hdbcons 示例 复制链接链接已复制到粘贴板!
您还可以使用 HDB 控制台显示数据库的信息:
-
hdbcons -e hdbindexserver 'replication info'
-
hdbcons -e hdbindexserver 帮助
更多选项
'replication info' 示例:
帮助示例:
6.1.10. 创建 SAP HANA 备份 复制链接链接已复制到粘贴板!
如果要使用 SAP HANA 系统复制,必须首先在主系统上创建一个备份。
如何执行此操作的示例为用户 < sid>adm
:
% hdbsql -i ${TINSTANCE} -u system -d SYSTEMDB "BACKUP DATA USING FILE ('/hana/backup/')" % hdbsql -i ${TINSTANCE} -u system -d ${SAPSYSTEMNAME} "BACKUP DATA USING FILE ('/hana/backup/')"
% hdbsql -i ${TINSTANCE} -u system -d SYSTEMDB "BACKUP DATA USING FILE ('/hana/backup/')"
% hdbsql -i ${TINSTANCE} -u system -d ${SAPSYSTEMNAME} "BACKUP DATA USING FILE ('/hana/backup/')"
6.1.11. 在主数据库上启用 SAP HANA 系统复制 复制链接链接已复制到粘贴板!
必须在主节点上启用 SAP HANA 系统复制。这要求首先进行备份。
[rh2adm@node1: HDB02]% hdbnsutil -sr_enable --name=DC1 nameserver is active, proceeding ... successfully enabled system as system replication source site done.
[rh2adm@node1: HDB02]% hdbnsutil -sr_enable --name=DC1
nameserver is active, proceeding ...
successfully enabled system as system replication source site
done.
6.1.12. 将数据库密钥复制到辅助节点 复制链接链接已复制到粘贴板!
数据库密钥需要从主数据库复制到次要数据库,然后才能将其注册为次要数据库。
例如:
% scp -rp /usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT node3:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT % scp -rp /usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY node3:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY
% scp -rp /usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT node3:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/data/SSFS_${SAPSYSTEMNAME}.DAT
% scp -rp /usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY node3:/usr/sap/${SAPSYSTEMNAME}/SYS/global/security/rsecssfs/key/SSFS_${SAPSYSTEMNAME}.KEY
6.1.13. 为 SAP HANA 系统复制注册辅助节点 复制链接链接已复制到粘贴板!
请确定数据库密钥已首先复制到次要节点。然后运行注册命令:
% hdbnsutil -sr_register --remoteHost=node3 --remoteInstance=${TINSTANCE} --replicationMode=syncmem --name=DC1 --remoteName=DC3 --operationMode=logreplay --online
% hdbnsutil -sr_register --remoteHost=node3 --remoteInstance=${TINSTANCE} --replicationMode=syncmem --name=DC1 --remoteName=DC3 --operationMode=logreplay --online
参数描述:
-
remotehost
: 运行源(主)数据库的活动节点的主机名 -
remoteInstance
:数据库的实例数 replicationMode
:以下选项之一-
同步
:硬盘同步 -
async
: 异步复制 -
syncmem
: 内存同步
-
-
名称
:这是此复制站点的别名 -
remoteName
:源数据库的别名名称 operationMode
:以下选项之一-
delta_datashipping
:定期传输数据。接管需要更长的时间。 -
logreplay
: 在远程站点上立即为 redone 日志。接管速度更快。 -
logreplay_readaccess
:可能对第二个站点进行额外的 logreplay 只读访问。
-
6.1.14. 检查 SAP HANA 数据库的 log_mode 复制链接链接已复制到粘贴板!
设置 log_mode
有两个选项:
-
log_mode=overwrite
-
log_mode=normal
log_mode=normal
是默认值,在数据库实例作为主实例运行时也需要。使用 SAP HANA Multitarget System Replication,您必须使用log_mode=normal
。检查log_mode
的最佳方法是使用hdbsql
:
包括错误的 覆盖
条目示例:
在这种情况下,我们有两个 global.ini
文件:
DEFAULT
-
/usr/sap/${SAPSYSTEMNAME}/SYS/global/hdb/custom/config/global.ini
-
HOST
-
/HANA/shared/${SAPSYSTEMNAME}/HDB${TINSTANCE}/${HOSTNAME}/global.ini
TheHOST
值覆盖DEFAULT
值。您还可以在数据库启动前检查这两个文件,然后再次使用hdbsql
验证正确的设置。您可以通过编辑 global.ini 文件来更改log_mode
。
-
Example:
% vim /hana/shared/${SAPSYSTEMNAME}/HDB${TINSTANCE}/${HOSTNAME}/global.ini # global.ini last modified 2023-04-06 16:15:03.521715 by hdbnameserver [persistence] log_mode = overwrite
% vim /hana/shared/${SAPSYSTEMNAME}/HDB${TINSTANCE}/${HOSTNAME}/global.ini
# global.ini last modified 2023-04-06 16:15:03.521715 by hdbnameserver
[persistence]
log_mode = overwrite
global.ini last modified 2023-04-06 16:15:03.521715 by hdbnameserver
# global.ini last modified 2023-04-06 16:15:03.521715 by hdbnameserver
[persistence]
log_mode = normal
检查或更新 global.ini
文件后,验证 log_mode
值:
部分还显示在 [persistence]
部分中需要设置此参数。当您将日志模式从 覆盖
改为 normal
时,建议您创建一个完整的数据备份,以确保数据库可以被恢复。
6.1.15. 发现主数据库 复制链接链接已复制到粘贴板!
例如,有几种方法可以识别主节点:
-
pcs status | grep Promoted
-
hdbnsutil -sr_stateConfiguration
-
systemReplicationStatus.py
以下 systemReplicationStatus.py
脚本示例和过滤器将返回所有节点上的主数据库位置:
sidadm% /usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/Python/bin/python /usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py --sapcontrol=1 | egrep -e "3${TINSTANCE}01/HOST|PRIMARY_MASTERS"| head -1 | awk -F"=" '{ print $2 }'
sidadm% /usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/Python/bin/python /usr/sap/$SAPSYSTEMNAME/HDB${TINSTANCE}/exe/python_support/systemReplicationStatus.py --sapcontrol=1 | egrep -e "3${TINSTANCE}01/HOST|PRIMARY_MASTERS"| head -1 | awk -F"=" '{ print $2 }'
输出:
node2
node2
6.1.16. 接管主 复制链接链接已复制到粘贴板!
请参阅 检查复制状态 部分,以检查主节点和次要节点。另外:
- 将集群设置为 maintenance-mode
- 在辅助节点上启动接管
为集群启用 maintenance-mode 的示例:
pcs property set maintenance-mode=true
# pcs property set maintenance-mode=true
在成为新主的二级中,以 < sidadm>
用户身份运行:
% hdbnsutil -sr_takeover
% hdbnsutil -sr_takeover
这个辅助功能成为主的、另一个活跃二级数据库被重新注册到新主数据库,需要手动重新注册旧主作为次要数据库。
6.1.17. 重新注册以前的主主作为辅助 复制链接链接已复制到粘贴板!
请确定集群停止或置于维护模式。Example:
node2 % hdbnsutil -sr_register --remoteHost=node3 --remoteInstance=${TINSTANCE} --replicationMode=syncmem --name=DC2 --online --remoteName=DC3 --operationMode=logreplay --force_full_replica --online
node2 % hdbnsutil -sr_register --remoteHost=node3 --remoteInstance=${TINSTANCE} --replicationMode=syncmem --name=DC2 --online --remoteName=DC3 --operationMode=logreplay --force_full_replica --online
在我们的示例中,我们使用完整复制。需要完整复制时,您的 SAP HANA 系统管理员应知道。
6.1.18. 从故障切换中恢复 复制链接链接已复制到粘贴板!
请参阅 检查 SAP HANA 系统复制状态 并发现 主要节点。信息一致非常重要。如果节点不是 systemReplicationStatus.py
输出的一部分,且具有不同的系统复制状态,如果需要重新注册此节点,请检查您的数据库管理员。
解决这种情况的一种方法是 重新注册 此站点作为新次要站点。
有时,辅助实例仍会没有启动。然后,在重新注册前取消注册此站点。取消注册二级 DC1 的示例:
hdbnsutil -sr_unregister --name=DC1
hdbnsutil -sr_unregister --name=DC1
重新注册 DC1 的示例:
hdbnsutil -sr_register --name=DC1 --remoteHost=node2 --remoteInstance=00 --replicationMode=sync --operationMode=logreplay --online
hdbnsutil -sr_register --name=DC1 --remoteHost=node2 --remoteInstance=00 --replicationMode=sync --operationMode=logreplay --online