5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

时间:2024-03-29 17:13:08

本系列基于 SAP S/4 HANA version 1709 - On Premise 

前言

本文用于读者快速了解SAP Basis的一些基本概念,不对具体的操作进行详细说明

 

目录

目录

前言

目录

系统架构(Structure)

S/4 HANA架构-应用视角

S/4 HANA架构-服务器视角

Profile参数(Profile Parameters)

基本概念

基本操作

集团管理(Client Management)

基本概念

Client 构成

基本操作

用户会话(User Session) & 工作进程(Work Process)

用户会话(User Sessions)

工作进程(Work Process)

跟踪(Tracking) & 监控(Monitor)

跟踪(Tracking)

性能分析(Performance Analysis)

日志(System Logs) & Dump分析(Dump Analysis)

作业(Jobs)

基本概念

管理作业(Job Management)

技术作业(Technical Jobs)

假脱机(Spool) & 打印(Print)

基本概念

相关操作

传输请求(Transport Change Request)

基本概念

管理传输(Transport Management)

生命周期管理(LifeCycle Management)

SAP的支持周期

补丁&升级部署

SAP支持(Support)


 

系统架构(Structure)

  • S/4 HANA架构-应用视角

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

SAP S/4 HANA 是SAP 商业套件(Business Suite) 的下一代产品,用来替代之前的 R/3 和 ECC,据说做了很多革新,但大多数功能用起来和ECC的差别不是特别明显。

SAP HANA DataBase 是S/4 HANA 所使用的数据库,类似于 Oracle DB 或 微软的 SQL Server,HANA 是SAP自行研发的内存数据库产品,设计初衷是为了支持商业智能(BI)应用,优势在于能实时分析大量的业务数据,而不需要去对数据进行传统的建模、抽取、聚合等操作。由于使用了内存数据库技术(所有数据均在内存中储存并优化),及列存储技术,使得HANA在做数据分析工作会比传统数据库快很多,SAP对HANA很有信心,并将其作为未来的主要数据库使用,S/4只支持在HANA数据库上运行。由于HANA的高性能,S/4之前很多中间表都被舍弃,从而大幅减少了数据表的数量、复杂度及可能造成的数据不一致。

SAP NetWeaver AS ABAP  NetWeaver 对SAP而言,如同 .Net 框架对于微软的意义一样重大,是绝大多数商业套件(Business Suite) 的基础架构。基于ABAP语言的 NetWeaver 被称作 SAP NetWeaver Application Server ABAP( 简称 NetWeaver AS ABAP),目前最新版本为 7.5 。在此基础上,SAP 构建了 S/4 Core 来实现基本的ERP业务需求;此外构建了S/4 其他的补充功能模块(如HR等),这些组件共同构成了新一代的商业套件 S/4 HANA 。

SAP Solution Manager 是集成了系统监控、支持、自主服务、实施管理等功能的独立管理平台,可以集成了SAP系统在各个阶段各方面的信息,如各种业务流程,系统警告、测试结果、接口描述等,从而帮助客户实现SAP全生命周期管理,Solution Manager 是目前SAP主推的管理平台,并免费向所有客户开放使用(注:但目前大多数中国客户都没有部署)。

 

  • S/4 HANA架构-服务器视角

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

Database Level 数据库层

由一台或者多台通过 SAP认证的 HANA软硬件一体机 组成,一体机由服务器厂商和SAP合作,保证服务器硬件,操作系统和HANA数据库的完美配合,HANA数据库可以在三种模式下运行:单节点模式,双机主备模式(类似 Oracle DataGuard)、或集群模式(类似 Oracle RAC)

 

Application Layer 应用层 

应用服务器(Application Server, 后文简称为AS) 一般有三种类型,每台服务器均需配置合理的主机名(Hostname)

1)  ASCS (Application Server Centeral Services) 用于对其他服务器节点进行管理和调度,一般也被成为消息服务器(Message Server);

2)  AAS(Additional Application Server) 运行具体的业务的服务器节点;

3)  PAS(Primary Application Server) 能同时提供 ASCS 和 AAS 的功能,一般用于研测环境单机部署;

生产环境部署一般使用单台或主备模式的 ASCS,调度多台 AAS 来实现应用层的负载均衡和高可用。

 

Presentation Layer 展示层 

展示层指用户访问的界面:使用客户端(SAPGUI) 访问、使用浏览器访问(SAP WebGUI(很少有人用)、NWBC等) 

 

部署多套S/4 HANA 系统

通常情况下,我们会部署多套 S/4 HANA 系统(System),用于开发、测试、质量保证、培训、生产等用途;不同的SAP系统用系统ID(System ID, SID, 由3位数字或字母构成)进行区分;每个AS服务器下可以部署多个实例,用实例ID(Instance ID,同样由3位数字或字母构成)进行区分,一般我们仅给每台服务器部署一个实例;

为了满足SAP开发配置、测试和 上线使用的需求,我们通常会设置以下系统 :

交互演示&培训系统(Interactive Demonstration and Evaluation System, IDES) 该系统自带一些演示业务数据,一般仅在项目上线初期时,供员工了解SAP的各项功能和基本操作,在上线和运维阶段,也可以用于验证一些新的功能或想法,而不用担心影响现有的开发、测试和生产系统。

开发&配置&单元测试系统(Development&Configuration&Unit Test, DEV)  该系统用于开发人员和业务顾问按照项目需求,进行ABAP开发、配置调整和验证等工作,通常不包括实际的业务数据,在该系统验证通过后的代码\配置可以部署到 测试\质量保证系统中 

集成测试/质量保证/培训练习系统(Integration Test & Quality Assurance System, QAS) 该环境用于关键用户/最终用户 对DEV系统做的配置、调整进行验证和练习,从而保证相关调整能满足需求且不会引入新的问题,该系统可能包括部分实际业务数据以便更好的进行验证;在通过评估和测试后,才可部署到 生产系统

生产系统(Production System, PRD) 该系统用于处理实际业务,其中所有的配置、数据和业务操作均应谨慎对待。

 

 

Profile参数(Profile Parameters)

  • 基本概念

SAP 应用服务器(Application Server, 后文简称为AS) 启动时,会读取 Profile文件,该文件定义了连接数据库的用户名密码、分配的内存大小和方式等系统运行所必须的各项参数,此外也包括了密码策略、访问地址等其他参数,根据具体的需求,我们需检查和调整这些 Profile Parameters。

Profile Parameter 实际存储在 AS 的文件系统中,具体路径由参数DIR_PROFILE决定(Linux下默认为/usr/sap/<SID>/SYS/profile/),多个 AS 之间应共享同一个Profile目录(可以通过搭建NFS服务器实现共享),在SAP启动时,会读取该目录下的参数文件;

Profile Parameter 一般分为两种:

DEFAULT 对所有的AS 均有效,用于配置一些与 AS 无关的设置,如密码策略等

<SID>_<Instance ID>_<Hostname> 仅对当前Instance和 AS 有效,常用于控制于AS性能有关的选项,如内存、最大会话数量等

 

  • 基本操作

事务码 RZ10 可查看和修改 Profile Parameter,修改后需重启 AS 才可生效

事务码 RZ11 可查看当前正处于生效状态的 Profile Parameter 的值是什么;有些 Profile Parameter 可以用 RZ11 直接修改,此时无需重启 AS 即可立刻生效。 

 

 

集团管理(Client Management)

  • 基本概念

在部署的每一套 系统中,我们可以建立多个 集团(Client),Client 之间共享相同的运行环境、profile配置、ABAP代码和少量的跨集团配置(Cross-Client Configuration),绝大多数的配置,和所有的业务数据在 Client 间是独立的,因此我们可以在每个S/4 系统下,建立多个 Client 已满足不同的需求。

Client 编号由3位数字组成,每个系统下均会有一个叫做 000 SAP参考(SAP Reference) 的 默认Client,上线初期,用户可以通过 Client复制(Client Copy) 功能,通过复制 000 Client 来建立新的Client;在运维阶段,用户可以从现有的Client复制出一个新的Client来满足业务需求(注:这是SAP运维的日常工作之一)。

一种常见的Client划分及部署路径如下:

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

 

  • Client 构成

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

如图所示:同一系统下的所有集团共享 仓库对象(Repository objects)(如表结构、ABAP程序、事务、功能模块等) 和 跨Client配置(Cross-client Customizing);在此基础之上,每个Client管理 Client特定的配置(Client-dependent Customizing)(如公司代码、工厂、仓库等)、自己的用户主数据(User Master Records)(如用户、角色、权限等)、业务数据(Application data)(如采购订单、财务凭证、发票等)。

 

  • 基本操作

我们可以使用一些事务码对Client进行管理,这里只进行枚举,不再详细解释:

事务码 说明

SCC1

在Client间传输变更请求 (Copy by Transport Request)

SCC3

查看和监控传输日志 (Client Copy/Transport Log Analysis)

SCC4

管理Client (Client Management)

SCC5

删除Client (Delete Client)

SCC7

从文件导入 Client (Client Import)

SCC8

导出Client到文件 (Client Export)

SCC9

跨系统的远程Client 复制 (Remote Client Copy)

SCCL

当前系统内的Client复制 (Local Client Copy)

P.S. 在使用SAPGUI 登录系统时,会带出默认的Client,可通过修改 Profile参数 login/system_client 来修改该默认值 

 

 

用户会话(User Session) & 工作进程(Work Process)

  • 用户会话(User Sessions)

用户(User) 一般分为前端用户和后端用户,前端用户一般使用SAPGUI访问 S/4 HANA 系统,每打开一个SAPGUI窗口(也被称作一个对话Dialog),S/4 HANA 会为该 Dialog 建立 用户会话(User Session);

除了打开SAPGUI窗口会产生 User Session,一些后台操作如 打印,执行后台作业也会建立 User Session;

可以用 事务码 AL08 查看 所有 AS 的 User Sessions,用事务码 SM04 查看和管理当前 AS 的 User Sessions;

为了避免在ABAP程序执行时,其访问的数据被其他ABAP程序修改,某个 Session 会将需独占的资源锁定,产生 锁(Lock),我们可以用事务码 SM12 去查看和管理这些锁。

User Session 有时会触发 后台更新请求(Update Request),我们可以用事务码 SM13 查看正在运行或失败的 Update Requests。

 

  • 工作进程(Work Process)

Session会发起一系列的操作步骤(Step, SAPGUI触发的操作步骤通常被称为Dialog Step),每个 Step一般都会要求运行一段 ABAP程序,该请求会由调度器(Dispatcher) 分配给 Work Process;对Linux系统而言,Work Process对应的是实际的操作系统进程。

Work Process 分为以下几种类型

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

 

类型 Type 用途
对话(Dialog, DIA) 执行UI请求,RFC通信请求、内部请求(Internal requests)
更新(Update, UPD) 执行需及时完成的(time-critical) 更新请求
更新2(Update2,UPD2) 执行可延后的(non-time-critical, deferred)的更新请求
队列(Enqueue, ENQ) 执行锁定的请求(Lock Requests)
批处理(Batch, BTC) 执行批处理作业(Batch Jobs)
假脱机(Spool, SPO) 执行打印请求(Print Requests)

我们可以使用 事务码 SM66 查看当前所有 AS的 WorkProcess状态,使用SM50 查看当前 AS 的 Work Process运行状态

详情请看:SAP内存管理 https://blog.csdn.net/lostworld_gy/article/details/87867848

 

 

跟踪(Tracking) & 监控(Monitor)

  • 跟踪(Tracking)

如果遇到了问题但有不知道如何解决,我们可以使用事务码 ST01 进行跟踪,查看实际系统做了哪些操作,需注意的是,跟踪会严重影响系统性能,并产生大量的日志,因此在设置跟踪条件时,请严格限制要跟踪的用户名等参数,并在跟踪完毕后及时关闭跟踪。(SAP的很多操作过于复杂,因此跟踪日志很难读懂,一般常用于权限问题的跟踪)。

 

  • 性能分析(Performance Analysis)

事务码 ST02 可查看当前系统的性能汇总,并依据此处的结果进行调优,可以参考文档: https://ga.support.sap.com/dtp/viewer/#/tree/901/actions/9943  进行分析和优化,详细的原理请参考 SAP内存管理(一) (https://blog.csdn.net/lostworld_gy/article/details/87867848)

事务码 ST03/ST03N 用于查看整个系统的当前和历史的负载和每个任务的资源消耗情况

事务码 ST04/DBACOCKPIT 用于查看数据库的整体情况

事务码 ST05 可以对性能问题进行跟踪

事务码 ST06 记录了AS服务器当前和历史的各项资源的使用情况,用于对AS服务器 进行性能分析。

 

  • 日志(System Logs) & Dump分析(Dump Analysis)

ABAP程序 运行时,会记录一些日志(System Logs),这些日志包括了 提示(Message),警告(Alert) 或 错误(Error),可以使用事务码 SM21 查看近期的 System Logs;

如果出现了严重的错误,会导致程序终止运行,此时用户会看到一个报错界面,被称作 ABAP Runtime Errors,俗称Dump,可以使用事务码 ST22 查看近期发生的 Dump 记录;

Dump通常由于ABAP程序考虑不周,用户触发BUG造成,对于系统标准ABAP程序触发的Dump,可以在SAP支持网站查找相关Note或提交给SAP来解决;对于二次开发的ABAP程序需联系相关开发人员;需注意的是,有些Dump即使SAP也无法解决,只能提醒用户操作时予以规避。

 

 

作业(Jobs)

  • 基本概念

很多时候,我们希望系统能定时执行某些任务,如每周五晚上检查数据库是否一致性,每天清理一个月以前的审计日志,每隔3小时从HR系统获取最新的员工名单等,作业(Job) 是为了满足以上需求而设计的,通过Job,我们可以让SAP系统在满足某个条件时(如在某个特定的时间,或某个作业成功/失败后),在后台用指定的用户执行一系列ABAP程序。

一个Job由以下部分组成:

1) 开始条件(Start condition) 定义了作业执行条件,如特定的时间执行、每隔一段时间执行,在某个Job或事件发生后执行等;

2) 步骤(Steps) 定义了具体需要执行哪些ABAP程序、操作系统命令或外部程序,以及执行这些任务的变量、语言、用户、及在哪个 AS 服务器执行;

3) 作业日志(Job Logs) 显示了作业的执行明细,成功还是失败等;

4) 打印结果池(Spool List & Spool) 有些作业执行完成后会输出一些结果,这些结果可以在 Spool List 中查看。

 

一个Job通常会处于以下几种状态:

1) 计划(Scheduled) 表示Job已配置完毕,但没有被发布,因此满足条件时不会被执行;

2) 发布(Released) 此时Job状态正常,在满足条件时会自动执行;

3) 准备完毕(Ready) 此时Job已准备就绪,但由于某些缘故还未开始执行(如等待服务器资源等);

4) 执行中(Active) 此时作业正在运行中;

5) 成功(Finished) 或 失败(Canceled) 此时作业已执行完毕,可以查看 Job Log 或 Spool List查看日志和输出; 

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

 

  • 管理作业(Job Management)

使用事务码 SM36 可以新增一个Job;

使用事务码 SM37 可以管理当前的Job。

 

  • 技术作业(Technical Jobs)

SAP会运行一些标准作业,用于执行日志清理、系统检查等日常工作,在S/4 HANA 中,这些作业是系统自动分配的,可以在事务码 SM36 的按钮"Job Repository"中查看(在 S/4 HANA 1809 版本中,这个按钮的名字已改为"Technical Job")

 

 

假脱机(Spool) & 打印(Print)

  • 基本概念

假脱机(Spool) 是一个古老的计算机概念,全称为 外部设备联机并行操作(Simultaneous Peripheral Operation On-Line),是一种高速计算机设备(如CPU、内存) 和低速计算机设备(如打印机) 的通信技术,假脱机请求(Spool Request) 发给低速设备后,CPU\内存不再关注该作业,因此看起来如同脱机一样,但实际上操作系统仍在对该请求进行管理,因此被称为“假脱机真联机"(详见 百度百科-SPOOLing(https://baike.baidu.com/item/%E5%81%87%E8%84%B1%E6%9C%BA)

对SAP而言,Spool 通常指的就是 打印(Print), SAP支持多种打印方式,如在本地打印机打印(最常见的方式),我们也可以直接在AS上安装网络打印机,然后用户直接调用该打印机打印(不太推荐这种模式,大的公司用户一旦选错打印机,北京的同事可能从上海的打印机打印出文件)

 

  • 相关操作

使用事务码 SP01 可以查看和管理所有的 Spool Request 和 Output Request

使用事务码 SPAD 可以管理当前的输出设备(Output Devices),配置打印页面设置等参数

 

 

传输请求(Transport Change Request)

  • 基本概念

在S/4 HANA 的上线和实施阶段,我们需要把 DEV系统 编写或修改的ABAP程序,顾问做的业务配置(Customizing),部署到QAS系统中,并在QAS测试通过后,部署到PRD系统中,为此,S/4 HANA提供了一个自动化部署工具,这个工具通常被称为 传输管理系统(Transport Management System)

在SAP中,绝大多数的配置调整和所有的ABAP程序新增/修改,均要求有对应的变更请求(Change Request, 后文称为CR);我们可以将多个调整放在同一个 CR 中,在完成配置或代码开发/修改 后,我们可以发布 (Release) 这个CR,CR发布后将处于 Released 状态,不再允许修改。

CR 通常分为两种类型:修改 跨Client的配置 和 ABAP程序,通常会产生工作台请求 (WorkBench Request);而修改Client特定配置的,通常会产生定制请求(Customizing Request),关于这两种修改的区别,可参阅本文的 集团管理 章节;

在将CR从一个系统传输到另一个系统(如从DEV系统传输到 QAS系统) 之前,我们需要配置好的传输路径(Transport Router),这个工作一般是一次性的,一个典型的传输路径如下:

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

在 源系统(Source System) 创建CR时,我们需要指定对应的目标系统(Target System),例如我们在DEV系统下 创建一个CR,需指定 Target System 为 QAS,如果没有指定 Target System,则该CR 会被认为是 本地请求(Local Request),Local Request 将不能传输到其他系统中;有时我们做的一些修改不想传输到其他系统,会手工将其设置为Local Request;部署一些SAP补丁时,SAP也会强制要求其为 Local Request(这种情况下,我们就要在各系统分别部署该补丁);

在实际工作中,CR传输到PRD系统前,应在QAS系统经过充分的测试和验证,避免将未知问题带入生产环境。

 

  • 管理传输(Transport Management)

在创建 CR 的系统执行事务码 SE01, 可以管理和 Release 自己创建的CR,执行事务码 SE09 可以管理和Release 所有 CR;

目标系统执行事务码 STMS,选择 Import Overview(F5),可以查看来源系统 处于 Released 状态 的CR,并将其传输到目标系统中(例如我们在PRD环境执行STMS,可以从QAS环境获取CR)。

 

 

生命周期管理(LifeCycle Management)

  • SAP的支持周期

对于每一个 SAP版本 (如 SAP S/4 HANA 1709),SAP提供 5年的支持,及2年的扩展支持(需额外收费),一般当这个 版本支持到期后,SAP将不再提供技术支持,并建议用户尽快升级到新的版本

 

  • 补丁&升级部署

在系统运行过程中,SAP会提供不同级别的补丁包或升级包,具体如下:

类型

用途

位置

部署步骤

备注

Note

用于单个问题的解决

T-Code  sNote

分别在各环境部署;或在DEV部署,生成CR并传送至QAS和PRD系统(具体取决于Note的要求)

 

Support Package

用于解决一类问题的集合

T-Code  SPAM

分别在各环境部署

用事物码  SPDD SPAU 检查

 

Add-On

用于提供新的功能

T-Code  SAINT

分别在各环境部署

 

Stack

较大规模补丁集合,提供新的功能

Software Update Manager(SUM)

分别在各环境部署

 

Version

大版本升级,每个版本支持4年维护+2年扩展

需厂商支持

分别在各环境部署

 

 

  • SAP支持(Support)

在购买SAP产品时,SAP会给我们提供一个支持账号,使用该账号登录 https://launchpad.support.sap.com/ 可以去查找SAP知识库、获取安装包&补丁包、管理License、事件(Incidents)等工作。

在日常运维中,我们主要使用Launchpad的三个功能以寻求SAP支持:

 

1) 知识库(Knowledge Base),在顶部的搜索栏输入问题的关键词,可以搜索SAP的知识库,查看该问题是否有解决方案,也可直接输入Note编号查看Note详情;

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

 

2) 事件(Incident)管理 如果搜索到的Knowledge无法解决问题,可以使用 Submit an Incident 提交Incident,SAP会协助我们处理该问题,事件可以从 Launchpad 主页中进行管理,如果问题需快速解决,可以使用 Expert Chat 催单;

5. SAP S/4 运维基础知识(Basic Knowledge) - SAP S/4 Basis Learning

 

3) 远程连接(Remote Connections) 在解决Incident 的过程中,SAP有时要远程连接到我们的SAP系统中进行问题查看和数据修复,此时我们需要和其建立 Remote Connections,建立Remote Connections 的前提是安装配置 SAPRouter,开通外网访问并在 Launchpad中维护登录信息,只有完成这些作业后,SAP才能登录我们的系统,具体的实施指南请参考链接:https://support.sap.com/en/tools/connectivity-tools/remote-support.html