云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名解析_数据库启动失败_新用户

小七 141 0

导言

当特斯拉彻底改变了电动汽车外观的概念时,他们没有重新发明车轮。类似地,尽管SAP-HANA通过HTAP(混合事务/分析处理)彻底改变了关系数据库,将OLTP与OLAP结合起来,但并不是所有平台上的东西都是从头开始开发的。一个例子是如何在Linux操作系统上使用SAPInit和SAPStartSrv初始化SAP HANA数据库的机制。这与启动SAP NetWeaver进程完全相同。

那么这是如何工作的呢?

视频教程

启动和停止sapinit教程视频显示sapinit/SAPServices配置以及如何配置SAP HANA系统的自动启动。这段视频是为在谷歌云平台系列上开始使用SAP HANA而录制的,但在所有平台、云或内部部署上,SAPInit的实现都是相同的。

URL:https://www.youtube.com/watch?v=2-YHWKTZK

需要服务吗?

大多数人将熟悉Microsoft Windows计算机上的服务配置。

下面是在sapadm本地用户帐户下运行的SAPHostControl服务的屏幕截图。运行服务的实际程序是可执行文件sapstartsrv.exe文件. 此服务的特定参数来自配置文件,或者这里所称的配置文件(pf=)。

Linux上SAP HANA的服务实现非常相似。

下面是SUSE Linux Enterprise Server(SLES)上Services Manager的屏幕截图。服务名为sapinit,它运行的程序(可执行文件)名为sapstartsrv。

要访问SLES上的服务管理器,请运行命令yast Services Manager。

通常,SAP HANA系统上不会启用图形X-Windows环境,因此服务管理器看起来更像下面的旧MS-DOS屏幕。看,爷爷,功能键!

你用箭头键而不是鼠标导航,但对于其他的,工作原理相同。

您可以[启用/禁用]和[启动/停止]该服务。

禁用该服务不仅会阻止SAP HANA系统在Linux启动时自动启动,而且会阻止它完全启动。

除了使用另一个安装工具之外,您也可以使用systemctl命令直接与服务管理器接口。

过去,您可以使用chkconfig与系统启动和服务管理器接口,电商平台数据分析,但现在已被systemctl取代。

这是一个大主题,systemctl和systemd。对于那些对更亲切、温和的介绍感兴趣的人,SUSE发表了一篇白皮书:

SUSE Linux Enterprise 12中的systemd

使用systemctl,您可以启用服务并启动它。

那么这是如何工作的呢?

显示详细信息

在Windows上,服务实现需要我们打开注册表并在注册表和配置单元中丢失,但在Linux上,幸运的是,没有注册表;我们只有文件。

systemctl status sapinit命令向我们显示相关的文件:/etc/init.d/sapinit。

列出启动服务的命令:ExecStart=/etc/init.d/sapinit start,这是systemd运行此命令的结果:status=0/SUCCESS)

Services Manager中的Show Details命令输出相同的结果信息。

系统初始化与控制组(CGroup)一起管理相关服务–类似于Windows上的服务依赖关系–在这里我们可以看到,sapinit还启动了两个SAP Host Agent可执行文件:saphostexec和saposcol(带有主机配置文件中的参数)。

输出(log file/var/log/messages)通知告诉我们,对于sapshostexec,为用户sapadm和sapinit打开一个会话,为用户hxeadm打开一个会话。

可以忽略消息Impromptu CCC initialization。事实上,SAP注意事项不是1266393,而是2130426–HDBStart:通过"rscpCInit"进行临时CCC初始化。

SAPInit

SAPInit不是程序或可执行文件,而是可执行脚本文件。

熟悉SAP基础管理的人肯定会认识到SAP HANA的启动/停止实现,因为它完全相同至于SAP Netweaver系统,可以追溯到2005年。事实上,当我们查看脚本文件/etc/init.d/sapinit时,版权声明(c)是1995-2005年,早在SAP HANA发布给客户(RTC)之前。

sapinit是一个通用的UNIX脚本,具有AIX、HP-UX和z/OS的特定代码行,当然,SAP HANA只有在Linux上运行。

在脚本的末尾,我们找到了主要的函数:start、stop、status和restart。

如果您想跟踪任何操作,只需在sapinit文件中的命令sapinit start trace中添加trace即可,定义了几个函数来支持主要函数。

其中一个支持函数是read\u sapservices,它读取另一个文件的内容:/usr/sap/sapservices。

与SAPInit一样,sapservices也是一个可执行脚本文件。

对于sap HANA,它包含一行定义sapstartsrv命令的LD\u LIBRARY\u PATH环境变量(类似于Windows上的DLL)。

如果您想在Linux系统上担任一天的服务经理,您可以使用sapinit命令手动停止和启动SAP HANA系统。

要手动启动SAP HANA系统,作为超级用户输入,命令:

这将首先启动host agent[saphostexec-start pf=],然后执行sapservices脚本文件的内容。

我们得到了与前面看到的systemctl status sapinit(见上文)相同的临时CCC初始化输出。

这里我们可以看到如何在中实现start函数SAPInit,先运行saphostexec,然后调用函数read\u sapservices,内容在for循环中执行

跟踪SAPInit启动过程,只需将sapservices文件的内容打印到控制台

几秒钟后返回提示,大数据技术学什么,因此,很高兴认识到sapinit status通知我们sapstartsrv进程的状态(up,down),而不是整个SAP HANA系统是否已经启动并运行。