Data Archiving @ SAP Axel Herbst Performance, Data Management & Scalability SAP AG The Life Cycle of SAP Data DATABASE FILE SYSTEM STORAGE SYSTEM t Residence time Business complete Data access Audits Deletion Non changeable Importance Creation SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 2 t Legal Compliance - Record Retention Periods 2 years after commercial release - Records relating to the manufacturing, processing, packing of food Pharmac./ Life Sci. (21 CFR Part 11) 3 years after distribution - Records relating to the manufacturing, processing, packing of drugs and pharmaceuticals 5 years after end of manufacturing or product - Records relating to the manufacturing of biological products 5 years - All hospitals must retain records in originally or legally produced form Healthcare (HIPAA) 21 years+ (perhaps for life) - Medical records for minors from birth to 21 2 years after patient’s death - Medical records 3 years - Financial statements Financial Services (SEC 17a-4) End-of-life of enterprise - Member registration for broker/dealers End of account +6 years - Trading account records 30 years after completion of audit - Employee and medical records of individuals exposed to toxic substances OSHA Sarbanes Oxley 4 years after completion - Original correspondences from financial audits or publicly-traded corporations 0 1 2 3 4 5 10 15 20 Minimum Retention Period on Compliant Media (Years) Source: Enterprise Storage Group, May 2003 SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 3 Architecture of an ABAP-Based SAP Component SAP GUI Web Server Front End Application (e.g. Word) SAP GUI SAP GUI SAP GUI Dispatcher Gateway Shared Memory and Buffers SAP GUI SAP GUI Dispatcher DIA WP BTC WP SPO WP DBWP DBWP DBWP Shared Memory and Buffers DBMS Database SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 4 SAP GUI DIA WP DBWP Gateway ENQ WP Enqueue Table Size of Database Survey Results from the American SAP User Group ASUG (Archiving Track) 1999 2002 12 10 7 8 7 5 5 8 6 5 4 2 1 0 < 300 GB 300-500 500-700 700-999 1.0-1.5 GB SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 5 GB GB TB 1 >1.5 TB Today's requirements to RDBMS in SAP Systems Requirements concerning business objects Several TB net data in RDBMS Size of a business object between some KB and some 100 MB Typically at least 3 search criteria Business partner Material/product/service/... Date Need to access business objects for several (even 10+) years Requirements concerning OLTP 1000 database transactions per second 50 MB/s write access to database files Database transactions change hundreds of tables (dozens of business objects) Recovery in less than 15 minutes 7*24 hours (2 hours planned down time a month) SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 6 System Availability - Downtime Costs Per Hour Downtime Losses by Application Financial/Trading Typical Loss Per Hour of Unplanned Downtime (US$) $2,400,000 Supply Chain $600,000 ERP $600,000 CRM $480,000 E-Commerce $480,000 E-Business $480,000 Business Application $300,000 Database $300,000 Messaging $60,000 Infrastructure $42,000 Source: Storage Magazine SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 7 Use of Resources - Storage Savings Archiving Data Records 10 GB Mirrors 20 GB Compression to 20 % 2 GB 2 GB Backup to Tape Total savings in this scenario: 97.5% SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 8 System Copies 80 GB Long-Term Issues Costs Efficient archive format: compact, indexable Inexpensive storage system/media Easy administration (low TCO) Long-term reuse Appropriate search/query capability to find archived data Readability of archive Replaceable/maintainable/migrateable hardware and software components Interpretability (self-contained and self-describing format, schema) Application connectivity (open interface/protocol) Application integration Enough semantics/context for future use Archival of referenced documents Security Write once guarantee (-> for legal, tax and audit reasons) Authorization, authentication, nonrepudiation, privacy, encryption Operating (archiving in production environment) Mass data transfer from DB to archive Automation, Monitoring, ... SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 9 Zusammenfassung: Datenarchivierung – Warum? Kontrolliertes Wachstum der Datenbank Kosteneinsparungen geringere Hardwarekosten geringere Verwaltungskosten DB-Platz Bessere Performance schnelleres Sichern und Wiederherstellen schnelleres Erstellen der CBO-Statistiken schnellere Release-Wechsel Kürzere Antwortzeiten für Endbenutzer bei Geschäftsvorfällen mit in DB verbleibenden Daten Langfristige Speicherung von Daten in “nutzbarer” Form … wegen neuer rechtlicher Anforderungen (GDPdU, SOA) … trotz mehr “Bewegung” in der IT-Landschaft (End-of-life System vs. Data) SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 10 Zeit Application-oriented DB Archiving Architectural classification w.r.t. provider of archiving service DBMS-based Application with archiving functionality DBMS DB SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 11 DBMS-integrated Application DBMS with archiving functionality Archive DB Archive SAP Data Archiving For SAP, only the DBMS-based approach is an option. However, SAP applications use Basis Archiving Functionality. SAP application with archive integration SAP basis archiving functionality („ADK“) DBMS independence (DB2/..., Informix, MS SQL Server, Oracle, MaxDB) Availability: DBMS-integrated approach only in DB2/390 RAM Even „Standard“ SQL needs to be unified (SAP „Open SQL“) Tertiary storage integration Needs to be vendor-independent as well: dedicated archiving/CM systems connected via certified interface to store archive files DBMS Application „awareness“ of archiving DB SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 12 Archive DB schema hardly contains application semantics (almost no integrity constraints on DB level, business context for archive access, ...) Datenarchivierung aus SAP-Kundensicht Auswertungen/Zugriff archivierte Daten lesen Datenbank Datenobjekte Anwendungsdaten in Archivdateien schreiben in Datenbank löschen SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 13 Archivdateien Anwendungsbezug durch Archivierungsobjekte Archivierungsobjekt Struktur: Definition der logisch (aus betriebswirtschaftlicher Sicht) zusammenhängenden, gemeinsam zu archivierenden Daten – einschl. Kontext = “Schema” (allerdings nicht Archivschema) Verhalten: Programme, Anwendungsspezifische Prüfungen Technische Einstellungen für COfür FI-Belege Belege Customizing Archivierungsobjekt Programme SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 14 Daten Programme eines Archivierungsobjekts … sichtbar als Aktionen für den DA-Administrator SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 15 Kernfunktionen in Archivierungsprogrammen I Schreibprogramm Berechtigungsprüfungen Einlesen des anwendungsspezifischen Customizings Lesen von der Datenbank: SELECTs aus allen beteiligten Tabellen/Views Archivierbarkeitsprüfung Erzeugen eines neuen Archivierungslaufs Aufbau komplexer (Daten-)Objekte aus gelesenen Sätzen Sichern der Datenobjekte in Archivdatei Ausgabe eines Protokolls Abschluß des Archivierungslaufs ggf. Anstoßen einer Folgeaktion (Löschen oder Ablegen) SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 16 Beispiel für Archivierbarkeitsprüfungen Abhängigkeiten im Belegfluß ... Verkaufsbeleg Lieferung Faktura SD_VBAK RV_LIKP SD_VBRK Berücksichtigung der Residenzzeit Zeit Verkaufsbeleg Erfassungsdatum Beginn 1 Residenzzeit SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 17 Änderungsdatum Beginn 2 Archivierung Erreicht ... Kernfunktionen in Archivierungsprogrammen II Löschprogramm Berechtigungsprüfungen Einlesen des technischen objektspezifischen Customizings (z.B. Transaktionsgrenzen) An die aktuelle Plattform und das aktuelle Release (DB-Schema!) angepaßte Lesen der Datenobjekte aus der Archivdatei Löschen der korrespondierenden Daten(sätze) in der Datenbank (SAP Business Information Warehouse: DROP PARTITION) Ausgabe eines Protokolls Abschlußarbeiten ggf. Anstoßen einer Folgeaktion (Ablegen oder Nachlauf) SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 18 Archivzugriff Sichtbarkeit von archivierten Daten eigenständiges Archiv integriertes Archiv … je nach SAP-Anwendung! Bewußte Unterscheidung DB <-> Archiv oder uniformer Zugriff bei Anzeige aus Anwendungstransaktion heraus Generische Tools Archivinformationssystem Document Relationship Browser SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 19 Das Archive Development Kit – ADK ADK = Generische Entwicklungs- und Laufzeitumgebung für ABAPArchivierungsprogramme Von SAP für alle Archivierungsobjekte eingesetzt Schreiben, Löschen, Lesen, Zurückladen, Umsetzen vom Archivinformationssystem benutzt Für Kunden zur Entwicklung eigener Archivierungsobjekte freigegeben ADK-Komponenten Laufzeitsystem Kapselung von anwendungsunabhängigen Basisfunktionen, vor allem in „Richtung Archiv“ Repository Verwaltungs- und Metadaten Administration Benutzerschnittstelle für DA-Administrator SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 20 ADK als Laufzeitumgebung SAP-System Archivadministration Dateisystem ADKLaufzeitsystem Archivierungsprogramme • Datenobjektdienste AS Anwendungsdaten • Konvertierungen • Dateiverwaltung • Statusverwaltung • Klassenaufrufe • Statistikmodul • CMS-Anbindung • AS-Aufrufe • Monitoring • Jobsteuerung Verwaltungsund Metadaten SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 21 ArchiveLink/ Content Mgmt.Service HSMSystem Ablagesystem DAMonitor Datenbank Archivdateien Hintergrundverarbeitung Datenfluß (beim Schreiben) Steuerfluß Temporäre Konvertierungen bei lesenden Zugriffen Plattformanpassung Dateipfad entsprechend aktuellem Betriebssystem Zeichensatz (Codepage) und Zahlenformat für ADK-Format-Metadaten (Header, Tags) für zeichenartige und numerische Anwendungsdaten Erfordert „Bootstrapping“ beim Header-Lesen Strukturanpassung -> Umgehen mit Schemaevolution Schema in Archivdatei wird mit aktuellem Schema (aus DDIC) verglichen Bei namensgleichen Strukturen (Tabellen) Namensgleiche Felder müssen zuweisungskompatibel sein Initialwert bei noch nicht zum Archivierungszeitpunkt vorhandenen Feldern Ausblenden nicht mehr vorhandener Felder SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 22 Transaktionsaspekte Konsistenz Datenbank <-> Dateisystem Physische Datei erst dann logisch sichtbar, wenn „fclose“ okay; d.h. vom Schreibprogramm übergebene Datenobjekte nicht logisch synchron archiviert „orphan files“ unkritisch Konsistenz Datenbank-Löschen <-> Archiv-Schreiben Pragmatische effektive Lösung durch 2-Phasigkeit Ausschluß von Änderungen durch Anwendung zwischen Schreib- und Löschphase Read-only-Zugriff und Archivierbarkeit über Status gewährleisten oder unkritische Änderungen zulassen oder Anwendungssperren verwalten SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 23 Repräsentation der Phasen in der Archivverwaltung Write Phase Delete Phase File 1 Delete Phase File 2 SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 24 Auswahl eines geeigneten Archivierungsobjekts SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 25 Auswertung von DA-Statistiken SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 26 Database Page Concepts Overhead Area Data Rows Additional Session Extends to Minimum Level Data Removed During Archiving Session Free Space Reserved for Update Extension SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 27 Fragmentation Overhead Area Free Space Reserved for Update Extension SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 28 Index Fragmentation Index 1 After Delete Processes 2 Effect: Index range scans: ... ... More index leaf blocks read More tree levels 3 4 -> Index Reorganization/Rebuild! ... ... ... Table SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 29 ... ... ... Customer Example Starting point Approx. 290GB DB size and approx. 15GB DB growth per month Aim Reduction of DB growth rate to: Reduce hardware costs Maintain stable system performance Response times and system administration Faster implementation of support packages and upgrade projects Local currency conversion Archiving 19 archiving objects from FI, CO, MM, SD, and HR Result (after 15 months) > 200GB archived SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 30 Customer Example 700.00 Expected size without Archiving 600.00 Allocated DB size 500.00 400.00 Allocated DB content 300.00 'Without' Archiving 200.00 100.00 Initial Archiving With regular archiving DB growth: Reduction: ~15GB/month ~60GB DB growth: ~7GB/month SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 31 Sep Aug Jul Jun May Apr Mar Feb Jan Dec Nov Oct Sep Aug Jul Jun May Feb Mar 0.00 ADK-Based Data Archiving ... proved to be a valued concept and implementation for ABAP-based SAP components. And will continue to do so. However, let‘s review the long-term issues ... and discuss the pros & cons of new ideas. SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 32 Drivers for XML-Based Archiving Standards for long-term use of archived objects XML http(s) WebDAV Java J2EE Archive access Independent of “home“ system Potentially cross-system For Java applications as well Central archiving service Reduced redundancy in distributed scenarios Central administration SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 33 XML-Based Archiving – A Service Approach App. System Database mySAP X mySAP X XML DAS Connector XML DAS Connector XML XML Archive Browser XML Services Services Database Services XML Data Archiving Service (XML DAS) Services Open and inexpensive storage system Business data archive SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 34 ADK- vs. XML Archiving Local Archive Admin. ADK Archiving Programs Local Archive Admin. XML Archiving Programs ADK XML Archive API XML DAS Connector SAP Web AS SAP Web AS HTTP XML Data Archiving Service (XML DAS) XML DAS Administration SAP J2EE Engine ArchiveLink File system ArchiveLink Storage system File SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 35 Document WebDAV File system Storage system File Resource WebDAV-Like Archive Hierarchy Collection System ID x / b4t •Archive path •Name /b4t/ 000 Client x XML archiving object y Resource • Archive path • Name /b4t/000/ bc_sbook_x URI = Archive path + Name /b4t/000/bc_sbook_x/ 2003 Archive Store XSD /b4t/000/bs_sbook_x/2003/ order_schema.xsd XML /b4t/000/bs_sbook_x/2003/ order_4711.xml XML /b4t/000/bs_sbook_x/2003/ order_4712.xml XML XML Arch. Store1 Arch. Store2 Arch. Store3 SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 36 Properties of Resources WebDAV concept for attributing and finding resources XML OrderNumber: OrderDate: ShipTo: 4711 2005/01/10 Eppingen-Rohrbach A set of properties can be defined independently of resources. Such a property set is called property index. The property index is used to attach property values to a resource either when a resource is archived or later on. Properties are typed: VARCHAR(n) … Properties are used in value-based queries SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 37 Storage System Support Application layer service interface: WebDAV-like HTTP methods XML document/stream MKCOL PUT URI Resources (XML doc 1) resources (XML doc n) Global service layer internal storage abstraction WebDAV client File system I/O Storage system protocols WebDAV URL Storage layer SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 38 Collection Phys path Directory Resource File Open Archive File Format A wrapper format ensuring… Efficiency (many data objects, byte-addressable for random access) Long-term interpretability (XML schema, XML, easy to construct) Header Prefix Offset 1 Compressed Resource 1 Prefix Offset 2 Compressed Resource 2 ... Prefix Offset n Compressed Resource n SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 39 Standard Decompression XML resource XML DAS Functionality Beyond WebDAV Write once, resources cannot be modified Insertion of resources into collections can be disabled Deletions possible (occurs with logging) Identification of resources Via unique URI Long-term and stable Archive queries Hierarchical search (using the path) Value-based search (with property indexes) Future: Content search using other engines No WebDAV spec ambiguities No case sensitivity anywhere Within one collection, resources and collections cannot have same name More status codes SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 40 XML DAS Functionality Beyond WebDAV XML awareness TYPE = { XML | XSD | XSL | BIN | COL | RES | ALL | ... } Check XML for well-formedness, and validity against schema Keep meta data (XSD, XSL) “close“ to business data Automatic naming Unique name for a resource within a collection Integration of different storage systems Independent of the logical XML DAS hierarchy Supports data life cycle management Archiving application integration For example, support of safe delete from DB, even in one phase Security Authorization, Pack resources Optional Asynchronous SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 41 HTTPS, check sum ABAP XML Archiving Object BC_SBOOK_X Transaction SARA also used in XML-based archiving SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 42 JAVA Archiving: A System Deployment Scenario SAP J2EE Engine Java Application Archiving programs run here 1 …n instances XML DAS Connector for JAVA SAP J2EE Engine XML Data Archiving Service SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 43 Java Archiving: GUI Prototype SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 44 Positioning ADK and XML ADK: primarily for reducing size of database; reliable, stable, secure; for ABAP only XML: advantages when end-of-life of data longer than end-of-life of system and in multi system environments; for Java as well Striking Differences for Users Storage in the form of resources in standardized XML format instead of ADK files Archived resources can be read by your tool Easier interpretation in the long term Compression optional through pack function Application-specific searches with help of property indexes Direct archiving, no separate store phase (WebDAV or file system) Schedule as many delete jobs as reasonable SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 45 About SAP Data Archiving Focus SAP R/3 Enterprise Further components SAP BW SAP CRM Detailled information about Technology and administration (ADK) Data storage and data access Implementation of archiving projects Authors Archiving experts at SAP (also mal nicht Küspert, Schaarschmidt, Zeller, Langguth ;-) http://service.sap.com/data-archiving SAP AG 2005, UniJena05.ppt, A. Herbst, 10 Jan 05 / 46