Vorheriges Thema: Manuelles RecoveryNächstes Thema: Recovery aus vollständigen Offline-Sicherungen


Recovery von Datenbanken mit verlorenen oder beschädigten Kontrolldateien

Geht eine Kontrolldatei verloren oder wird sie beschädigt, müssen Sie zunächst die Datenbank herunterfahren und eine Recovery für die Kontrolldateien durchführen, bevor Sie einen Restore der Datenbank durchführen können. Um die Datenbank herunterzufahren und ein Recovery für die Kontrolldateien und anschließend für die Datenbank durchzuführen, gehen Sie folgendermaßen vor:

So führen Sie ein Recovery für die Datenbanken mit verlorenen oder beschädigten Kontrolldateien durch

  1. Fahren Sie die Datenbank herunter, indem Sie folgenden Befehl eingeben, wenn die SQL*Plus-Eingabeaufforderung angezeigt wird:
    SHUTDOWN;
    
  2. Starten und laden Sie die Datenbank bei der entsprechenden Aufforderung, und leiten Sie den Recovery-Vorgang ein. Geben Sie in der SQL*Plus-Eingabeaufforderung folgenden Befehl ein:
    CONNECT SYS/SYS_PASSWORD AS SYSDBA;
    STARTUP MOUNT;
    RECOVER DATABASE USING BACKUP CONTROLFILE;
    
  3. Sie werden von Oracle zur Eingabe der Protokolldateinamen aufgefordert. Oracle sucht zunächst nach den Archivprotokolldateien und bietet automatisch die richtigen Namen für die vorhandenen an. Werden die benötigten Archivprotokolldateien von Oracle nicht gefunden, müssen Sie die benötigten Online-Redo-Protokolle manuell anwenden.

    Bei manueller Anwendung der Online-Redo-Protokolle müssen Sie den vollständigen Pfad- und Dateinamen angeben. Wenn Sie ein ungültiges Protokoll eingeben, geben Sie den folgenden Befehl erneut ein:

    RECOVER DATABASE USING BACKUP CONTROLFILE;
    

    Geben Sie an der Befehlszeile den korrekten Namen der Redo-Protokolldatei ein. Fahren Sie mit diesem Vorgang fort, bis alle Protokolle erfolgreich von Oracle angewendet wurden.

  4. Geben Sie folgenden Befehl ein, wenn die SQL*Plus-Eingabeaufforderung angezeigt wird, um die Datenbank wieder online zu schalten und die Protokolle zurückzusetzen:
    ALTER DATABASE OPEN RESETLOGS;
    
  5. Löschen Sie im Verzeichnis, in dem die archivierten Redo-Protokolle gespeichert sind, alle Protokolldateien.
  6. Sind einige Tablespaces noch offline, können Sie sie online bringen. Geben Sie hierzu folgenden Befehl ein, wenn die SQL*Plus-Eingabeaufforderung angezeigt wird:
    ALTER TABLESPACE TABLESPACE_NAME ONLINE;
    
  7. Wenn Sie RMAN verwenden, um ein Recovery für eine vollständige Datenbank mit gesicherten Kontrolldateien durchzuführen, müssen Sie die Datenbankinformationen in RMAN neu synchronisieren, damit sie der kürzlich via Recovery wiederhergestellten Datenbank entsprechen. Um die Datenbankinformationen erneut zu synchronisieren, gehen Sie folgendermaßen vor:
    1. Melden Sie sich als Oracle-Benutzer an.
    2. Geben Sie den folgenden Befehl ein, um die Oracle-SID auf die SID der via Recovery wiederhergestellten Datenbank zu setzen:
      ORACLE_SID=database SID
      
    3. Geben Sie die folgenden Befehle ein, um den Vorgang abzuschließen:
      rman target dbuser/ dbuserpassword rcvcat
      catowner/catownerpassword@rman service name
      reset database
      

      Hierbei gilt:

      • dbuser ist der Benutzer, der über DBA-Rechte für die via Recovery wiederhergestellte Datenbank verfügt.
      • dbuserpassword ist das Kennwort von dbuser.
      • catowner ist der Oracle-Benutzername für den Besitzer des Oracle RMAN-Katalogs.
      • rman service name ist der Name des Dienstes, der für den Zugriff auf die Datenbank verwendet wird, auf der der RMAN-Katalog installiert ist.