☰
SAP数据归档SARA实战:从配置到避坑,解决数据库膨胀与性能下降
2026/10/9 17:32:41 网站建设 项目流程

简介:这份资源聚焦SAP数据归档工具SARA的实操讲解,面向SAP运维、BASIS顾问及需要优化数据库性能的IT管理员。内容围绕采购订单归档展开,涵盖创建PO、Write阶段维护归档变式、Deletion阶段标记与删除、SM37作业状态监控,以及归档对象定制配置调整等关键环节,并延伸至Read查询功能,帮助读者理解归档条件判定与删除指示符设置逻辑。资源包共1个doc文档,约310KB,以图文步骤记录归档全流程与测试要点,便于对照系统操作。目前已有1055人学习下载,适合希望掌握SARA配置、排查归档异常并提升数据生命周期管理效率的从业者参考。

1. SAP 数据归档 SARA:为什么你的数据库越跑越慢,而老手却在偷偷做这件事

很多做 SAP BASIS 或 ABAP 的朋友都遇到过这个场景:系统上线三五年,数据库体积从几百 GB 涨到几个 TB,用户抱怨报表越跑越慢,DBA 天天盯着表空间告警,硬件扩容申请提了一轮又一轮,钱花了不少,性能却没回来多少。问题的根子往往不在硬件,而在那些躺在数据库里几年没人碰、却依然占着空间拖慢全表扫描的历史数据。SAP 数据归档 SARA 就是解决这个问题的核心工具,事务码 SARA 背后是一整套归档对象、归档作业、存储介质和删除策略的组合拳。它适合两类人:一类是被数据库膨胀逼到墙角的运维工程师,另一类是想把归档做规范、而不是每次手动 DELETE 的 ABAP 开发。这篇笔记不讲教科书定义,只讲我实际配置 SARA 时怎么选归档对象、怎么写变式、怎么避免归档完数据还在的翻车现场。

2. SARA 归档对象与前置条件:先搞清楚你到底在归档什么

2.1 归档对象不是数据库表,别把 SD_VBAK 当成一张表来理解

刚接触 SARA 的人最容易犯的错,是以为归档对象就是数据库表名。实际上归档对象(Archiving Object)是 SAP 定义的一个逻辑单元,它描述了一组业务上关联的表,以及这些表之间的依赖关系、归档顺序和删除顺序。比如 SD_VBAK 这个归档对象,它背后关联的不只是 VBAK 一张表,还包括 VBAP、VBUK、VBUP 等多张表,归档时会按预定义的层级关系把整套销售订单数据打包。

你在 SARA 初始界面输入归档对象后,点“数据库表”按钮,就能看到这个对象到底涉及哪些表、哪些是主表、哪些是从表。这一步非常关键,因为如果你只归档了主表数据,从表数据还留着,就会出现“订单头没了、行项目还在”的脏数据,后续报表逻辑直接崩掉。

常见做法是:先在生产系统的开发客户端用 SARA 查看归档对象的技术信息,确认它覆盖的表清单,再对照你实际的业务需求,判断是全量归档还是按条件归档。不要一上来就在生产系统跑,先用测试系统验证。

2.2 归档前必须确认的三件事:表空间、存储介质、权限

归档不是点一下按钮就完事,它需要把数据从数据库抽出来写到外部存储,再从数据库删除。这个过程涉及三个硬性前提。

第一是表空间。归档作业在运行时会在数据库里创建临时表或中间表,如果表空间已经 95% 以上,归档作业很可能因为无法扩展而中断。我一般会在归档前用 DB02 检查一下目标表所在表空间的剩余空间,至少留出待归档数据量 1.5 倍的余量。

第二是存储介质。SAP 归档支持多种存储方式,常见的有文件系统、磁带、Content Repository(内容仓库)。文件系统最简单,配一个归档路径就行;Content Repository 适合集中管理,但需要额外配置。如果你只是做测试,用文件系统最快。

第三是权限。执行 SARA 需要 S_ARCHIVE 和 S_DB 相关权限,删除作业还需要 S_DELETE 权限。很多新手在测试系统能跑通,到生产系统就报权限错误,就是因为生产系统的权限管控更严。

" 检查归档对象关联表的清单(在 SE16 中查看 ARCH_OBJ 表) " 或者直接在 SARA 中点击“数据库表”按钮 " 以下为检查表空间的常用方式:DB02 -> Space -> Tablespaces

上面这段不是代码,而是操作路径。SARA 本身不写代码,它的配置都在事务码里完成。但如果你想批量检查多个归档对象的表清单,可以用 SE16 查 ARCH_OBJ 和 ARCH_OBJ_T 表,前者存归档对象定义,后者存描述。

2.3 归档变式:决定哪些数据被归档的核心参数

变式(Variant)是 SARA 里最容易被忽视、也最容易出问题的部分。它决定了归档作业到底处理哪些数据。比如你要归档 2020 年之前的销售订单,变式里就要设置日期范围、订单类型、组织单元等筛选条件。

创建变式的路径是:SARA -> 输入归档对象 -> 点击“变式”按钮 -> 新建。在变式维护界面,你会看到很多选择字段,这些字段对应归档对象预定义的筛选参数。不同归档对象的变式字段差异很大,SD_VBAK 有订单日期、销售组织、分销渠道等,FI_DOCUMNT 有公司代码、会计年度、过账日期等。

我一般会先创建一个“预演变式”,只设置条件不勾选“删除”,跑一次归档作业,看它到底会处理多少条数据。确认数量合理后,再复制这个变式,勾选删除选项,用于正式归档。这个习惯救过我很多次,因为有时候变式条件写错,比如日期范围写反了,预演就能发现。

提示:变式里的“测试运行”选项不会真正删除数据,但会生成详细的日志,告诉你哪些数据会被归档。正式跑之前一定要先测试运行。

3. 从配置到执行:SARA 归档作业的完整落地步骤

3.1 配置归档路径:文件系统方式的最小配置

如果你选择文件系统作为归档存储,需要先在 SAP 里配置归档路径。路径是:SARA -> 菜单“转到” -> “定制” -> “技术设置” -> “归档路径”。或者直接用事务码 FILE 查看逻辑路径,用 AL11 查看物理路径。

配置步骤大致如下:先创建一个逻辑文件路径,比如 ARCHIVE_GLOBAL,指向操作系统层面的一个目录,比如 /usr/sap/archive。然后在归档对象的技术设置里,把这个逻辑路径分配给归档对象。这样归档作业运行时,就会把数据文件写到这个目录下。

# 在操作系统层面创建归档目录(以 Linux 为例) mkdir -p /usr/sap/archive chown <sidadm>:sapsys /usr/sap/archive chmod 770 /usr/sap/archive

这段命令的含义是创建目录并设置权限。<sidadm>要替换成你实际的 SAP 系统管理员账号,比如 prdadm。权限 770 表示所有者和同组用户可读写执行,其他用户无权限。这一步不做,归档作业会报“无法打开文件”的错误。

参数说明:归档目录的剩余空间要至少能容纳一次归档作业产生的数据文件。一个中等规模的 SD_VBAK 归档,数据文件可能达到几十 GB。如果你不确定,先跑一个小变式测试。

3.2 创建归档作业:用 SARA 调度后台作业

配置好路径和变式后,就可以创建归档作业了。在 SARA 初始界面,输入归档对象,点击“归档”按钮,选择你创建的变式,然后点击“执行”或“后台执行”。

如果是后台执行,系统会弹出一个作业调度界面,让你设置作业名称、执行时间、执行周期。我一般会设置成立即执行,先跑一次看结果。作业提交后,用 SM37 查看作业状态,用 SARA 的“归档日志”按钮查看详细日志。

归档作业的执行过程分为几个阶段:读取数据、写入归档文件、验证归档文件、删除数据库记录。每个阶段都会在日志里记录处理条数和耗时。如果某个阶段失败,日志里会有具体的错误消息。

" 查看归档作业日志的另一种方式:事务码 SARA -> 归档日志 " 或者用 SM37 查看作业日志,作业名称通常以 ARCH 开头 " 日志中关键信息:已处理条数、已写入条数、已删除条数、错误消息

这里要强调一点:归档作业不是一步完成的。它先写归档文件,再删除数据库记录。如果写入成功但删除失败,数据还在数据库里,但归档文件已经生成了。这种情况下重新跑归档作业,可能会因为数据已经归档过而跳过,导致数据库里的数据永远删不掉。这就是典型的“归档翻车”场景。

3.3 归档后的数据删除:为什么数据还在数据库里

很多人跑完归档作业,发现数据库表里的数据条数没变,就以为归档失败了。其实不是。归档作业默认只写归档文件,不删除数据库记录。要删除数据库记录,需要单独执行删除作业。

删除作业的路径是:SARA -> 输入归档对象 -> 点击“删除”按钮 -> 选择归档文件或归档会话 -> 执行。删除作业会读取之前生成的归档文件,验证数据完整性,然后从数据库里删除对应记录。

这里有个关键参数:删除作业的“测试运行”选项。如果勾选,它只模拟删除,不真正删数据。我一般会先跑一次测试运行,确认要删除的条数和预期一致,再取消勾选正式删除。

注意:删除作业一旦执行,数据就从数据库里消失了。虽然归档文件还在,但恢复数据需要走归档回读流程,比较麻烦。所以正式删除前一定要确认归档文件已经成功写入并且可读。

3.4 归档会话管理:用 SARA 查看和管理归档文件

每次归档作业执行后,都会生成一个归档会话(Archive Session)。你可以在 SARA 里点击“归档会话”按钮,查看所有已生成的会话。每个会话包含一个或多个归档文件,以及对应的数据对象清单。

归档会话的管理包括:查看会话详情、检查文件完整性、标记会话为“已删除”、重新加载数据等。如果某个归档文件损坏,你可以用“检查”功能验证文件完整性。如果发现文件有问题,需要重新归档。

" 归档会话相关表:ARCH_SESS 存会话头信息,ARCH_FILES 存文件信息 " 用 SE16 查看这些表可以了解归档会话的底层结构 " 但日常操作还是用 SARA 的图形界面更方便

我一般会定期检查归档会话的状态,确保没有“写入成功但未删除”的悬挂会话。这些悬挂会话占着归档文件,但数据库里的数据还在,时间长了容易混淆。

4. SARA 归档避坑指南:那些年我踩过的五个坑

4.1 坑一:归档作业跑完了,数据库表反而更大了

现象:跑完归档作业,用 DB02 一看,表空间没降反升。

原因:归档作业在写入归档文件时,会在数据库里创建临时表或日志表。如果归档作业中断,这些临时表不会被自动清理,反而占用了额外空间。

解决:用 DB02 查看是否有异常增长的临时表,或者用 SM12 检查是否有残留的锁对象。清理临时表需要 DBA 介入,一般用数据库层面的命令删除。预防措施是归档前确保表空间充足,归档后检查作业日志是否有中断。

4.2 坑二:变式条件写错,归档了不该归档的数据

现象:归档完成后,业务用户反馈某些近期订单查不到了。

原因:变式里的日期范围写反了,比如把“从 2020 到 2018”写成了“从 2018 到 2020”,导致近期数据被归档。

解决:从归档文件回读数据,重新加载到数据库。回读路径是 SARA -> 归档对象 -> “回读”按钮。但回读不是万能的,如果归档文件已经标记为删除,回读会失败。所以变式创建后一定要先测试运行,确认数据范围。

4.3 坑三:归档文件写到了本地磁盘,结果磁盘满了

现象:归档作业执行到一半报错“磁盘空间不足”,作业中断。

原因:归档路径指向了本地磁盘,而本地磁盘剩余空间不足。或者归档文件没有设置自动清理策略,历史文件越积越多。

解决:把归档路径改到有足够空间的存储上,或者配置归档文件的自动清理。SAP 本身不提供自动清理功能,需要写脚本定期清理旧文件。我一般会保留最近三个月的归档文件,更早的备份到其他存储后删除。

4.4 坑四:删除作业跑完,数据还在,因为归档文件读不到

现象:删除作业执行成功,但数据库表里的数据条数没变。

原因:删除作业需要读取归档文件来验证数据,如果归档文件被移动、删除或权限变更,删除作业会跳过这些数据,导致数据库记录删不掉。

解决:检查归档文件的物理路径和权限,确保 SAP 系统账号能读取。用 SARA 的“检查”功能验证文件完整性。如果文件确实丢失,只能重新归档。

4.5 坑五:归档作业锁表,导致业务卡顿

现象:归档作业运行时,业务用户反馈某些事务码响应变慢或报锁错误。

原因:归档作业在读取和删除数据时,会对相关表加锁。如果归档的数据量很大,锁持有时间会很长,影响在线业务。

解决:把归档作业安排在业务低峰期执行,比如夜间或周末。如果数据量特别大,可以分批次归档,每次处理一个时间段的数据。另外,归档作业的“并发作业数”参数可以调整,但不要设太高,否则锁竞争更严重。

5. 进阶技巧:用 SARA 的预检查与后验证把归档做成例行公事

5.1 预检查:归档前用 SARA 的“分析”功能评估影响

SARA 提供了一个“分析”按钮,可以在归档前评估归档对象的数据量、表大小、依赖关系。我一般会在正式归档前跑一次分析,看看待归档的数据量是否在预期范围内,以及是否有异常大的表需要特别处理。

分析结果会显示每个相关表的记录数和占用空间。如果某个表的记录数远超预期,可能是变式条件写得太宽,或者这个表本身就有大量历史数据需要单独处理。

5.2 后验证:归档后用 SARA 的“日志”和“统计”确认结果

归档作业执行后,用 SARA 的“日志”按钮查看详细日志,确认每个阶段都成功完成。然后用“统计”按钮查看归档对象的历史归档记录,包括每次归档的条数、时间、变式名称。

我一般会把这些统计信息导出到 Excel,按月对比。如果某个月的归档条数突然下降,可能是变式条件变了,或者数据源本身出了问题。这种趋势分析能帮你提前发现异常。

5.3 把归档做成例行公事:调度周期性归档作业

如果你负责的系统需要定期归档,比如每月归档一次 FI 凭证,可以把归档作业和删除作业都设置成周期性调度。路径是:SM37 -> 新建作业 -> 设置周期 -> 选择归档程序。

周期性归档的关键是变式要动态化。比如日期范围不能写死,要用“当前日期减 N 个月”这样的动态变量。SAP 的变式支持动态日期计算,具体是在变式维护界面用“动态日期计算”按钮设置。

" 动态日期计算示例:归档 6 个月前的数据 " 在变式维护界面,选择日期字段 -> 点击“动态日期计算” " 设置:当前日期 - 6 个月,作为起始日期 " 结束日期留空或设置为当前日期 - 1 天

这样每个月跑归档作业时,变式会自动计算日期范围,不需要手动修改。我一般会把归档作业设置在每月 1 号凌晨执行,删除作业设置在归档作业完成后 2 小时执行,确保归档文件写入成功后再删除数据。

5.4 归档不是终点:数据生命周期管理的全局视角

SARA 只是 SAP 数据生命周期管理的一个环节。完整的生命周期包括:数据创建、在线使用、归档、存储、销毁。归档之后,数据还在归档文件里,需要定期检查文件完整性、备份归档文件、在合规要求下销毁过期数据。

我一般会建议团队建立一个归档台账,记录每次归档的对象、变式、条数、文件路径、存储位置、保留期限。这个台账不需要多复杂,一个 Excel 就够了。关键是让后来的人知道数据在哪、怎么恢复。

希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询