Restore einer Datenbank auf einem anderen Host mithilfe von RMAN

Mithilfe von RMAN können Sie ein Restore für eine Datenbank auf einem anderen Host durchführen.

So führen Sie ein Restore für eine Datenbank mithilfe von RMAN auf einem anderen Host durch

  1. Geben Sie die folgenden Befehle ein, um den db_id-Wert (Datenbank-ID) der wiederherzustellenden Datenbank aus dem RMAN-Katalog zu erhalten:
    sqlplus <rman user>/<rman password>@<rman service>
    SQL> select db_key, db_id, bs_key, recid, stamp, backup_type, start_time, status from rc_backup_set;
    
  2. Suchen Sie den db_id-Wert der Datenbank, die Sie wiederherstellen möchten..
  3. Geben Sie den folgenden Befehl ein, um die Dateinummer und den Speicherort jeder Datendatei in der Quelldatenbank zu bestimmen:
    SVRMGR> select file#, name from v$data file;
    
  4. Kopieren Sie die Datei init<$ORACLE_SID>.ora von $ORACLE_HOME/dbs auf <host1> nach <host2>.
  5. Bearbeiten Sie die Datei $ORACLE_HOME/dbs/init<$ORACLE_SID>.ora und passen Sie alle Pfade so an, dass sie die neue Verzeichnisstruktur auf <host2> widerspiegeln.
  6. Führen Sie SQL*Net configure aus, um zu gewährleisten, dass der RMAN-Katalog von beiden Datenbanken auf <host1> und <host2> sichtbar ist.
  7. Richten Sie die Oracle-Kennwortdatei auf <host2> ein, indem Sie den folgenden Befehl eingeben:
    orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=kernel.
    
  8. Geben Sie den folgenden Befehl ein, um die Zieldatenbank mit der nomount-Option zu starten:
    SVRMGR> startup nomount pfile=$ORACLE_HOME/dbs/init<$ORACLE_SID>.ora
    
  9. Geben Sie folgende Befehle ein, um die Kontrolldatei wiederherzustellen:

    Hinweis: Dazu benötigen Sie den db_id-Wert aus Schritt 2.

    rman rcvcat <RMAN-Benutzername>/<RMAN-Kennwort>@<RMAN-Dienst>
    
    RMAN> set dbid=<db_id-Wert der Quelldatenbank>
    
    RMAN> connect target <Benutzername>/<Kennwort>;
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> restore controlfile;
    
    RMAN> release channel dev1;
    
    RMAN> }
    
  10. Geben Sie zum Laden der Zieldatenbank den folgenden Befehl ein:
    SVRMGR> alter database mount;
    
  11. Bestimmen Sie die neuen Speicherortefür jede Datendatei innerhalb des RMAN-Skripts mithilfe der Speicherorte, die Sie in Schritt 3 bestimmt haben.
  12. Geben Sie die folgenden Befehle ein, um die Datenbank mithilfe der in Schritt 11 bestimmten neuen Speicherorte wiederherzustellen:
    rman target <Benutzername>/<Kennwort> rcvcat <RMAN-Benutzername>/<RMAN-Kennwort>@<RMAN-Dienst>
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> set newname for data file 1 to '<Neuer Pfad>'
    
    RMAN> set newname for data file 2 to '<Neuer Pfad>'
    
    ...
    
    RMAN> restore database;
    
    RMAN> switch data file all;
    
    RMAN> release channel dev1;
    
  13. Geben Sie den folgenden Befehl ein, um ein Recovery für die Datenbank mithilfe der via Restore wiederhergestellten Kontrolldateien durchzuführen:
    SVRMGR> recover database using backup controlfile until cancel;
    
  14. Geben Sie den folgenden Befehl ein, um die Datenbank mithilfe der resetlogs-Option zu öffnen:
    SVRMGR> alter database open resetlogs;
    
  15. Wenn der Fehler "ORA-00344: unable to re-create online log %s" auftritt:
    1. Geben Sie die folgenden Befehle ein, um jedes Online-Redo-Protokoll umzubenennen:
      SVRMGR> alter database rename file <Pfad des Online-Redo-Protokolls #1>
      to <neuer Pfad des Online-Redo-Protokolls #1>;
      ...
      SVRMGR> alter database rename file <Pfad des Online-Redo-Protokolls #n>
      to <neuer Pfad des Online-Redo-Protokolls #n>;
      
    2. Geben Sie folgenden Befehl ein, um die Datenbank zu öffnen:
      SVRMGR> alter database open resetlogs;