HANA系统管理
--使用 SAPControl 启动和停止系统
/usr/sap/hostctrl/exe/sapcontrol -nr <instance_number> -function StartSystem HDB 启动系统
/usr/sap/hostctrl/exe/sapcontrol -nr <instance_number> -function StopSystem HDB 停止系统
/usr/sap/hostctrl/exe/sapcontrol -nr <instance_number> -function GetSystemInstanceList 查询系统中所有主机的当前状态
--管理租户数据库
--使用命令行界面转换为租户数据库
1.更改为 SAP HANA 驻留的 HDBLCM 目录:
cd <sapmnt>/<SID>/hdblcm
2.以交互方式启动 SAP HANA 数据库生命周期管理器 命令行:
./hdblcm --action=convert_to_multidb
3.提供 <sid>adm 用户的密码和 SYSTEMDB 用户的 SYSTEM 用户。
4.查看摘要,然后选择 y 以完成 配置。
--清除 OS 用户和组到租户数据库的分配。在系统数据库的 SQL 控制台中,对每个租户数据库执行。
ALTER DATABASE <database_name> OS USER '' OS GROUP ''
--启动所有租户数据库。在系统数据库的 SQL 控制台中,执行
ALTER SYSTEM START DATABASE <database_name>
--通过执行以下命令来启用跨数据库访问 系统数据库中的语句:
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') set ('cross_database_access', 'enabled')='true' WITH RECONFIGURE;
--通过以下方式启用从一个租户数据库到一个或多个其他租户数据库的通信 在系统数据库中执行以下语句:
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') set ('cross_database_access', 'targets_for_<source_db_name>')='<target_db1>[,<target_db2>...]' WITH RECONFIGURE;
例:您有两个数据库 DB1 和 DB2,并且希望能够从 DB2 访问 DB1。 因此,您添加具有targets_for_DB2值的参数。DB1
--通过 SAP HANA XS Classic 配置对租户数据库的 HTTP(S) 访问,将 xsengine.ini 文件中所有租户数据库的公用 URL 指定为一个 以下方式:
--对于每个租户数据库,执行以下语句:
ALTER SYSTEM ALTER CONFIGURATION ('xsengine.ini', 'DATABASE', '') SET ('public_urls', 'http_url') = “http://:80” 使用 RECONFIGURE;<tenant_DB_name><virtual_hostname><instance>
ALTER SYSTEM ALTER CONFIGURATION ('xsengine.ini', 'DATABASE', ') SET ('public_urls', 'https_url') = “https://:43” 使用 RECONFIGURE;<tenant_DB_name><virtual_hostname><instance>
--注意:在默认层设置以下值,表示系统数据库的 URL:
http://$(SAPLOCALHOST):80$(SAPSYSTEM)
https://$(SAPLOCALHOST):43$(SAPSYSTEM)
--默认情况下,系统数据库最初检索任何请求时都使用 端口 80。但是,只要您配置 租户数据库的 URL,可在 仅限 http://:80,而不是完全限定的域名 (FQDN)。本地主机是 没有 FQDN 的 SAP HANA 已知。<instance_no><localhost><instance>
--如果要更改此默认行为并配置其他 URL 对于系统数据库,可以通过执行以下命令来执行此操作 陈述:
ALTER SYSTEM ALTER CONFIGURATION ('nameserver.ini', 'system') SET('public_urls', 'http_url') = 'http://<virtual_hostname>:80<instance>' WITH RECONFIGURE;
--现在,在主机层的 webdispatcher.ini 文件中为每个数据库创建新条目。您可以通过执行以下命令来验证这一点 以下语句(来自系统数据库)
SELECT KEY, VALUE, LAYER_NAME FROM SYS.M_INIFILE_CONTENTS WHERE FILE_NAME = 'webdispatcher.ini' AND SECTION = 'profile' AND KEY LIKE 'wdisp/system%'
--配置独立于主机的租户地址,可以将对租户数据库的访问配置为独立于 SAP HANA 通过将其他端口映射到租户数据库来获取系统 ID 号。配置系统数据库侦听的其他端口,以及 端口 3<instance_no>13。除 0 外的任何可用端口号都是 允许。
ALTER SYSTEM ALTER CONFIGURATION ('nameserver.ini' , 'system') SET ('multidb' , 'listenports' ) = '<port1>[,<port2>...]' WITH RECONFIGURE;
--若要删除租户数据库的所有其他端口,请执行以下 SQL 语句:
ALTER SYSTEM ALTER CONFIGURATION ('nameserver.ini' , 'system') UNSET ('multidb' , 'listenports' ) WITH RECONFIGURE;
--租户数据库的内存和 CPU 使用率,下属性可用于影响租户的资源消耗 数据库。
--[memorymanager] global.ini文件中的 allocationlimit使用此属性可限制最大内存量(以 MB 为单位) 可以单独分配给租户数据库的进程。每 租户数据库的进程可以分配指定的值。将 分配限制过低可能会导致租户数据库变为 在可以分配更多内存之前无法访问。
--从系统数据库执行:
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'DATABASE', 'MYDB')
SET ('memorymanager','allocationlimit') = '8192' WITH RECONFIGURE;
--[执行] max_concurrency global.ini文件中使用此属性可影响 CPU 内核的最大数目 可以通过限制并发数量来用于每个租户数据库 运行 JobExecutor 子系统使用的线程。合理的违约 value 是核心数除以租户数据库数。 不要指定值 。此值的更改 立即生效。
从系统数据库执行 :
ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'DATABASE', 'MYDB')
SET ('execution', 'max_concurrency') = '4' WITH RECONFIGURE;
--许多系统视图在两种情况下可用 versions – 显示自上次特定服务以来收集的数据的版本 started,并显示自上次查看以来收集的数据 重置。例如,视图M_VOLUME_IO_TOTAL_STATISTICS显示总读取大小 以及自上次启动服务以来每个卷的总写入大小。The SQL 命令初始化显示的统计信息 从这个角度来看。视图M_VOLUME_IO_STATISTICS_RESET现在显示自 重置时间。
ALTER SYSTEM RESET MONITORING VIEW SYS.M_VOLUME_IO_TOTAL_STATISTICS_RESET
--管理和监视 SAP HANA 性能
--选择性删除计划缓存条目
--在某些情况下,可能需要清除计划缓存,这可能是 例如,如果问题是由无效条目引起的,则这是必需的。一种选择是 使用以下 CLEAR 语句完全清除计划缓存:
ALTER SYSTEM CLEAR SQL PLAN CACHE
但是,这需要时间,并且会产生相当大的性能开销 之后,因为所有 SQL 语句都必须从头开始解析和重新编译。 提高计划缓存质量的更好方法是删除单个 有选择地计划。您可以使用此处显示的 REMOVE 语句执行此操作,任如下所示: 标识特定计划编号或使用 WHERE 子句:
ALTER SYSTEM REMOVE SQL PLAN CACHE [ ENTRY <plan_id> | WHERE <condition> ]
例如,以下命令从 SQL 计划缓存删除2374637:
ALTER SYSTEM REMOVE SQL PLAN CACHE ENTRY 2374637;
--WHERE 子句在M_SQL_PLAN_CACHE监视视图上操作 其中包含 90 多列。因此,此选项提供了许多可能性 用于从缓存中删除特定项目,同时对以下方面产生最小的负面影响 性能。以下示例说明了这一点;所有符合条件的计划 从缓存中删除:
--本示例删除不常用的条目:
ALTER SYSTEM REMOVE SQL PLAN CACHE WHERE EXECUTION_COUNT < 5
--本示例删除无效的条目:
ALTER SYSTEM REMOVE SQL PLAN CACHE WHERE IS_VALID = ‘FALSE’
--此示例删除查询特定表的条目:
ALTER SYSTEM REMOVE SQL PLAN CACHE WHERE ACCESSED_TABLE_NAMES LIKE ‘%AAA%’
--SAP HANA 数据库中的内存使用情况
--峰值已用内存
归根结底,更重要的是了解已用内存随时间推移的行为 峰值负载。为此,SAP HANA有一个特殊的已用内存指示器,称为 峰值已用内存。由于已用内存的值是电流测量值,因此使用的峰值 内存允许您跟踪一段时间内已用内存的最大值。
您可以通过查询监控视图来监控当前已用内存级别M_HEAP_MEMORY 它显示了内存分配器统计信息的各种详细信息。这有一个对应的 可重置视图 (M_HEAP_MEMORY_RESET),仅显示自上次重置以来的值。 例如,您可以使用它来测试特定工作负载对内存的影响 使用情况,请重置视图:
ALTER SYSTEM RESET MONITORING VIEW "SYS"."M_HEAP_MEMORY_RESET";
--对数据卷进行分区
用于管理数据卷分区的 SQL 语句的详细信息在 SAP HANA SQL 和系统视图参考中提供,这两个主要内容 此处显示了用于添加和删除分区的语句。如果执行命令 要在 indexserver 上添加分区,它将向所有 拓扑中的索引服务器:
ALTER SYSTEM ALTER DATAVOLUME ADD PARTITION
您可以通过指定分区 ID 来删除特定的数据卷分区 数:
ALTER SYSTEM ALTER DATAVOLUME DROP PARTITION <id>
--持久性一致性检查,命令行诊断工具可用于分析持久性存储的物理损坏。
--持久性检查工具hdbpersdiag可用于携带 对 SAP HANA 数据卷的存储快照备份进行页面一致性检查。 您可以使用该工具的基本“全部检查”选项来验证 数据量。如果出现问题,该工具可能有助于确定原因,以便 有效的解决方案可以快速采用。
该工具 hdbpersdiag 独立于 SAP HANA 本机备份过程和 作为以下标准安装的一部分交付 目录:
/usr/sap/<sid>/HDB<inst_id>/exe
--您可以运行该工具并执行“全部检查”选项,该选项会检查所有页面 对于给定的数据卷路径。请注意,数据量不能是当前 HANA使用中:
hdbpersdiag
check all <data_volume_path>
--配置分页大型对象数据类型
若要将 LOB 列指定为可页面加载,请使用 PAGE LOADABLE 加载单元定义它 在 CREATE TABLE 和 ALTER TABLE 命令中。
LOB 数据列可以配置为页面可加载或列可加载,方法是设置 命令 CREATE TABLE 和 ALTER TABLE 中的 LOAD UNIT 值。但是,内存使用情况 对于 LOB 数据类型由混合 LOB 配置参数独立控制 LOAD UNIT 配置。虽然 LOAD UNIT 可以配置为 COLUMN LOB 数据列的 LOADABLE 或 PAGE LOADABLE,它不确定内存使用情况 适用于 LOB 数据类型。
系统视图提供信息 关于分页数据的磁盘上和内存中大小,还包括以下信息 LOB 支持的列,指定为 PAGE LOADABLE。使用以下系统视图可以 查看分页 LOB 导致的内存占用量减少:M_CS_ALL_COLUMNS
主内存 – 使用分页 LOB,数据和字典的主内存大小为 零。
MAIN_MEMORY_SIZE_IN_DATA
MAIN_MEMORY_SIZE_IN_DICT
主页可加载内存 – 取决于 LOB 列的数量 加载到内存中,系统显示主页的值 数据和字典的可加载内存。
MAIN_PAGE_LOADABLE_MEMORY_SIZE_IN_DATA
MAIN_PAGE_LOADABLE_MEMORY_SIZE_IN_DICT
例如,运行以下命令查看主页面和页面可加载内容 记忆:
SELECT
MAIN_MEMORY_SIZE_IN_DATA,
MAIN_MEMORY_SIZE_IN_DICT,
MAIN_PAGE_LOADABLE_MEMORY_SIZE_IN_DATA,
MAIN_PAGE_LOADABLE_MEMORY_SIZE_IN_DICT
FROM M_CS_ALL_COLUMNS
WHERE TABLE_NAME = <table_name>
AND COLUMN_NAME = <column_name>
例如,对于 SAPQM7 中名为 TEST_MST_TABLE 的表 图式:
SELECT
MAIN_MEMORY_SIZE_IN_DATA,
MAIN_MEMORY_SIZE_IN_DICT,
MAIN_PAGE_LOADABLE_MEMORY_SIZE_IN_DATA,
MAIN_PAGE_LOADABLE_MEMORY_SIZE_IN_DICT
FROM M_CS_ALL_COLUMNS
where schema_name='SAPQM7' and table_name='TEST_MST_TABLE'
--调整缓冲区缓存大小
该命令提供了三个参数,可用于设置允许的上限 已启用 SAP HANA NSE 的表中的缓冲区缓存。限制以兆字节为单位设置。ALTER SYSTEM ALTER CONFIGURATION
使用这些参数可以动态扩展或缩小缓冲区缓存大小。确保您的 缓冲区缓存足够大,可以管理热数据集。参数包括:
max_size:显式指定 缓冲区缓存,以 MB 为单位。
max_size_rel:指定缓冲区缓存的上限,以全局分配限制的百分比表示 (GAL) 或服务分配限制(如果已设置)。
unload_threshold:指定应将其减少到缓冲区缓存最大大小的百分比 缓冲区容量未完全使用时自动执行。
注意
当同时设置max_size和max_size_rel时,系统使用最小值。将值应用于横向扩展时 系统,max_size_rel将相对于 每个主机的分配,每个主机的分配可能不同。在本例中, 值可以解释为:
max_size_rel = 15%的分配 limit(对于给定主机),但上限为 .max_size = 20GB
因此,对于较小的主机,相对设置 (max_size_rel) 使用。对于较大的主机,绝对 应用上限 (max_size)。
以下语句配置 SAP HANA 的缓冲区缓存容量 表:
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'system')
SET ('<cache_name>','max_size') = '<cache_size>' [with reconfigure]
让我们看两个示例,说明如何将缓冲区缓存配置为 1500 MB 对于使用 max_size 和 max_size_rel 参数的 SAP HANA NSE 列存储表。
示例 1:使用 max_size 参数设置缓冲区缓存容量 至 1500 MB –
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'system')
SET ('buffer_cache_cs','max_size') = '1500'
示例 2:使用 max_size_rel 参数将缓冲区缓存容量设置为 SAP HANA 内存的 15%,该容量在 这种情况是 10000 MB(这意味着缓冲区缓存容量设置为 1500 MB) –
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'system')
SET ('buffer_cache_cs','max_size_rel') = '15'
[with reconfigure]
示例 3:使用 unload_threshold 参数将缓冲区缓存设置为当时配置的max_size的 80%。
ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'system')
SET ('buffer_cache_cs','unload_threshold') = '80'
[with reconfigure]
--SQL 回收数据空间
ALTER SYSTEM RECLAIM [ROW] DATA SPACE [IMMEDIATE] [<host_port>]
--监视增量合并历史记录
下面是一个示例,说明如何使用合并历史记录来查找您期望的合并 根据触发智能合并提示的设置发生 应用。
通过执行 以下 SQL 语句:
SELECT * FROM M_DELTA_MERGE_STATISTICS WHERE table_name = '<your_table>' AND motivation = 'SMART'
如果未返回任何结果,请检查应用程序是否实际发送了任何结果 通过执行以下语句进行提示:
SELECT * FROM M_DELTA_MERGE_STATISTICS WHERE type = 'HINT' AND table_name = '<your_table>'
如果应用程序没有发送提示,则系统不会启动 增量合并。但是,如果应用程序确实发送了提示,则系统仅发送了提示 如果满足智能合并的条件,则执行合并。这 信息可在“成功”列中找到。系统决定是否 或者不接受提示并通过评估智能来执行合并 合并决策成本函数。
如果您仍然没有找到智能合并,请通过以下方式检查长期历史记录 执行以下语句:
SELECT * FROM _SYS_STATISTICS.HOST_DELTA_MERGE_STATISTICS WHERE table_name = '<your_table>'
--执行手动增量合并操作
您可以使用以下 SQL 语句来检索内存中前 100 个最大的增量存储:
SELECT TOP 100 * from M_CS_TABLES ORDER BY MEMORY_SIZE_IN_DELTA DESC
--SAP HANA 监视视图
--M_HOST_INFORMATION提供主机信息,例如机器和 操作系统配置。此视图中的数据存储在键值对中 format,则值每分钟更新一次。对于大多数密钥,INIFILE ADMIN 需要权限才能查看值。为 特定主机来检索相应的值:
select * from SYS.M_HOST_INFORMATION where key in ('cpu_sockets','cpu_cores','cpu_threads');
M_NUMA_RESOURCES提供有关总体资源的信息 系统的可用性:
select MAX_NUMA_NODE_COUNT, MAX_LOGICAL_CORE_COUNT from SYS.M_NUMA_RESOURCES;
M_NUMA_NODES提供每个资源的可用性信息 硬件拓扑中的 NUMA 节点,包括节点间距离和邻居 信息,例如:
select HOST, NUMA_NODE_ID, NUMA_NODE_DISTANCES, MEMORY_SIZE from SYS.M_NUMA_NODES;
M_CS_COLUMNS包含表、列和分区的详细信息,以及 以下示例可能有助于检查表所在的 NUMA 位置 分布在 NUMA 节点上。在这种情况下,CPU 负载分布在 NUMA 之间 节点通过 NUMA 本地处理,但内存消耗也更好地分配给 附加到每个 NUMA 节点的内存。
select table_name, column_name, part_id, string_agg(numa_node_index, ',') from m_cs_columns
group by table_name, column_name, part_id
order by table_name, column_name, part_id;
--例
要将名称服务器限制为套接字 0 的第一个 CPU 的两个逻辑内核,请使用 以下关联设置:
ALTER SYSTEM ALTER CONFIGURATION ('daemon.ini', 'SYSTEM') SET ('nameserver', 'affinity') = '0,16'
--例
将预处理器和编译服务器限制为所有剩余的内核( 是,除 0 和 16) 之外,在套接字 0 上,使用以下关联设置:
ALTER SYSTEM ALTER CONFIGURATION ('daemon.ini', 'SYSTEM') SET ('preprocessor', 'affinity') = '1-7,17-23'
ALTER SYSTEM ALTER CONFIGURATION ('daemon.ini', 'SYSTEM') SET ('compileserver', 'affinity') = '1-7,17-23'
例
若要将索引服务器限制为套接字 1 上的所有内核,请使用以下关联 设置:
ALTER SYSTEM ALTER CONFIGURATION ('daemon.ini', 'SYSTEM') SET ('indexserver', 'affinity') = '8-15,24-31'
--设置工作负载的用户参数
如何查询设置。当前应用于所选内容的参数设置 用户显示在USER_PARAMETERS中:
SELECT * FROM USER_PARAMETERS WHERE USER_NAME = 'SYSTEM';
当前应用于当前会话的用户参数的值为 如M_CONNECTIONS所示。以下示例显示了 PRIORITY 用户参数:
SELECT PRIORITY FROM M_CONNECTIONS WHERE CONNECTION_ID = CURRENT_CONNECTION;
使用以下 SQL 设置语句内存限制的值(以 GB 为单位) 陈述:
ALTER USER MyUserId SET PARAMETER STATEMENT MEMORY LIMIT = '1';
此语句将用户排除在全局限制之外。
将语句内存限制设置为 0 将禁用任何语句内存 限制用户。或者,要重置特定于用户的限制,请使用 清楚 选择:
ALTER USER MyUserId CLEAR PARAMETER STATEMENT MEMORY LIMIT
语句线程限制
设置一个值以限制语句与以下 SQL 的并发性 陈述:
ALTER USER MyUserId SET PARAMETER STATEMENT THREAD LIMIT = '20';
优先权
您可以为当前 连接;可能值的范围为 0 到 9(默认值为 5)。用 以下声明:
ALTER USER MyUserId SET PARAMETER PRIORITY = '9';
--管理 SAP HANA 用户
停用 SYSTEM 用户 ALTER USER SYSTEM DEACTIVATE USER NOW;
--重置系统数据库中的 SYSTEM 用户,密码登录到系统数据库,然后执行 ALTER USER SQL语句:
ALTER USER SYSTEM PASSWORD <new_password>
--重置租户数据库中的 SYSTEM 用户密码
1.停止租户数据库。
执行以下语句:
ALTER SYSTEM STOP DATABASE <database_name>
2.通过执行以下语句为 SYSTEM 用户创建新密码:
ALTER DATABASE <database_name> SYSTEM USER PASSWORD <new_password>
--用于验证用户授权的系统视图
您可以查询多个系统视图,以获取有关确切哪个系统视图的详细信息 用户拥有的权限和角色,以及他们如何拥有这些权限和角色。这可以帮助您 了解为什么用户被授权执行特定操作、访问特定数据、 或不。
记得您必须具有系统权限 CATALOG READ 才能查询 以下视图。
SELECT * from "PUBLIC"."ACCESSIBLE_VIEWS" where USER_NAME = '<user_name>'; 将返回用户有权访问的所有视图。
select * from "SYS"."EFFECTIVE_APPLICATION_PRIVILEGES" where USER_NAME='<user_name>'; 授予指定用户的所有应用程序权限 直接和间接地通过角色返回 分别。
SELECT * FROM EFFECTIVE_MASK_EXPRESSIONS where ROOT_SCHEMA_NAME = '<schema_name>' and ROOT_OBJECT_NAME = '<object_name>' and ROOT_COLUMN_NAME = '<column_name>' and USER_NAME ='<user_name>'; 指定用户可以在指定视图中看到的所有屏蔽列,以及 相应的掩码表达式
对象权限:SELECT * FROM EFFECTIVE_PRIVILEGE_GRANTEES WHERE OBJECT_TYPE = '<object_type>' AND SCHEMA_NAME = '<schema_name>' AND OBJECT_NAME = '<object_name>' AND PRIVILEGE = '<privilege>';
系统权限:SELECT * FROM EFFECTIVE_PRIVILEGE_GRANTEES WHERE OBJECT_TYPE = 'SYSTEMPRIVILEGE' AND PRIVILEGE = '<privilege>';
基于 XML 分析权限:SELECT * FROM EFFECTIVE_PRIVILEGE_GRANTEES WHERE OBJECT_TYPE = 'ANALYTICPRIVILEGE' AND SCHEMA_NAME = '<schema_name>' AND OBJECT_NAME = '<privilege_object_name>' AND PRIVILEGE = 'EXECUTE';
基于 SQL 的分析权限:SELECT * FROM EFFECTIVE_PRIVILEGE_GRANTEES WHERE OBJECT_TYPE = 'SQLANALYTICPRIVILEGE' AND SCHEMA_NAME = '<schema_name>' AND OBJECT_NAME = '<privilege_object_name>' AND PRIVILEGE = 'EXECUTE';
注意
对于分析权限,架构 name 是可选的。
具有指定权限的所有用户或角色都是 返回。
SELECT * FROM "PUBLIC"."EFFECTIVE_PRIVILEGES" where USER_NAME = '<user_name>'; 直接授予指定用户的所有权限 间接通过角色单独返回。
SELECT * FROM EFFECTIVE_ROLE_GRANTEES WHERE ROLE_NAME = '<role_name>'; 返回具有指定角色的所有用户或角色。
SELECT * FROM "PUBLIC"."EFFECTIVE_ROLES" where USER_NAME = '<user_name>' AND ROLE_SCHEMA_NAME = '<schema_name of role>';注意图式 name 是可选的。直接和间接授予指定用户的所有角色 通过其他角色单独返回。
SELECT * from "PUBLIC"."EFFECTIVE_STRUCTURED_PRIVILEGES" where ROOT_SCHEMA_NAME = '<schema>' AND ROOT_OBJECT_NAME = '<object_name>' AND USER_NAME = '<user_name>' 适用于指定视图的分析权限包括 返回,包括动态筛选条件(如果相关)。它也是 指示指定用户是否有权访问 视图。
SELECT * FROM "PUBLIC"."GRANTED_PRIVILEGES" where GRANTEE = '<user_name>'; 直接授予指定用户(或角色)的权限包括 返回。授予的角色中包含的权限不是 显示。
注意可以查询直接授予的权限 通过替换为where GRANTEE = '<USER>'where GRANTEE = '<ROLE>'
SELECT * FROM "PUBLIC"."GRANTED_ROLES" where GRANTEE = '<user/role_name>'; 直接授予指定用户(或角色)的所有角色都是 返回。不会显示已授予角色中包含的角色。
注意是的 可以通过将where GRANTEE = '<USER>'where GRANTEE = '<ROLE>'
--使用系统复制复制系统
可以使用 SAP HANA 系统复制创建 SAP 的副本 HANA 数据库。
先决条件
此过程需要要复制的源 SAP HANA 数据库。
目标主机也可以是虚拟机,但已安装的 SAP HANA 版本位于 目标必须与源上的版本相同或更高。
程序
1.使用以下命令准备要复制的源数据库:
hdbnsutil -sr_enable [--name=<siteName>]
2.将目标数据库注册为辅助数据库或第 3 层辅助数据库,具体取决于您的 原始设置:
hdbnsutil -sr_register --remoteHost=<primary master host> --remoteInstance=<primary instance id>
--replicationMode=[sync|syncmem|async] --name=<sitename>
--operationMode=[delta_datashipping|logreplay|logreplay_readaccess]
3.默认操作模式为 logreplay,但您可以指定其他模式 在命令中。
4.启动新注册的目标数据库。
5.当系统复制处于活动状态且同步时,对 目标数据库。
6.接管完成后,目标数据库将作为 源数据库。
7.为避免与源数据库混淆,请重命名 <SID>和 使用工具 hdblcm 更改实例编号。
--重命名 SAP HANA 系统主机
可以使用 SAP HANA 数据库生命周期管理器重命名 SAP HANA 系统主机 (HDBLCM)居民 在要配置的系统上编程。
先决条件
您以 root 用户身份登录。
SAP HANA 系统已随 SAP HANA 数据库生命周期管理器一起安装 (HDBLCM)。
您以 root 用户或系统管理员用户 <sid>adm) 身份登录。
要重命名的主机可以通过旧主机名和新主机名访问 或 SAP HANA 系统已停止。
目标 SID 不得存在。但是,目标操作系统管理员 (<sid>adm) 用户可能存在。请确保您拥有现有 <sid>adm 用户的密码,并且用户属性和组分配正确无误。SAP HANA 数据库生命周期管理器 (HDBLCM)常驻程序不会修改任何现有用户的属性或 群。
注意
如果重命名 SAP HANA 系统,这通常会使永久 SAP 许可证失效。一个 临时许可证已安装,必须在 28 天内更换。查看更多 信息,请参阅相关信息。
程序
1.更改为 SAP HANA 驻留的 HDBLCM 目录:
cd <sapmnt>/<SID>/hdblcm
默认情况下,为 /hana/shared/<sapmnt>
2.启动重命名任务:
使用 SAP HANA 数据库重命名主机 Lifecycle Manager 命令行界面:
-启动命令行工具 交互方式:并输入索引 动作,或
./hdblcm
rename_system
-使用操作启动工具 指定:rename_system
./hdblcm --action=rename_system --hostmap=<old host>=<new host>
-使用 SAP HANA 数据库重命名主机 Lifecycle Manager 图形用户界面:
-启动图形用户界面工具:SAP HANA 数据库 此时将显示 Lifecycle Manager 图形用户界面。
./hdblcmgui
选择“重命名 SAP HANA 数据库系统”。
选择一个主机,然后选择 Edit Host...。
在目标主机中输入新主机名 “名称”字段。
3.定义所需的参数。
有关操作参数的更多信息,请参阅 《SAP HANA Server 安装和更新指南》。rename_system
注意
使用命令行时,选项 只有在配置期间才能以交互方式设置,前提是它们在 帮助说明。所有其他选项都必须在命令行中指定。自 在 SAP HANA 驻留的 HDBLCM 目录中调用帮助 在SAP HANA系统中,执行以下命令:
./hdblcm --action=rename_system --help
要继续执行任务,请按以下步骤操作:
在命令行界面中:输入 y。
在图形界面中:
下一步。
4.要执行配置任务,请选择 Rename。 系统显示配置进度。
配置任务完成后,您可以:
查看日志。为此,请选择 View (查看) 日志。
退出图形用户界面。为此,请选择 Finish。