资讯动态

SAP数据归档SARA实战:从配置到避坑,解决数据库膨胀与性能下降

发布时间:2026/10/9 17:32:53 来源:尧图企业网站定制
简介这份资源聚焦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 就够了。关键是让后来的人知道数据在哪、怎么恢复。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑