本系列基于 SAP S/4 HANA version 1709 - On Premise
前言
本文用于读者快速了解SAP Basis的一些基本概念,不对具体的操作进行详细说明
目录
目录
用户会话(User Session) & 工作进程(Work Process)
日志(System Logs) & Dump分析(Dump Analysis)
传输请求(Transport Change Request)
系统架构(Structure)
-
S/4 HANA架构-应用视角
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架构-服务器视角
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划分及部署路径如下:
-
Client 构成
如图所示:同一系统下的所有集团共享 仓库对象(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 分为以下几种类型
类型 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查看日志和输出;
-
管理作业(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),这个工作一般是一次性的,一个典型的传输路径如下:
在 源系统(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详情;
2) 事件(Incident)管理 如果搜索到的Knowledge无法解决问题,可以使用 Submit an Incident 提交Incident,SAP会协助我们处理该问题,事件可以从 Launchpad 主页中进行管理,如果问题需快速解决,可以使用 Expert Chat 催单;
3) 远程连接(Remote Connections) 在解决Incident 的过程中,SAP有时要远程连接到我们的SAP系统中进行问题查看和数据修复,此时我们需要和其建立 Remote Connections,建立Remote Connections 的前提是安装配置 SAPRouter,开通外网访问并在 Launchpad中维护登录信息,只有完成这些作业后,SAP才能登录我们的系统,具体的实施指南请参考链接:https://support.sap.com/en/tools/connectivity-tools/remote-support.html。