SAP Basis 运维是保障系统稳定运行的基础。本文按照每日、每周、每月、季度四个周期,系统整理了 SAP 系统运维的完整检查清单,每个检查项都包含对应的事务码、检查内容、关注点和异常处理方法。此外,还汇总了常见应急场景的处理方案。
每日检查是 Basis 运维的基础,建议在工作日早上 8:00-9:00 执行,确保系统在业务高峰前处于健康状态。
| 检查项 | 事务码 | 检查内容 | 关注点 | 异常处理 |
|---|---|---|---|---|
| 工作进程状态 | SM50 / SM66 | 查看所有应用服务器的工作进程状态 | DIA 进程是否大量等待或挂起;是否有进程长时间占用(>10分钟);BGD 进程是否全部被占满 | 长时间占用:在 SM50 中查看该进程的程序名和动作,必要时终止(End Session);DIA 耗尽:检查是否有长时间运行的对话程序,优化或移至后台执行 |
| 系统日志 | SM21 | 查看过去 24 小时的系统日志 | 是否有操作系统级别错误;是否有数据库连接错误;是否有内核错误(kernel error);是否有 RFC 连接失败 | 数据库连接错误:检查 DB 连接和 TNS/连接字符串;内核错误:检查 /usr/sap/SID/DVEBMGSnn/work/ 下的 dev_trace 文件;RFC 错误:检查 SM59 中的目标系统连接 |
| ABAP 运行时错误 | ST22 | 查看过去 24 小时的 DUMP 列表 | DUMP 数量是否异常增多;是否有新的、未知的 DUMP 类型;频繁出现的 DUMP(如 TSV_TNEW_PAGE_ALLOC_FAILED 提示内存不足) | TSV_TNEW_PAGE_ALLOC_FAILED:检查程序内存使用,调整扩展内存参数;MESSAGE_TYPE_X:通常是程序逻辑错误,联系开发人员修复;TIME_OUT:程序执行超时,优化或拆分处理逻辑 |
| 后台作业状态 | SM37 | 检查关键后台作业的执行状态 | 是否有状态为"已取消"(Canceled)的作业;关键定时作业是否按时执行(如月末结账作业);长期运行的作业是否正常 | 已取消作业:查看作业日志定位取消原因;作业未按时执行:检查 SM36 调度配置和工作进程可用性;作业长期运行:在 SM50 中查看该作业进程的详细状态 |
| 数据库状态 | DB02 / DBACOCKPIT | 检查数据库整体健康状态 | HANA 内存使用率(<80% 正常);数据库备份是否成功;表空间/存储是否有空间告警;是否有长运行 SQL | 内存使用率高:检查是否有内存泄漏,考虑重启 HANA;备份失败:立即排查原因并重新执行;空间不足:清理日志、归档数据或扩展存储 |
| 更新记录 | SM13 | 检查更新请求的状态 | 是否有状态为"错误"的更新记录;更新记录是否长时间未被处理 | 更新错误:查看错误详情,修复后重新执行(重复更新);更新积压:检查 UPD/UP2 工作进程是否正常,必要时增加工作进程数 |
| 系统锁定 | SM12 | 检查是否存在长时间锁定 | 是否有超过 1 小时的锁定条目;是否有用户报告无法操作(可能因锁定冲突) | 长时间锁定:联系锁定用户确认是否可释放;必要时删除锁定条目(谨慎操作);大量锁定:可能是程序未正确释放锁,联系开发人员 |
| 假脱机请求 | SP01 | 检查假脱机请求状态 | 是否有大量等待中的假脱机请求;是否有错误状态的假脱机请求 | 等待中的请求:检查打印机状态和 SPO 工作进程;错误请求:检查输出设备配置;定期清理已完成的老旧假脱机请求 |
每周检查在每周一执行,关注系统性能趋势和资源使用情况。
| 检查项 | 事务码 | 检查内容 | 关注点 | 异常处理 |
|---|---|---|---|---|
| 性能趋势分析 | ST03N | 分析过去一周的系统性能数据 | 平均响应时间是否呈上升趋势;数据库时间占比是否异常(正常 < 40%);哪些事务码响应时间最长;用户数和对话步骤数趋势 | 响应时间上升:结合 ST05 分析热点事务的 SQL 性能;数据库时间占比高:检查是否有慢 SQL 或缺少索引;特定事务码慢:使用 SAT 分析该事务的运行时 |
| 假脱机清理 | SP01 | 清理过期的假脱机请求 | 假脱机请求数量是否过多;是否有 7 天以上已完成的请求未清理 | 使用 SP01 批量删除已完成的旧请求;检查 RSPO0041/RSPO0042 程序定期清理配置 |
| 锁定条目检查 | SM12 | 检查并清理残留锁定 | 是否有用户已退出但锁定未释放;是否有跨系统的锁定冲突 | 确认用户已退出后删除残留锁定;排查锁定未释放的程序原因 |
| 用户会话检查 | SM04 / AL08 | 检查当前用户登录情况 | 是否有异常用户登录(非工作时间、未知 IP);是否有用户长期占用大量会话;是否接近最大会话数限制 | 异常登录:检查 SU01 用户主数据和审计日志;会话过多:检查是否有程序未正确关闭会话;接近上限:调整参数 rdisp/max_alt_modes 或优化会话使用 |
| 审计日志检查 | SM20 / RSAU_READ_LOG | 审查安全审计日志 | 是否有暴力破解登录尝试;是否有敏感事务码的异常使用;是否有权限变更记录 | 暴力破解:锁定用户、加强密码策略、限制 IP 访问;异常事务使用:联系相关用户确认操作合理性;权限变更:核实变更审批流程 |
| 传输管理 | STMS / SE01 | 检查传输队列状态 | 传输队列中是否有长时间未导入的请求;导入是否有错误;开发→测试→生产的传输是否一致 | 导入错误:查看传输日志定位错误原因;请求积压:与开发团队确认导入计划;传输不一致:核实各系统版本差异 |
| 系统参数检查 | RZ11 | 检查关键动态参数是否被修改 | 是否有参数被未经授权的修改;关键参数(如工作进程数、内存参数)是否在合理范围 | 异常修改:恢复默认值并调查修改原因;参数不合理:按 SAP Note 建议调整 |
每月检查在每月初执行,侧重于资源规划、安全合规和数据完整性。
| 检查项 | 事务码 | 检查内容 | 关注点 | 异常处理 |
|---|---|---|---|---|
| 磁盘空间检查 | AL11 / OS 命令 | 检查文件系统空间使用情况 | /usr/sap/ 目录空间使用率(<80%);/sapmnt/ 目录空间;HANA 数据和日志卷空间;归档日志目录空间 | 空间不足:清理 trace 文件(/usr/sap/SID/DVEBMGSnn/work/ 下的 dev_*、*.old 文件);清理旧归档日志;扩展存储卷 |
| 备份验证 | DB13 / DBACOCKPIT | 验证数据库备份是否完整可用 | 每日全量/增量备份是否成功;备份文件是否可恢复(定期做恢复测试);备份保留策略是否执行 | 备份失败:立即排查原因并重新执行;从未做过恢复测试:安排在测试系统中验证恢复流程 |
| 传输管理复核 | STMS | 复核传输管理状态 | 传输路由是否正确;传输缓冲区是否有积压;版本管理是否一致 | 传输路由错误:修正 STMS 配置;版本不一致:通过 SCCP 或重新传输同步 |
| 用户权限复核 | SUIM / SU10 | 复核用户权限和角色分配 | 是否有用户拥有 SAP_ALL 等高危权限;是否有用户权限与岗位职责不符;是否有长期未使用的用户账号;是否有离职用户账号未锁定 | 高危权限:核实审批记录,必要时收回;权限不符:调整角色分配;未使用账号:超过 90 天未登录的账号应锁定;离职账号:立即锁定并归档 |
| 表空间/存储分析 | DB02 | 分析数据库表空间增长趋势 | 哪些表增长最快;表空间碎片化程度;HANA 内存增长趋势 | 增长异常:检查是否有大量数据导入或异常日志写入;碎片化:安排表重建或重组;内存增长:评估是否需要扩容 |
| 系统补丁评估 | SPAM / SAINT | 评估是否需要应用 SAP Note 或 Support Package | 是否有安全相关的 SAP Note 需要应用;当前 Support Package 是否过旧;是否有已知 Bug 影响业务 | 安全 Note:优先在测试系统中验证后应用;SP 过旧:规划 SP 升级项目 |
| OS 层面检查 | OS 命令 / SAP Host Agent | 检查操作系统层面的健康状态 | OS 补丁级别;文件系统挂载状态;网络连接状态;时钟同步(NTP) | 时钟不同步:立即同步,SAP 系统对时间敏感;OS 补丁缺失:安排维护窗口更新 |
季度检查侧重于安全审计、性能基线和长期规划。
| 检查项 | 事务码/工具 | 检查内容 | 关注点 | 异常处理 |
|---|---|---|---|---|
| 安全审计 | SM20 / RSAU_READ_LOG / SUIM | 全面的安全审计 | 权限变更审计记录;敏感数据访问记录;系统配置变更记录;网络安全状况 | 未授权变更:调查并恢复;敏感数据泄露风险:加强访问控制和审计 |
| 性能基线对比 | ST03N / DBACOCKPIT | 与历史性能基线对比 | 响应时间较上季度变化;数据库性能指标趋势;HANA 内存使用趋势;用户数和业务量增长趋势 | 性能持续退化:制定专项优化计划;资源紧张:规划扩容方案 |
| 补丁评估与规划 | SPAM / SAP Note | 评估并规划系统补丁升级 | 当前系统版本与最新版本差距;安全漏洞修复需求;功能增强需求 | 差距较大:规划 SP 升级或迁移项目;安全漏洞:优先安排修复 |
| DR 演练 | — | 灾难恢复演练 | DR 系统是否可用;切换时间是否满足 RTO;数据丢失量是否满足 RPO | DR 不可用:立即修复;RTO/RPO 不达标:优化 DR 方案和流程 |
| 许可证检查 | SLAW / USMM | 检查 SAP 许可证使用情况 | 用户许可证类型是否正确分配;许可证数量是否接近上限 | 接近上限:评估是否需要购买额外许可或优化用户类型分配 |
| 归档策略复核 | SARA | 复核数据归档策略 | 归档作业是否正常运行;归档数据是否可读取;归档策略是否满足业务和法律要求 | 归档失败:排查错误并重新执行;策略不合理:与业务部门协商调整 |
以下为常见紧急场景的快速处理指南,供运维人员在紧急情况下参考。
所有用户无法登录或操作,SM50 中所有 DIA 进程长时间处于等待或运行状态。
处理步骤:
dpmon 命令)查看进程状态stopsap / startsap)用户操作报错"SQL deadlock"或事务无法提交,SM13 中出现更新错误。
处理步骤:
SELECT * FROM M_BLOCKED_TRANSACTIONS 查看阻塞事务传输导入失败,STMS 中显示红灯,传输日志中有错误信息。
处理步骤:
tp cleanbuffer 和 tp clearold 清理大量 TSV_TNEW_PAGE_ALLOC_FAILED DUMP;用户报告程序无法执行;系统响应极慢。
处理步骤:
em/initial_size_MB 和实际使用率abap/heap_area_dia 限制单个会话的内存上限| 紧急场景 | 首要事务码 | 首要动作 | 升级条件 |
|---|---|---|---|
| 系统挂起 | SM50/SM66 | 识别并终止问题进程 | 无法终止进程或整个实例无响应 → 重启实例 |
| 数据库死锁 | DBACOCKPIT/SM13 | 识别并终止阻塞事务 | 死锁频繁发生 → 联系开发团队优化锁逻辑 |
| 传输失败 | STMS | 查看传输日志定位错误 | 关键生产传输失败 → 紧急处理,必要时回滚 |
| 内存溢出 | ST22/RZ11 | 增加内存参数 / 终止问题程序 | 频繁溢出 → 规划内存扩容和程序优化 |
| HANA 宕机 | HDB info / OS 层 | 检查 HANA 进程状态 | HANA 无法重启 → 联系 SAP Support |
| 更新模块挂起 | SM13 | 重置更新模块 | 大量更新记录积压 → 可能需要重启应用实例 |
| 打印故障 | SP01/SPAD | 检查输出设备和假脱机进程 | SPO 进程异常 → 重启假脱机或清理假脱机请求 |
良好的运维习惯是 SAP 系统稳定运行的保障。建议根据本清单建立自动化监控脚本(如通过 SAP CCMS/Alert Framework 或第三方监控工具),将日常检查自动化,仅对告警项进行人工确认,提高运维效率。