Argomento precedente: Ripristino degli spazi tabelleArgomento successivo: Risoluzione dei problemi


Ripristino dei file di controllo

Se i file di controllo di un database sono persi o corrotti, è possibile ripristinarli eseguendo un ripristino a livello del file. Dopo che il ripristino a livello del file è stato completato correttamente, è necessario recuperare manualmente i file di controllo.

Procedere come descritto di seguito:

  1. Accedere al computer di destinazione come utente root.
  2. Chiudere l'istanza Oracle.
    SQL>shutdown abort
    
  3. Avviare il database nello stato nomount.
    SQL>startup nomount
    
  4. Elencare il percorso per tutti i file di controllo.
    SQL> show parameter control_files;
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    control_files                        string      /opt/oracle/oradata/lynx/control01.ctl, /opt/oracle/flash_recovery_area/lynx/control02.ctl
    
  5. Ripristinare i file di controllo mediante la procedura guidata di ripristino. Per ulteriori informazioni sul processo di ripristino, vedere Esecuzione di un ripristino a livello di file sui nodi Linux.
  6. Specificare le informazioni seguenti sulla procedura guidata di ripristino e inoltrare il processo:
    1. Quando si selezionano i file e le cartelle, immettere il nome del file di controllo obbligatorio e avviare la ricerca. Ripetere questo passaggio finché tutti i file di controllo sono stati selezionati.

      Esempio: Immettere "control01.ctl " e avviare la ricerca.

    2. Sulla pagina del computer di destinazione, immettere le informazioni seguenti:
      • Selezionare Ripristina in posizione originale.
      • Immettere il nome host o l'indirizzo IP del server Oracle di destinazione.
      • Immettere il nome utente root e la password del server Oracle di destinazione.
      • Selezionare Sovrascrivi i file esistenti per l'opzione Risoluzione conflitti.
  7. Dopo il ripristino di tutti i file di controllo, installare il database e aprirlo.
    $sqlplus / as sysdba
    SQL>alter database mount;
    
  8. Recuperare il database con il comando RECOVER e aggiungere la clausola USING BACKUP CONTROLFILE.
    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE
    
  9. Applicare i registri archiviati richiesti.

    Nota: Se il registro archiviato richiesto non è disponibile, significa che nei registri di ripristino in linea è contenuto il record di ripristino necessario. Questa situazione si verifica quando nei registri in linea sono presenti modifiche non archiviate in seguito a un errore dell'istanza. È possibile specificare il percorso completo di un file del registro di ripristino in linea, quindi premere Invio. Per trovare il registro corretto, è possibile che si debba ripetere questa operazione più volte.

    Esempio:

    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE 
    ORA-00279: change 1035184 generated at 05/27/2014 18:12:49 needed for thread 1
    ORA-00289: suggestion :
    /opt/oracle/flash_recovery_area/LYNX/archivelog/2014_05_27/o1_mf_1_6_%u_.arc
    ORA-00280: change 1035184 for thread 1 is in sequence #6
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    /opt/oracle/oradata/lynx/redo03.log
    Log applied.
    Recupero del supporto completato.
    
  10. Aprire il database con la clausola RESETLOGS una volta completato il processo di ripristino.
    SQL> alter database open resetlogs;
    

I file di controllo sono stati recuperati correttamente.