Backup und Recovery sehr großer Datenbanken Persönlicher Hintergrund • Consultant bei Ingres und anschließend ASK/Ingres • Seit 1992 freiberuflicher Berater im Umfeld Ingres – – – – Performanceanalyse und Tuning Remote DBA, DBA auf Zeit Inhousetraining Analyse/Begleitung/Durchführung von Projekten • Kontakt: [email protected] Übersicht • Installation • Mögliche Arten der Datenbanksicherung – Vor-/Nachteile • Darstellung der gewählten Möglichkeit • Recovery der DB Installation • Bestehende Installation – Rechner Intel basiert 4 CPU – Platten HP EVA SAN System (17 TB) – BS: RedHat Linux – Datenbank ca. 5 TB (23 Datalokationen) Sicherungsarten • Sicherung mit BS Mitteln • Sicherung mit Plattenspiegeln • Sicherung mit Ingres Mitteln – Unload DB – Checkpoint DB / Tabelle(n) • Online • Offline Checkpoint von Tabellen • Möglichkeit Tabellen online zu sichern • Recovery nur auf einem bestehenden Datenbank Checkpoint • Alle DDL Befehle machen ckp invalid (danach sofort wieder neuen Tabellen Ckp) Genereller Ablauf Lesen 5TB DB DBMS /BS Schreiben 600 GB ckp Schreiben Schreiben Schreiben dmp jnl log Performanceabschätzung • Maximaler IO Durchsatz: 80 - 100 MB/sec Ca 350 GB / Stunde • 5TB lesen ca 14 Stunden • CKP schreiben ca 2 Stunden Online Checkpoint Ablauf • • • • • Sperre die Datenbank Setze einen Controll Lock Schreibe SBACKUP log record Veranlasse einen Consistency Point Erlaube Datenbankzugriff (außer DDL) Online Checkpoint Ablauf • Führe aus dem Checkpoint Template File aus: – für alle Lokationen Begin (B) – je Lokation Prework (P) und Work (W) – für alle Lokationen End (E) • 7. Schreibe EBACKUP Log Record • 8. Update Konfigurationsfile • 9. Gebe Datenbank frei (auch DDL) Checkpoint Template File • $II_SYSTEM/ingres/files/cktmpl.def • II_CKTMPL_FILE=<filename> • Aufbau: <4 Buchstaben> Befehl – Begin Pre-work Work End Initialize Finish – Save Restore Journal Delete Check – dUmp – Disk Tape Every – Database Table AllDB Raw Every Checkpoint Template File • Checkpoint Parameter – – – – – – – – – %A %B %C %D %E %F %G %H u.a. Pfad für gesicherten File Tabellen Filename (ohne Pfad) Checkpoint Pfad Pfadname der Datenlokation Pfad für Datenfile (Tabelle) Filename ckp File (ohne Pfad) Anzahl der Datenfiles Anzahl der Datenfiles in der Lokation Checkpoint Template File • Gültige Kombinationen Checkpoint – B S [T,D,E] [T,D,E] – P S [T,D,E] [T,D,E] – W S [T,D,E] [T,D,E] – E S [T,D,E] [T,D,E] Realisation Schritt1 • Eigenes Skript, welches Sicherung mehrer DB Files parallel durchführt + Sicherung erfolgt parallel - Sicherung erfolgt je Lokation nacheinander -> Zeitbedarf ca 35 – 40 Stunden Ckp mit Option #cn • Workingsektion des Template Files wird je n Lokationen parallel ausgeführt + Sicherung erfolgt parallel - Je Lokation ein Sicherungsthread - Nach je n Lokationen Synchronisierung der Threads Realisation • Sicherung wöchentlich Samstag • Eigenes Skript, welches Sicherung parallel durchführt – WSDD: /bin/echo %D %C %F >> /users/ingres/source/ckp/work/ckp_files_todo – ESDD: /users/ingres/source/ckp/par_ckp -> Zeitbedarf ca 18 - 20 Stunden Verbesserungspotential • Verbunden mit DB Design Änderung und Änderung der Applikation – Trennung von Historien- und Produktivdaten • Verbunden mit Hard/Softwareinvestitionen – Plattenspiegelung -> BS Upgrade -> Platten für 3. Spiegel – Schnellerer I/O -> CPU Upgrade / Plattenupgrade Recovery • Selbstgeschriebenes Programm WRDD: /users/ingres/source/ckp/par_rollfwd %D %C %F • Zeitbedarf: je nach Tag des Fehlers Fragen ?