Argomento precedente: Gestione ripristino (RMAN) e ripristino di un database su un server alternativoArgomento successivo: Ripristino mediante la riga di comando


Ripristino di un database in un altro host tramite Recovery Manager (RMAN)

È possibile ripristinare un database in un altro host utilizzando Recovery Manager (RMAN).

Per ripristinare un database in un altro host utilizzando Recovery Manager (RMAN):

  1. Immettere i comandi riportati di seguito per ottenere il valore db_id (ID database) del database che si desidera ripristinare dal catalogo di RMAN:
    sqlplus <utente rman>/<password rman>@<servizio rman>
    SQL> select db_key, db_id, bs_key, recid, stamp, backup_type, start_time, status from rc_backup_set;
    
  2. Identificare il valore db_id corrispondente al database che si desidera ripristinare.
  3. Immettere il comando seguente per determinare la posizione e il numero di file di ogni file di dati nel database di origine:
    SVRMGR> select file#, name from v$data  file;
    
  4. Copiare il file init<$ORACLE_SID>.ora dalla directory $ORACLE_HOME/dbs su <host1> in <host2>.
  5. Modificare $ORACLE_HOME/dbs/init<$ORACLE_SID>.ora ed adeguare tutti i percorsi per riprodurre la nuova struttura di directory su <host2>.
  6. Eseguire SQL*Net configure per garantire la visibilità del catalogo RMAN da entrambi i database installati in <host1> e <host2>.
  7. Configurare il file di password di Oracle in <host2> immettendo il seguente comando:
    orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=kernel.
    
  8. Immettere il comando seguente per avviare il database di destinazione con l'opzione nomount:
    SVRMGR> startup nomount pfile=$ORACLE_HOME/dbs/init<$ORACLE_SID>.ora
    
  9. Immettere i comandi seguenti per ripristinare il file di controllo:

    Nota:  è necessario il valore db_id ottenuto al passaggio 2.

    rman rcvcat <nomeutente rman>/<password rman>@<servizio rman>
    
    RMAN> set dbid=<valore db_id database di origine>
    
    RMAN> connect target <nomeutente>/<password>;
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> restore controlfile;
    
    RMAN> release channel dev1;
    
    RMAN> }
    
  10. Immettere il comando seguente per installare il database di destinazione:
    SVRMGR> alter database mount;
    
  11. Determinare le nuove posizioni per ogni file di dati nello script di RMAN utilizzando le posizioni determinate al passaggio 3.
  12. Immettere i comandi riportati di seguito per ripristinare il database utilizzando le nuove posizioni determinate al passaggio 11:
    rman target <nomeutente>/<password> rcvcat <nomeutente rman>/<password rman>@<servizio rman>
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> set newname for data file 1 to '<nuovo percorso>'
    
    RMAN> set newname for data file 2 to '<nuovo percorso>'
    
    ...
    
    RMAN> restore database;
    
    RMAN> switch data file all;
    
    RMAN> release channel dev1;
    
  13. Immettere il comando seguente per recuperare il database utilizzando i file di controllo ripristinati:
    SVRMGR> recover database using backup controlfile until cancel;
    
  14. Immettere il comando seguente per aprire il database utilizzando l'opzione resetlogs:
    SVRMGR> alter database open resetlogs;
    
  15. Se si verifica l'errore ORA-00344: impossibile ricreare il registro online %s:
    1. Immettere i comandi seguenti per rinominare ogni registro di ripristino in linea:
      SVRMGR> alter database rename file <online redo log #1 path> 
      to <nuovo percorso registro di ripristino in linea n. 1>;
      ...
      SVRMGR> alter database rename file <online redo log #n path> 
      to <nuovo percorso registro di ripristino in linea n. 1>;
      
    2. Immettere il comando seguente per aprire il database:
      SVRMGR> alter database open resetlogs;