5 1 0: Oracle Rücksicherung
Übersicht
Die hier erläuterten Verfahren und Funktionen bieten nur Informationen über die SEP sesam-spezifischen Teile der Oracle-Rücksicherung. Detaillierte Informationen zur Oracle-spezifischen Sicherung und Wiederherstellung finden Sie in Oracle Datenbank Dokumentation.
Das SEP sesam Sicherungsmodul für Oracle integriert den Oracle Recovery Manager (RMAN) mit SEP sesam um Oracle Datenbanken effizient online zu sichern und rückzusichern. Oracle RMAN steuert die Oracle-Serverprozesse und ist für die Pflege der Informationen im Wiederherstellungskatalog und in der Steuerdatei für die Durchführung von Oracle-Sicherungen und -Rücksicherungen verantwortlich.
RMAN kann Sicherungsdaten in einer logischen Struktur speichern, die als Backup Set bezeichnet wird. Dieses enthält die Daten aus einer oder mehreren Datendateien, archivierten Redo-Logs, Steuerdateien oder die Server-Parameterdatei. Backup Sets enthalten eine oder mehrere Binärdateien in einem RMAN-spezifischen Format (sogenannte Backup Pieces). Die Rücksicherung aus der Sicherungskopie wird mit dem RMAN durchgeführt, während SEP sesam ein Medienverwaltungsprogramm darstellt.
RMAN bietet eine vollständige Datenbankrücksicherung, die die Rücksicherung aller Datendateien, Steuer- und Serverparameterdateien in einer Zieldatenbank umfasst. Es ist möglich, auf die ursprüngliche Quelle oder einen neuen Speicherort rückzusichern.
Wenn Sie eine neue Kopie Ihrer Zieldatenbank für die weitere Verwendung auf einem neuen Host erstellen wollen, bietet RMAN die Möglichkeit, eine Datenbank aus einer früheren Sicherung zu duplizieren (klonen). Sie können ein Duplikat der Datenbank auf einem Remote-Server mit der gleichen Dateistruktur, einem Remote-Server mit einer anderen Dateistruktur oder auf einem lokalen Server mit einer anderen Dateistruktur erstellen. Da der Befehl DUPLICATE der neu erstellten Datenbank eine neue DBID zuweist, wird sie im selben Wiederherstellungskatalog registriert wie die Originaldatenbank.
Der Befehl RESTORE DATABASE wird normalerweise verwendet, wenn Ihre Produktionsdatenbank beschädigt ist und rückgesichert (ersetzt) werden muss. Wenn Sie jedoch in eine Testumgebung rücksichern und nur eine Kopie der Produktionsdatenbank erstellen möchten, sollten Sie den Befehl DUPLICATE verwenden, damit die Produktionssicherungen nicht beeinträchtigt werden.
RMAN verwaltet die Zieldatenbank (die Datenbank, die die Steuerdateien, Datendateien und optional archivierten Redo-Logs enthält, die gesichert oder rückgesichert werden) und alle Oracle-Serverprozesse auf der Zieldatenbank. Bei der Verwendung von ASM ist zu beachten, dass es sich um ein Dateisystem und einen Volume Manager handelt, die ebenfalls regelmäßig gesichert werden müssen.
Sicherung ausführen
Die Sicherungskonfiguration ist in Oracle Sicherung beschrieben.
Dabei werden die folgenden Annahmen getroffen:
- Ein Datenbankserver mit zwei Instanzen: Auf diesem System läuft eine Originalinstanz mit dem Namen SOURCE. Diese Instanz soll in der Instanz RESTORE rückgesichert werden.
- Es wird keine RMAN-Katalogdatenbank verwendet (Sicherungsinformationen werden in der Steuerdatei gespeichert). Um mit einem RMAN-Katalog zu arbeiten, muss der Befehl DUPLICATE database mit einer Verbindung zum RMAN-Katalog ausgeführt werden. Details finden Sie unter Ausführen des RMAN-Skripts.
- Der ORACLE_SID wird auf RÜCKSICHERUNG gesetzt, um eine Verbindung zur neuen Datenbank ohne Auflösung über tnsnames (unter Unix: export ORACLE_SID=RESTORE , unter Windows:ORACLE_SID=RESTORE ). Andernfalls muss der tnsnames.ora eingerichtet werden und der Listener muss neu gestartet werden lsnrctl reload.
Die folgenden Sicherungsaufträge müssen ausgeführt werden:
> Vollsicherung der Datendateien mit Steuerdatei (RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON)
> Archivierte Redo-Protokollsicherung
Vorbereitung des Systems für eine Rücksicherung
Um eine neue Datenbankinstanz rücksichern zu können, müssen Sie mit dem Befehl dbca eine neue und frische Setup-Instanz auf dem Oracle-System erstellen. Der Speicherort der neuen Datenbankdateien ist in diesem Schritt sehr wichtig, da diese Information für die Rücksicherung benötigt wird. Der neue Speicherort für die rückgesicherte Datenbank ist:
/opt/oracle/restore/RESTORE/
Rücksichern von Oracle-Datenbanken
Die Prozedur erklärt, wie man eine Instanz auf dem gleichen System in eine neue Instanz rücksichert. Sie beschreibt ein normales Setup, ohne ASM oder andere spezielle Komponenten.
Schritte
- Lesen des Sicherungsprotokolls: Da die neue Instanz an einem anderen Ort rückgesichert wird, sehen Sie sich das Sicherungsprotokoll an, in dem die Datendateien gesichert wurden:
- Einrichten des Datenbankklons: Der Datenbankklon muss sich im Startup-Nomount-Modus mit aktiviertem Archivprotokoll befinden:
- Erstellen des RMAN Restore Skriptes: Basierend auf den Informationen des Sicherungsprotokolls erstellen Sie ein RMAN Skript (z.B. duplicate_SOURCE.rman), zum Beispiel:
- Ausführen des RMAN-Skripts: Verbinden Sie die Quell- und die neue Datenbank mit dem folgenden Befehl:
- RMAN verbindet sich mit dem als Hilfsmittel {newdb} angegebenen Datenbankklon.
- RMAN verbindet sich mit der mit target {source} angegebenen Quelldatenbank, um die Metadaten aus der Steuerdatei zu holen. Je nach Sicherungsstrategie gibt es mehrere Möglichkeiten, die Metadaten zu holen:
- Ziel, aber kein Katalog
- Die Metadaten stammen aus der Steuerdatei der Zieldatenbank: $ rman TARGET sys/password@SOURCE AUXILIARY /
- Katalog, aber kein Ziel
- Die Metadaten stammen aus dem RMAN-Katalog: $ rman CATALOG rman/password@rman-catalog AUXILIARY /
- Ziel und Katalog
- Die Metadaten können aus der Zielsteuerdatei oder dem Katalog stammen: $ rman TARGET sys/password@SOURCE CATALOG rman/password@rman-catalog AUXILIARY /
- Kein Ziel oder Katalog
- Metadaten stammen aus Sicherungen: $ rman AUXILIARY /
Starting backup at 11-MAR-14 channel SOURCE1: starting incremental level 0 datafile backup set channel SOURCE1: specifying datafile(s) in backup set input datafile file number=00001 name=/opt/oracle/app/oracle/oradata/SOURCE/system01.dbf input datafile file number=00002 name=/opt/oracle/app/oracle/oradata/SOURCE/sysaux01.dbf input datafile file number=00003 name=/opt/oracle/app/oracle/oradata/SOURCE/undotbs01.dbf input datafile file number=00005 name=/opt/oracle/app/oracle/oradata/SOURCE/example01.dbf input datafile file number=00006 name=/opt/oracle/oradata/SOURCE/sesamdata.dbf input datafile file number=00004 name=/opt/oracle/app/oracle/oradata/SOURCE/users01.dbf channel SOURCE1: starting piece 1 at 11-MAR-14
Die Abschnitte der Eingabedateien beschreiben die Dateien, die gesichert wurden. Diese Dateien referenzieren auf den ursprünglichen Speicherort.
Da die Sicherung keine TEMPFILE-Datenbanken enthält, geben Sie den folgenden Befehl für die Original-Datenbank ein, um herauszufinden, wie viele tempfiles vorhanden sind:
RMAN> connect target / connected to target database: SOURCE (DBID=2960287951) RMAN> report schema; using target database control file instead of recovery catalog Report of database schema for database with db_unique_name SOURCE List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 680 SYSTEM *** /opt/oracle/app/oracle/oradata/SOURCE/system01.dbf 2 520 SYSAUX *** /opt/oracle/app/oracle/oradata/SOURCE/sysaux01.dbf 3 100 UNDOTBS1 *** /opt/oracle/app/oracle/oradata/SOURCE/undotbs01.dbf 4 5 USERS *** /opt/oracle/app/oracle/oradata/SOURCE/users01.dbf 5 100 EXAMPLE *** /opt/oracle/app/oracle/oradata/SOURCE/example01.dbf 6 100 SESAMDATA *** /opt/oracle/oradata/SOURCE/sesamdata.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 29 TEMP 32767 /opt/oracle/app/oracle/oradata/SOURCE/temp01.dbf<
sqlplus / as sysdba shutdown immediate startup nomount alter database archivelog;
run { ALLOCATE auxiliary channel T1 type 'SBT_TAPE' parms 'ENV=(SESAM_SERVER=qsstor,SESAM_TAPE_SERVER=qsstor,SESAM_JOB=CEFIX_ORACLE_SOURCE,SESAM_DRIVE=, SESAM_POOL=diskstore-7days,SOB_TRACE=0,SOB_LOGFILE=/tmp/restore.log,SESAM_COM_TIMEOUT=)'; set newname for datafile 1 to '/opt/oracle/restore/RESTORE/system01.dbf'; set newname for datafile 2 to '/opt/oracle/restore/RESTORE/sysaux01.dbf'; set newname for datafile 3 to '/opt/oracle/restore/RESTORE/undotbs01.dbf'; set newname for datafile 4 to '/opt/oracle/restore/RESTORE/users01.dbf'; set newname for datafile 5 to '/opt/oracle/restore/RESTORE/example01.dbf'; set newname for datafile 6 to '/opt/oracle/restore/RESTORE/sesamdata.dbf'; set newname for tempfile 1 to '/opt/oracle/restore/RESTORE/tempfile01.dbf'; duplicate target database to 'RESTORE' logfile '/opt/oracle/restore/RESTORE/redo01.log' SIZE 50M, '/opt/oracle/restore/RESTORE/redo02.log' SIZE 50M, '/opt/oracle/restore/RESTORE/redo03.log' SIZE 50M; }
Die set newname-Klauseln legen den Rücksicherungsort für die neuen Dateien fest (den Ordner der neuen Datenbank RESTORE). Sie müssen auch die set newname for tempfile Klauseln entsprechend dem report schema Befehl setzen. Die Syntax für die Protokolldatei-Optionen ist die gleiche wie im Datenbank erstellen Befehl.
Hinweis | |
Anstatt set newname für jede datafile und tempfile zu verwenden, stehen andere Klauseln zur Verfügung, z.B. DB_FILE_NAME_CONVERT = ({original path},{new path}) und LOG_FILE_NAME_CONVERT = ({original log path},{new log path}). Details finden Sie unter Der DUPLICATE-Befehl in Oracle Database Backup and Recovery Reference. |
oracle@cefix:~$ rman target sys/sep@SOURCE auxiliary / Recovery Manager: Release 11.2.0.1.0 - Production on Tue Mar 11 13:56:14 2014Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: SOURCE (DBID=2960287951) connected to auxiliary database: RESTORE (not mounted)
Führen Sie das RMAN-Skript aus:
@duplicate_SOURCE.rman
Im Falle einer fehlgeschlagenen Rücksicherung hat RMAN bereits die neue DBID und SID für die neue Zieldatenbank gesetzt. Beachten Sie, dass eine zweite Rücksicherung nicht möglich ist. Sie müssen entweder die neue Datenbank neu erstellen, oder den Namen der Zieldatenbank auf den alten Namen zurücksetzen, indem Sie den folgenden Befehl im sqlplus verwenden:
alter system set db_name='RESTORE' scope=spfile; alter system set db_unique_name='RESTORE' scope=spfile;
Stoppen Sie die Datenbank und starten Sie sie anschließend neu:
shutdown immediate; startup nomount;
Sie müssen aufgebaute RMAN-Sitzungen schließen, die verworfen werden, und die RMAN-Befehle neu starten.
Siehe auch
Oracle Duplicate Database – Oracle Anforderungen und Konfiguration – Oracle Sicherung