Ripristinare un database Oracle

Ripristinare un database utilizzando la console di gestione

Il ripristino del database originale sostituisce i dati dell'applicazione di produzione originale con l'immagine point-in-time specificata. Questo ripristino comporta la perdita di tutti i dati attuali dell'applicazione, in quanto l'applicazione viene ripristinata allo stato in cui si trovava al momento della creazione dell'immagine. Questa operazione non può essere annullata. Il tempo necessario per completare un'operazione di ripristino dipende dalla quantità di dati coinvolti. Puoi anche ripristinare un database in un'altra destinazione.

Segui queste istruzioni per ripristinare automaticamente un database Oracle utilizzando RMAN dalla console di gestione, sovrascrivendo il database di produzione originale.

  1. Apri la console di gestione di App Manager e inserisci il nome dell'applicazione database o utilizza i filtri per trovare l'immagine del database che ti serve.

  2. Fai clic con il tasto destro del mouse sull'applicazione e seleziona Accesso.

  3. Nella pagina Accesso, seleziona un'immagine e fai clic su Ripristina nel menu Monta.

  4. Nella pagina Ripristina, seleziona Tradizionale (non Monta e migra).

  5. Utilizza il cursore Intervallo di ripristino per selezionare un punto temporale specifico in cui ripristinare il database. Sposta il cursore completamente a sinistra per ripristinare solo il database senza log applicati.

  6. In Nome utente, inserisci il proprietario del software Oracle sul server di destinazione selezionato.

  7. Per Numero di canali, specifica il numero di canali RMAN per configurare il parallelismo per il ripristino del database.

  8. Fai clic su Invia.

  9. Viene visualizzata una finestra di dialogo di avviso. Leggi il messaggio e inserisci DATA LOSS per confermare.

  10. Il job è in coda per il successivo slot di job disponibile. Puoi visualizzare l'avanzamento nel monitoraggio dei job.

Ripristinare un database in qualsiasi destinazione utilizzando la console di gestione

Utilizza queste istruzioni per ripristinare un database Oracle in una nuova destinazione, utilizzando RMAN dalla console di gestione.

  1. Nell'elenco Gestione app > Applicazioni, fai clic con il tasto destro del mouse sul database e seleziona Accesso.
  2. Seleziona l'immagine di backup da recuperare e scegli Ripristina.
  3. Nella pagina Ripristina, seleziona Tradizionale.

    • Destinazione: per tutte le configurazioni, tutti i server di database Oracle idonei sono disponibili per la scelta dal menu a discesa. Seleziona il server di destinazione per il ripristino dal menu a discesa.
    • Sostituisci identità applicazione originale: questa opzione è disponibile solo quando il ripristino viene eseguito su un nuovo server sullo stesso appliance in cui è stato originariamente generato il backup.
    • : questa opzione sostituisce l'applicazione originale e ha lo stesso ID applicazione, cronologia dei job, immagini di backup e piano di backup dell'applicazione originale.
    • No: non sostituisce l'applicazione originale. Il nuovo database verrà rilevato come nuova applicazione nell'ambito del processo di ripristino.
    • Ora di rollforward: scegli una data e un'ora per il recupero di un database protetto con i log fino al punto nel tempo richiesto.
    • Opzioni dell'applicazione:

      • DATABASESID: questo campo è precompilato con il nome SID del database protetto ed è immutabile.
      • USERNAME: questo campo è precompilato con il proprietario del software Oracle del database di origine. Aggiorna USERNAME se il proprietario del software Oracle sul server di destinazione selezionato è diverso.
      • ORAHOME: questo campo è precompilato con il percorso Oracle Home del database di origine. Aggiorna la directory Oracle Home se Oracle Home è diversa sul server di destinazione selezionato.
      • Opzioni avanzate: questo campo è precompilato e mostra tutte le impostazioni dei parametri del database (dal file pfile) nell'origine al momento del backup. Assicurati che il valore parametro sia corretto per il server di database di destinazione (origine o nuova destinazione) per il ripristino.
  4. Opzioni di mappatura:

    • Tipo di database di destinazione: seleziona il tipo di destinazione del database (gruppo di dischi ASM o file system) per il database dall'elenco a discesa. Il tipo di destinazione del file system non è supportato per le immagini di backup nel formato ASM.

      Database di origine Formato immagine di backup Destinazione ripristino
      ASM ASM ASM
      ASM File system ASM
      File system File system File system
    • Seleziona i mapping del gruppo di dischi ASM e del file system di destinazione per tre tipi di file: i file di dati, i file di controllo e i file di log di ripristino per il database dall'elenco a discesa.

  5. Fai clic su Controllo pre-volo. Se il controllo preflight non riesce, risolvi il problema e riprova a eseguire il controllo preflight.

  6. Fai clic su Invia per inviare il job di ripristino.

Recuperare manualmente un database Oracle utilizzando RMAN

Per recuperare manualmente un database Oracle, consulta queste procedure.

Non-RAC, Non-ASM, File System

Recuperare un database Oracle con file di dati sul file system e protetto in base al formato del disco di staging basato su file

  1. Monta l'immagine dal database di origine protetto.

    Nella finestra Mount (Monta), Mapping Options (Opzioni di mappatura), fornisci una posizione di montaggio per l'immagine, ad esempio: /acttestdb. Per istruzioni su come montare un'immagine del database, vedi Montare un'immagine del database Oracle protetta in un file system per l'accesso ai dati.

    L'immagine di backup del database è montata in: /acttestdb

    Il log dell'archivio protetto è montato in: /acttestdb_Log

  2. Imposta l'ambiente Oracle e utilizza sqlplus per arrestare il database:

    sqlplus / as sysdba
    sql> shutdown immediate;
    

    Verifica che il database sia chiuso. Termina tutti i processi rimanenti per il database.

    ps -ef | grep database sid
    
  3. Avvia il database nello stato nomount utilizzando il file dei parametri di backup dal volume montato. Il file dei parametri di backup si trova nella cartella montata in alto, ad esempio /acttestdb

  4. Imposta l'ambiente Oracle e utilizza sqlplus per avviare il database:

    sqlplus / as sysdba
    sql> startup nomount pfile='/acttestdb/database sid___backup.ora';
    
  5. Crea un nuovo spfile dal pfile esistente e riavvia il database.

    Crea un file spfile dal file pfile:

    create spfile='$ORACLE_HOME/dbs/spfile_database sid.ora' from pfile='/acttestdb/database sid___backup.ora';
    

    Riavvia il database con spfile nello stato nomount:

    shutdown immediate;
    startup nomount;
    
  6. Ripristina il file di controllo utilizzando RMAN dall'immagine del log di archivio montato di Backup and RE. Utilizza il file di controllo più recente dell'immagine montata del log, ad esempio:

    /acttestdb_Log/cf D_sid-id_Target SID.ctl
    

    o se è presente più di un'immagine del log:

    /acttestdb_Log_1/cf-D_sid-id_Target SID.ctl

       rman target /
       restore controlfile from '/acttestdb_Log_1/cf-D_<var>sid</var>-id_<var>id</var>.ctl' ;
    
  7. Monta il database:

       alter database mount;
    
  8. Cataloga il file di dati e la cartella archivelog dall'immagine del database montata di Backup e RE e dall'immagine del log di archivio in RMAN:

       run {
         catalog start with '+acttestdg/db_name/datafile' noprompt;
         catalog start with '+acttestdg/db_namearchivelog' noprompt;
         catalog start with 'mountpoint_log' noprompt;
         }
    
  9. Ripristina e recupera il database:

      run { restore database ; recover database; }
    

    Per un recupero point-in-time specifico utilizzando il formato aaaammgghh24mi:

       run
        {
        restore database;
        recover database until time "to_date('timestamp','yyyymmddhh24mi')";
        }
    
  10. Apri il database con l'opzione di ripristino del log.

    • Per il recupero del database primario:

      alter database open resetlogs;
      
    • Per il recupero del database di standby Data Guard, avvia la procedura di recupero gestita da Data Guard:

      alter database recover managed standby database nodelay disconnect;
      

    Il database è disponibile per la lettura e la scrittura.

RAC o ASM autonomo, file system

Recuperare un database Oracle con file di dati nel gruppo di dischi ASM e protetto in base al formato del disco di staging basato su file

  1. Monta l'immagine dal database di origine protetto.

    Nella finestra Monta in Opzioni di mappatura, fornisci una posizione di montaggio per l'immagine, ad esempio: /acttestdb. Per istruzioni su come montare un'immagine del database, vedi Montaggio di un'immagine del database Oracle protetta da un file system per l'accesso ai dati.

    L'immagine di backup del database è montata nella posizione di montaggio: /acttestdb

    Il log dell'archivio protetto è montato in:/acttestdb_Log

  2. Arresta il database Oracle. Dal nodo 1, passa all'utente del sistema operativo Oracle:

    su - oracle

    Imposta l'ambiente Oracle e utilizza srvctl per arrestare il database su tutti i nodi:

    srvctl stop database -d <var>database_name</var>

    Verifica che il database sia chiuso (tutti i nodi). Termina tutti i processi rimanenti per il database.

    ps -ef | grep <var>database_name</var>

  3. Avvia il database nello stato di non montaggio utilizzando il file dei parametri di backup dal volume montato. Il file dei parametri di backup si trova nella cartella montata principale, ad esempio in /acttestdb

  4. Imposta l'ambiente Oracle e utilizza sqlplus per avviare il database:

    sqlplus / as sysdba
    startup nomount pfile='/acttestdb/<var>database_name</var>___backup.ora';
    
  5. Crea un nuovo spfile e riavvia il database.

    Per ottenere il percorso del file spfile originale nel gruppo di dischi:

    cat $ORACLE_HOME/dbs/init{database sid}.ora

    Ad esempio: spfile=+{preferred disk group}/db_name/spfiledb_name.ora`

      create spfile='+{preferred disk group}/{db name}/spfile<var>db_name</var>.ora' from pfile='/acttestdb/<var>db_name</var>___backup.ora';
    

    Riavvia il database con spfile nello stato nomount:

      shutdown immediate;
      startup nomount;
    
  6. Ripristina il file di controllo utilizzando RMAN dall'immagine del log degli archivi montata di Backup and RE. Utilizza il file di controllo più recente dell'immagine montata del log, ad esempio:

    /acttestdb_Log/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl
    

    o se hai più di un'immagine del log:

    /acttestdb_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl
    
       target /
       restore controlfile from '/acttestdb_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ;
       ```
    
  7. Monta il database:

     alter database mount;
    
  8. Cataloga il file di dati e la cartella archivelog dall'immagine del database montata e dall'immagine del log di archivio di Backup and RE in RMAN:

     run { catalog start with '/acttestdb/datafile' noprompt;
     catalog start with '/acttestdb/archivelog' noprompt;
     catalog start with '/acttestdb_Log' noprompt;}
    
  9. Ripristina e recupera il database:

     run { restore database ; recover database; }
    

    Per un recupero point-in-time specifico utilizzando il formato aaaammgghh24mi:

     run
     {
     restore database;
     recover database until time "to_date('<var>timestamp</var>','yyyymmddhh24mi')";
     }
    
  10. Apri il database con l'opzione di ripristino del log.

    • Per il recupero del database primario:
    alter database open resetlogs;
    

    La configurazione RAC richiede un altro passaggio dopo il log di ripristino: arresta il database sul nodo 1 e avvialo su tutti i nodi.

    Utilizza sqlplus per arrestare il database:

      sqlplus / as sysdba
      shutdown immediate;
      ```
    Use srvctl to start the database across all nodes:
    
     ```srvctl
      srvctl start database -d <var>database_name</var>
      ```
    + For Data Guard standby database recovery:
    
      + For non-RAC config: Start the Data Guard managed recovery process
    
          ```rman
          alter database recover managed standby database nodelay disconnect;
          ```
    
      + For RAC config: Shut down the database on node 1 and start the
        database in mounted state across all nodes.
    
         1. Use sqlplus to shut down the database:
    
              ```sqlplus
              / as sysdba
              shutdown immediate;
              ```
    
         1. Use srvctl to start the database in a mount state across all
            nodes:
    
             ```srvctl
             srvctl start database -d <var>database_name</var> -o mount
             ```
    
         1. Start the Data Guard managed recovery process:
    
             ```rman
             alter database recover managed standby database nodelay disconnect;
             ```
    

Il database è disponibile per la lettura e la scrittura.

RAC o ASM autonomo, gruppo di dischi ASM

Recuperare un database Oracle con file di dati nel gruppo di dischi ASM e protetto nel formato del disco di staging del gruppo di dischi ASM

  1. Monta l'immagine dal database di origine protetto. Nella finestra di montaggio, fornisci un gruppo di dischi preferito per il montaggio dell'immagine in ASM sul nodo RAC 1. Per informazioni dettagliate su come montare un'immagine del database, vedi Montaggio di un'immagine del database Oracle protetta da un gruppo di dischi ASM per l'accesso ai dati.

    Ad esempio, nella schermata di montaggio:

    • Seleziona host: server di database del nodo 1 di RAC

    • Gruppo di dischi preferito: acttestdg

    • Elenco nodi RAC: IP del nodo RAC 1

      Il file dei parametri di backup viene copiato in /act/touch/<var>preferred_disk_group</var>/, ad esempio:

      /act/touch/acttestdg/<var>database_name</var>___backup.ora

  2. Arresta il database Oracle.

    Dal nodo 1, passa all'utente del sistema operativo Oracle:

     su - oracle
    

    Imposta l'ambiente Oracle. Utilizza srvctl per arrestare il database su tutti i nodi:

     srvctl stop database -d <var>database_name</var>
    

    Verifica che il database sia chiuso (su tutti i nodi). Termina tutti i processi rimanenti per il database.

    ps -ef | grep <var>db_name</var>
    
  3. Avvia il database in stato nomount utilizzando il file di parametri di backup copiato in /act/touch/acttestdg.

  4. Imposta l'ambiente Oracle. Utilizza sqlplus per avviare il database:

    ```sqlplus
    / as sysdba
    startup nomount pfile='/act/touch/acttestdg/<var>db_name</var>___backup.ora';
    ```
    
  5. Crea un nuovo spfile e riavvia il database.

    Per ottenere il percorso del file spfile originale nel gruppo di dischi:

     ```sqlplus
     cat $ORACLE_HOME/dbs/init(database sid).ora
     ```
    

    Ad esempio: spfile=+preferred disk group/db_name/spfiledb_name.ora

         create spfile='+<var>preferred disk group</var>/<var>db_name</var>/spfile<var>db_name</var>.ora' from pfile='/act/touch/acttestdg/<var>db_name</var>___backup.ora';
    

    Riavvia il database con spfile nello stato nomount:

     ```sql
     shutdown immediate;
     startup nomount;
     ```
    
  6. Ripristina il file di controllo utilizzando RMAN dall'immagine del log di archivio montato di Backup and RE. Utilizza il file di controllo più recente dell'immagine montata del log, ad esempio:
    /acttestdb_Log/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl o se esiste più di un'immagine log:
    /acttestdb_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl

     ```rman
     rman target /
     restore controlfile from '/acttestdg_Log_1/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ;
     ```
    
  7. Monta il database:

     ```rman
     alter database mount;
     ```
    
  8. Cataloga il file di dati e la cartella archivelog dall'immagine del database montata e dall'immagine del log di archivio di Backup and RE in RMAN:

     ```rman
     run { catalog start with '+acttestdg/<var>db_name</var>/datafile' noprompt;
     catalog start with '+acttestdg/<var>db_name</var>/archivelog' noprompt;
     catalog start with '/acttestdg_Log' noprompt;}
     ```
    
  9. Ripristina e recupera il database:

     ```rman
     run { restore database ; recover database ; }
     ```
    

    Per un recupero point-in-time specifico, esegui il comando di recupero come indicato di seguito:

     ```rman
     run
     {
     restore database;
     recover database until time "to_date('<var>timestamp</var>','yyyymmddhh24mi')";
     }
     ```
    
  10. Apri il database con l'opzione di ripristino del log.

    • Per il recupero del database primario:

       alter database open resetlogs;
      

      La configurazione RAC richiede un altro passaggio: dopo il log di ripristino, arresta il database sul nodo 1 e avvialo su tutti i nodi. Utilizza sqlplus per arrestare il database:

       / as sysdba
       shutdown immediate;
      

      Utilizza srvctl per avviare il database su tutti i nodi:

       start database -d <var>database_name</var>
      
    • Per il recupero del database di standby Data Guard:

      • Per la configurazione non RAC: avvia la procedura di ripristino gestito di Data Guard:

        alter database recover managed standby database nodelay disconnect;
        
      • Per la configurazione RAC: arresta il database sul nodo 1 e avvialo nello stato di montaggio su tutti i nodi.

        1. Utilizza sqlplus per arrestare il database:

          as sysdba
          shutdown immediate;
          
        2. Utilizza srvctl per avviare il database in uno stato di montaggio su tutti i nodi:

          start database -d <var>database_name</var> -o mount
          
        3. Avvia la procedura di recupero gestito di Data Guard:

          alter database recover managed standby database nodelay disconnect;
          

    Il database è disponibile per la lettura e la scrittura.

Recuperare lo spazio delle tabelle e i file di dati Oracle

Per recuperare un singolo file di dati tablespace, ad esempio a causa di un danneggiamento dei dati:

  1. Monta lo snapshot del database più recente dall'appliance di backup/recupero sul server Oracle.

  2. Cataloga lo snapshot di backup del database in RMAN.

  3. Ripristina e recupera lo spazio delle tabelle utilizzando lo snapshot di backup come descritto qui.

Recuperare un singolo tablespace di un database di produzione in un gruppo di dischi ASM

Per recuperare un singolo tablespace di un database di produzione nel nodo primario:

  1. Monta lo snapshot point-in-time del database come descritto in Montare un database Oracle come montaggio standard.

  2. Nella finestra Mount (Monta) in Mapping Options (Opzioni di mapping), fornisci una posizione di montaggio per l'immagine. Ad esempio, per un'immagine nel gruppo di dischi ASM, fornisci un nome del gruppo di dischi in Gruppo di dischi preferito e per un'immagine nel file system, fornisci una posizione di montaggio come /acttestdb.

  3. Dal nodo principale, accedi al server di database come utente Oracle OS.

  4. Imposta l'ambiente del database e accedi a RMAN:

    rman target /
    
  5. Al prompt RMAN, cataloga il file di dati di backup e la cartella dei log di archivio:

    Esempio: un'immagine del database protetta in ASM Disk Group: (Nome del gruppo di dischi ASM montato " + acttestdg"):

    ```rman
    catalog start with '+acttestdg/<var>db_name</var>/datafile' noprompt;
    catalog start with '+acttestdg/<var>db_name</var>/archivelog' noprompt;
    catalog start with &#8216;/<var>mountpoint_log</var>'; noprompt;
    (If archivelogs are protected by Backup and DR)
    ```
    

    Esempio: un'immagine del database protetta nel file system (nome del file system montato "/acttestdb"):

    ```rman
    catalog start with '/acttestdb/datafile' noprompt;
    catalog start with '/acttestdb/archivelog'
    noprompt;
    catalog start with '/acttestdb_log/archivelog' noprompt;
    ```
    
    (If archivelogs are protected by Backup and DR)
    

    Ora puoi eseguire tutti i comandi di ripristino RMAN, ad esempio:

  6. Al termine, smonta ed elimina l'immagine.

Recuperare uno spazio delle tabelle

Per recuperare uno spazio delle tabelle:

    ```rman
    restore tablespace <var>tablespace name</var>;
    recover tablespace <var>tablespace name</var>;
    ```

Recuperare un file di dati

Per recuperare un file di dati:

    ```rman
    restore datafile <var>file#</var>;
    recover datafile <var>file#</var>;
    ```

Recuperare un blocco di database danneggiato

Per recuperare un blocco di database corrotto:

  1. Monta lo snapshot point-in-time del database come descritto in Montare un database Oracle come montaggio standard.

  2. Nella finestra Monta, Opzioni di mappatura, fornisci una posizione di montaggio per l'immagine. Ad esempio, per un'immagine in un gruppo di dischi ASM, fornisci un nome del gruppo di dischi in Gruppo di dischi preferito e per un'immagine in un file system, fornisci una posizione di montaggio, ad esempio /acttestdb.

  3. Dal nodo principale, accedi al server di database come utente Oracle OS.

  4. Imposta l'ambiente del database e accedi a sqlplus, quindi esegui una query su v$database_block_corruption per controllare i blocchi danneggiati:

    ```sh
    sqlplus / as sysdba
    sql> SELECT * FROM V$DATABASE_BLOCK_CORRUPTION;
    ```
    
  5. Accedi a RMAN per recuperare tutti i blocchi danneggiati:

    ```rman
    rman target /
    RECOVER CORRUPTION LIST;
    ```
    

    Una volta recuperati i blocchi, il database li rimuove da V$DATABASE_BLOCK_CORRUPTION.

  6. Per recuperare un singolo blocco danneggiato (ad esempio: datafile 8 e blocco 13):

    Dal prompt RMAN

    ```rman
    recover datafile 8 block 13;
    ```
    

Recuperare i file di controllo persi

Per recuperare i file di controllo persi:

  1. Monta lo snapshot point-in-time del database come descritto in Montare un database Oracle come montaggio standard.

  2. Nella finestra Monta, Opzioni di mappatura, fornisci una posizione di montaggio per l'immagine. Ad esempio, per un'immagine in un gruppo di dischi ASM, fornisci un nome di gruppo di dischi in Gruppo di dischi preferito e per un'immagine in un file system, fornisci una posizione di montaggio come /acttestdb.

  3. Dal nodo principale, accedi al server di database come utente Oracle OS.

  4. Imposta l'ambiente del database e accedi a sqlplus, quindi arresta il database e avvialo nello stato nomount:

    Per il database autonomo:

    ```sql
    sqlplus / as sysdba
    sql> shutdown immediate;
    sql> startup nomount;
    ```
    

    Per il database RAC dall'immagine montata, arresta il database in tutti i nodi:

    ```sh
    srvctl stop database -d <var>db_name</var>
    sql> startup nomount;
    ```
    
  5. Ripristina il file di controllo dall'immagine montata di Backup and RE.

    Ad esempio: /acttestdb (file system) e +acttestdg (per ASM)

    ```rman
    rman target /
    restore controlfile
    from '/acttestdb/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ; (Filesystem
    mount)
    restore controlfile
    from '+acttestdb/cf-D_<var>db_name</var>-id_<var>db_id</var>.ctl' ; (ASM
    mount)
    ```
    
  6. Monta e apri il database da sqlplus:

    ```sql
    sqlplus / as sysdba
    sql> alter database mount;
    sql> recover database until cancel;
    sql> alter database open resetlogs;
    ```
    

Recuperare un database pluggable Oracle

Per recuperare un database modulare (PDB) Oracle 12c o versioni successive:

  1. Monta l'immagine dal server di database di origine da recuperare. Nella finestra Mount, fornisci un gruppo di dischi preferito per il montaggio dell'immagine in ASM sul nodo RAC 1. Per informazioni dettagliate su come montare un'immagine del database, vedi Montare un'immagine del database Oracle protetta in ASM Disk Group per l'accesso ai dati.

  2. Chiudi il database modulare:

    1. Da Node 1, su a Oracle User

      su - oracle
      
    2. Imposta l'ambiente Oracle. Connettiti al database Oracle come utente "sysdba":

         / as sysdba
         alter pluggable database <var>pluggable_db_name</var> close;
      
  3. Cataloga il file di dati e la cartella archivelog dall'immagine del database montata e dall'immagine del log di archivio di Backup and RE in RMAN:

        run { catalog start with '+acttestdg/<var>db_name</var>/datafile' noprompt;
        catalog start with '+acttestdg/<var>db_name</var>/archivelog' noprompt;
        catalog start with '/acttestdg_Log' noprompt;
        }
    
  4. Ripristinare e recuperare il database pluggable

        run
        {
        restore pluggable database <var>pluggable_db_name</var>;
        recover pluggable database <var>pluggable_db_name</var> until time "to_date('<var>required time stamp</var>>';,';yyyymmddhh24mi')";
        }
    
  5. Apri il database modulare:

        alter pluggable database <var>pluggable_db_name</var> open;
    

Il database plug-in è aperto per la lettura e la scrittura.

Guida per Oracle DBA