Oracle Database/Datensicherung: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Backup - Überblick == Zweck: Ermöglichen der Wiederherstellung einer Datenbank nach einem Media-Fehler Unterscheidung nach: * Logische und physische Backup...“) |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 56: | Zeile 56: | ||
* ALTER TABLESPACE ... END BACKUP | * ALTER TABLESPACE ... END BACKUP | ||
== Recovery | == Oracle Recovery Manager / RMAN == | ||
Der <b>Oracle Recovery Manager / RMAN</b> ist ein Werkzeug zur Vereinfachung der Datensicherungs- und Wiederherstellungsaufgaben. | Der <b>Oracle Recovery Manager / RMAN</b> ist ein Werkzeug zur Vereinfachung der Datensicherungs- und Wiederherstellungsaufgaben. | ||
* | * Aufruf von der Befehlszeile oder über eine grafische Oberfläche (nur im Oracle Managmenet Server verfügbar). | ||
* Speichert Daten in | * Speichert Daten in proprietärem Oracle-Format. | ||
Vorteile | Vorteile | ||
* Protokolliert alle | * Protokolliert alle Datensicherungs- und Wiederherstellungs-Operationen | ||
* Ermöglicht die automatisierte Ausführung von | * Ermöglicht die automatisierte Ausführung von Datensicherungen | ||
* Kann defekte Blöcke identifizieren | * Kann defekte Blöcke identifizieren | ||
* RMAN-Skripte sind betriebssystemunabhängig und können somit portiert werden | * RMAN-Skripte sind betriebssystemunabhängig und können somit portiert werden | ||
Zeile 79: | Zeile 79: | ||
=== RMAN-Sitzung starten === | === RMAN-Sitzung starten === | ||
RMAN-Sitzung starten: | |||
$ <b>rman target system/passwort@orcl</b> | $ <b>rman target system/passwort@orcl</b> | ||
Recovery Manager: Release 10.2.0.1.0 - Production on Fr Jun 25 09:32:35 2010 | |||
Copyright (c) 1982, 2005, Oracle. All rights reserved. | |||
Mit Ziel-Datenbank verbunden: LUNAR61 (DBID=117900773) | |||
RMAN> | |||
Befehle wie startup, shutdown usw. sind hier möglich. | |||
Vollständige kalte Sicherung mit RMAN. Dazu darf die Datenbank nicht vollständig heruntergefahren sein (Zustand muss MOUNT sein). | |||
Beispiel für Job-Befehl | RMAN> <b>shutdown immediate;</b> | ||
Kontrolldatei der Zieldatenbank wird anstelle des Recovery-Katalogs verwendet | |||
Datenbank geschlossen | |||
Datenbank nicht angeschlossen | |||
Oracle-Instance heruntergefahren | |||
RMAN> <b>startup mount;</b> | |||
RMAN> <b>backup database;</b> | |||
Die Sicherung wird ins Verzeichnis ...flash_recovery_area geschrieben. | |||
Beispiel für Job-Befehl: | |||
RUN{ | RUN{ | ||
ALLOCATE CHANNEL c1 TYPE DISK; | ALLOCATE CHANNEL c1 TYPE DISK; | ||
BACKUP | BACKUP | ||
FORMAT ' | FORMAT 'd:\prog\oracle\oradataßora01\backup_1.dbf' | ||
(TABLESPACE userdata); | (TABLESPACE userdata);} | ||
Sichern des Tablespace "users" ins vorhandene Verzeichnis "c:\backup-heiss". | |||
RMAN <b>backup format 'd:\backup-heiss\users%t.bkp' (tablespace users);</b> | |||
=== RMAN-Backups === | === RMAN-Backups === | ||
Zeile 137: | Zeile 159: | ||
* RECOVER DATABASE | * RECOVER DATABASE | ||
* ALTER DATABASE OPEN | * ALTER DATABASE OPEN | ||
Beispiel: | |||
insert into kunde values (...); | |||
commit; | |||
select current_scn from v$database; | |||
insert into kunde values (...); | |||
commit; | |||
Als Skript auszuführen: | |||
RMAN> <b>shutdown immediate;</b> | |||
RMAN> <b>startup mount;</b> | |||
RMAN> <b>run{</b> | |||
2> <b>set until scn 828232;</b> | |||
3> <b>restore database;</b> | |||
4> <b>recover database;</b> | |||
5> <b>alter database open resetlogs;</b> | |||
6> <b>}</b> | |||
=== Unvollständige Wiederherstellung mit RMAN === | === Unvollständige Wiederherstellung mit RMAN === | ||
Zeile 249: | Zeile 290: | ||
{{cat|Oracle}} | {{cat|Datensicherung}} | ||
{{cat|Oracle Database}} | |||
{{cat|UNFERTIG}} | {{cat|UNFERTIG}} |
Aktuelle Version vom 13. Februar 2021, 20:52 Uhr
Backup - Überblick
Zweck: Ermöglichen der Wiederherstellung einer Datenbank nach einem Media-Fehler
Unterscheidung nach:
- Logische und physische Backups
- Heisse (online) und kalte (offline) Backups
Logischer Backup - Export
- Logische Kopie von Datenbankobjekten in eine Binärdatei
- Daten werden mit Hilfe von SQL gelesen
- Keine zeitpunktgenaue Wiederherstellung möglich, keine Verwendung archivierter Redo- Log-Dateien
- Struktur und Inhalt der Objekte werden gespeichert
- Daten werden in einer dump-Datei gespeichert
Kalte Backups
- Datenbank wird heruntergefahren, danach werden alle erforderlichen Dateien kopiert
- Benutzer haben keinen Zugang mehr zur Datenbank
- Datenbank muss nicht im ARCHIVELOG-Modus betrieben werden
Heisse Backups
- Werden ausgeführt, wenn die Datenbank geöffnet ist und im ARCHIVELOG-Modus läuft
- Einheit eines Online-Backups ist ein Tablespace
- Heisses Backup wird durch den Befehl "begin backup" eingeleitet und durch "end backup" beendet
Archivlog-Modus konfigurieren
- Instanz herunterfahren
- Datenbank mounten
- Archivlogmodus einstellen (ALTER DATABASE ARCHIVELOG)
- Datenbank öffnen
Vollständiges Datenbank-Backup
- Wird bei geschlossener Datenbank durchgeführt
- Einfache Ausführung
- Kaum Benutzereingriffe notwendig
- Datenbank herunterfahren
- Datendateien und Kontrolldateien mit Betriebssystembefehlen kopieren
- Datenbank hochfahren
Backup bei geöffneter Datenbank
- Hohe Datenverfügbarkeit
- Ausführbar auf Tablespace- und Datendatei-Ebene
- Keine Unterbrechung der Geschäftsabläufe
- Datenbank muß sich im Archivelog-Modus befinden
Backup eines Online-Tablespace ausführen
- ALTER TABLESPACE... BEGIN BACKUP
- Datendateien des Tablespace mit Betriebssystembefehl kopieren
- ALTER TABLESPACE ... END BACKUP
Oracle Recovery Manager / RMAN
Der Oracle Recovery Manager / RMAN ist ein Werkzeug zur Vereinfachung der Datensicherungs- und Wiederherstellungsaufgaben.
- Aufruf von der Befehlszeile oder über eine grafische Oberfläche (nur im Oracle Managmenet Server verfügbar).
- Speichert Daten in proprietärem Oracle-Format.
Vorteile
- Protokolliert alle Datensicherungs- und Wiederherstellungs-Operationen
- Ermöglicht die automatisierte Ausführung von Datensicherungen
- Kann defekte Blöcke identifizieren
- RMAN-Skripte sind betriebssystemunabhängig und können somit portiert werden
Interaktiver Modus
- bei Analysen verwenden
- regelmässige Verwendung vermeiden
Batch-Modus
- für automatisierte Jobs
- Bedienerfehler minimieren
- Log-Datei zum Empfang von Informationen konfigurieren
RMAN-Sitzung starten
RMAN-Sitzung starten:
$ rman target system/passwort@orcl Recovery Manager: Release 10.2.0.1.0 - Production on Fr Jun 25 09:32:35 2010 Copyright (c) 1982, 2005, Oracle. All rights reserved. Mit Ziel-Datenbank verbunden: LUNAR61 (DBID=117900773) RMAN>
Befehle wie startup, shutdown usw. sind hier möglich.
Vollständige kalte Sicherung mit RMAN. Dazu darf die Datenbank nicht vollständig heruntergefahren sein (Zustand muss MOUNT sein).
RMAN> shutdown immediate; Kontrolldatei der Zieldatenbank wird anstelle des Recovery-Katalogs verwendet Datenbank geschlossen Datenbank nicht angeschlossen Oracle-Instance heruntergefahren RMAN> startup mount;
RMAN> backup database;
Die Sicherung wird ins Verzeichnis ...flash_recovery_area geschrieben.
Beispiel für Job-Befehl:
RUN{ ALLOCATE CHANNEL c1 TYPE DISK; BACKUP FORMAT 'd:\prog\oracle\oradataßora01\backup_1.dbf' (TABLESPACE userdata);}
Sichern des Tablespace "users" ins vorhandene Verzeichnis "c:\backup-heiss".
RMAN backup format 'd:\backup-heiss\users%t.bkp' (tablespace users);
RMAN-Backups
- Das Recovery Manager-Backup ist ein serververwaltetes Backup
- Der RMAN führt Backups mit Hilfe von Sitzungen auf einem Oracle-Server durch
- Es können neben der gesamten Datenbank alle Dateien in einem Tablespace, ausgewählte Datendateien, Kontrolldateien oder archivierte Redo Log-Dateien gesichert werden
Backup bei geschlossener Datenbank: die Zieldatenbank muß gemountet sein
Backup bei geöffneter Datenbank: Tablespaces dürfen nicht in den Backup-Modus gesetzt werden
Backup-Piece
- Ein logisches Backup-Set umfasst normalerweise nur ein Backup-Piece
- Ein Backup-Piece ist eine physische Datei, die ein oder mehrere physische Dateien enthalten kann
- Ein Backup-Piece kann Blöcke aus mehreren Datendateien enthalten
Media-Recovery
Das Media Recovery dient der Wiederherstellung verloren gegangener oder beschädigter Dateien und muss ausdrücklich aufgerufen werden.
Funktionsweise:
- Dateien werden von Backups zurückgeschrieben
- zurückgeschriebene Dateien werden anhand archivierter Redo Log-Dateien aktualisiert
Vollständige Wiederherstellung
- Beschädigte oder fehlende Dateien werden von einem Backup zurückgeschrieben
- Falls erforderlich, werden Änderungen aus den archivierten Redo Log-Dateien angewendet
- Mit Hilfe der Undo-Blöcke wird ein Rollback der nicht festgeschriebenen Änderungen durchgeführt
Vollständige Wiederherstellung einer geschlossenen Datenbank im ARCHIVELOG-Modus
- Datenbank herunterfahren
- Datei(en) von Backup zurückschreiben
- Datenbank im Mount-Modus hochfahren
- Wiederherstellung durchführen mit RECOVER DATABASE
- Datenbank öffnen
Vollständige Wiederherstellung mit dem RMAN
RMAN starten und folgende Befehle absetzen:
- STARTUP MOUNT
- RESTORE DATABASE
- RECOVER DATABASE
- ALTER DATABASE OPEN
Beispiel:
insert into kunde values (...); commit; select current_scn from v$database; insert into kunde values (...); commit;
Als Skript auszuführen:
RMAN> shutdown immediate; RMAN> startup mount; RMAN> run{ 2> set until scn 828232; 3> restore database; 4> recover database; 5> alter database open resetlogs; 6> }
Unvollständige Wiederherstellung mit RMAN
- Datenbank mounten
- Datendateien zurückschreiben
- Wiederherstellung der Datenbank unter Verwendung von UNTIL TIME oder UNTIL SCN
- Öffnen der Datenbank unter Verwendung von RESETLOGS
Befehl LIST
Zeigt die Inhalte des RMAN-Repositories an
Beispiele:
LIST BACKUP; LIST EXPIRED BACKUP; LIST BACKUP BY FILE; LIST EXPIRED BACKUP BY FILE; LIST BACKUP OF TABLESPACE USER01; LIST BACKUP OF DATABSE; LIST BACKUP OF TABLESPACE “users“ LIST COPY OF TABLESPACE “users“
Befehl REPORT
- Welche Dateien benötigen ein Backup?
- Welche Backups sind alt und können gelöscht werden?
- Daten werden so angezeigt, wie im Repository vermerkt
Welche Datendateien benötigen ein Backup?
REPORT NEED BACKUP;
Welche Datendateien von USER01 benötigen ein Backup?
REPORT NEED BACKUP DAYS = 30 TABLESPACE USER01;
Welche Backups werden nicht mehr benötigt?
REPORT OBSOLETE;
Welche Backups sind älter als 7 Tage?
REPORT OBSOLETE RECOVERY WINDOW OF 7 DAYS;
Welche Backups sind doppelt redundant?
REPORT OBSOLETE REDUNDANCY = 2
Befehl DELETE
Löscht alle nicht mehr benötigten Datensicherungen.
DELETE OBSOLETE;
Flashback Query
- erlaubt die konsistente Abfrage eines Datenbestandes zu verschiedenen Zeitpunkten
- Before-Images werden im UNDO-Tablespace abgespeichert
- Wie weit die Werte in die Vergangenheit reichen hängt vom Parameter UNDO_RETENTION ab
- Abfragen eines alten Wertes:
SELECT * FROM dept AS OF TIMESTAMP to_timestamp('02-03-2004 07:00:00','dd-mm-yyyy hh24:mi:ss');
- Versionen eines Zeitraums und die erfolgten Operationen können abgefragt werden:
SELECT deptno, dname, loc, versions_operation, versions_xid, versions_starttimeFROM scott.dept VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE ORDER BY deptno, versions_starttime;
Tabelle kann auf bestimmten Zeitpunkt zurückgesetzt werden:
FLASHBACK TABLE dept TO TIMESTAMP to_timestamp('02.03.2004 09:30');
Tabellen lassen sich wieder zurückholen mit Until Drop:
FLASHBACK TABLE dept to BEFORE DROP;
Flashback Database
- Gesamte Datenbank wird in einen historischen Zustand zurückgefahren
- Lässt sich nicht auf einzelne Benutzer beschränken
- Datenbank muss im Archivelog-Modus betrieben werden
Konfiguration:
- Datenbank auf flashback on setzen:
- shutdown immediate;
- startup mount;
- alter database flashback on;
- alter database open;
Beispiel:
- Herunterfahren der Datenbank
SHUTDOWN IMMEDIATE;
- Hochfahren in den Mount Modus
STARTUP MOUNT;
- Flashback absetzen
FLASHBACK DATABASE TO TIMESTAMP to_timestamp ('02.03.2004 09:30:00');
- Datenbank öffnen
ALTER DATABASE OPEN RESETLOGS;