Previous Topic: Restore Point-in-TimeNext Topic: Database Recovery


Gestione ripristino (RMAN) e ripristino di un database su un server alternativo

Quando si esegue il ripristino di un database su un server alternativo mediante RMAN direttamente, i seguenti requisiti dovranno essere soddisfatti:

Ad esempio, considerare il seguente scenario:

Nota: Nello scenario utilizzato per la procedura riportata di seguito si presuppone che il database di cui è stato eseguito il backup da <Server-A> verrà ripristinato su <Server-B> e che il nome del database verrà conservato. Si presuppone, inoltre, che la struttura di directory degli host di origine e di destinazione sia diversa. Si presuppone inoltre l'utilizzo di Oracle 10gR2.

Per ripristinare un database su un server alternativo, eseguire le fasi seguenti:

  1. Modificare /etc/oratab dal server alternativo (Server-B) ed aggiungere la seguente riga all'istanza del database di origine (src) come utente Oracle:
    src:/opt/oracle/10gR2:N
    
  2. Eseguire lo strumento netca di Oracle (assistenza di configurazione Oracle .NET) per configurare un nome TNS per il file catdb del database di catalogo RMAN al fine di garantirne la visibilità dal database installato sul Server-B come utente Oracle.
  3. Creare la stessa struttura di directory del Server-A di origine con l'utente Oracle.

    Esempio:

    $cd $ORACLE_BASE/admin
    $mkdir src
    $mkdir adump bdump cdump dpdump pfile udump
    $mkdir -p $ORACLE_BASE/oradata/src
    $mkdir -p $ORACLE_BASE/flash_recovery_area/SRC
    
  4. Eseguire orasetup per configurare l'agente Oracle per il database originale sul server alternativo (Server-B).
    # /opt/CA/ABoraagt/orasetup
    
    

    Quando orasetup richiede di utilizzare un catalogo di gestione ripristino per la gestione dei backup di database, specificare 'y'.

    Are you planning on using a Recovery Manager catalog to handle database backups (Recommended)? (Y/N) Y
    
    

    Quando orasetup richiede di specificare il nome dell'istanza Oracle, specificare l'ID dell'istanza originale.

    Oracle instance id to be used by this agent [<Enter> to end]: src
    Valore ambiente ORACLE_HOME per l'istanza di Oracle: (default:/opt/oracle/10gR2):
    
    

    Quando orasetup richiede di specificare il nome del servizio della gestione recuperi, specificare il nome TNS configurato per il database di catalogo RMAN.

    Since you have configured the Recovery Manager, please provide the Recovery Manager service name for database src.
    Recovery Manager service name : catdb
    
  5. Modificare il file sbt.cfg sul Server-B nella cartella /opt/Arcserve/ABoraagt. Rimuovere il simbolo "#" seguente e specificare il nome host per il Server-A.
    # Node where the original backup was made from
    SBT_ORIGINAL_CLIENT_HOST=Server-A.
    
  6. Verificare di poter eseguire il ping con il nome host a partire dal server Arcserve Backup al Server-B e vice versa.
  7. Aggiungere un file pfile al server alternativo (Server-B).
  8. Avviare il database src con l'opzione nomount mediante il file pfile creato.
    $export ORACLE_SID=src
    $sqlplus /nolog
    SQL>conn sys/passw0rd as sysdba
    SQL>startup nomount pfile=$ORACLE_HOME/dbs/init$ORACLE_SID.ora
    SQL>exit
    
  9. Ripristinare il file spfile mediante il catalogo RMAN.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<source database db_id value> 
    RMAN> connect target system/passw0rd;
    RMAN>run {
    2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so';
    3>restore spfile;
    4>release channel  ch1;
    5>}
    

    Nota: Per il database Oracle a 32 bit, SBT_LIBRARY utilizza libobk32.so. Per database Oracle 64-bit, SBT_LIBRARY utilizza libobk64.so.

    Il processo di ripristino viene eseguito sulla coda dei processi di Server Arcserve Backup. Quando il processo viene completato, il database spfile restituisce viene ripristinato su $ORACLE_HOME/dbs.

    Chiudere il database.

    RMAN>shutdown immediate;
    RMAN>exit
    

    Riavviare il database con l'opzione nomount utilizzando il file spfile appena ripristinato.

    $sqlplus /nolog
    SQL>conn sys/passw0rd as sysdba
    SQL>startup nomount
    SQL>quit
    
  10. Ripristinare il file di controllo.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<source database db_id value> 
    RMAN> connect target system/passw0rd;
    RMAN> run { 
    2> allocate channel dev1 type 'sbt_tape' 
    parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 
    3> restore controlfile; 
    4> release channel dev1; 
    5> } 
    

    In alternativa, se si esegue il ripristino del file di controllo da un insieme di backup specifici e si esegue un ripristino temporizzato, sarà necessario procedere come segue:

    $ rman catalog rman/rman@catdb
    RMAN> set dbid=<source database db_id value> 
    RMAN> connect target system/passw0rd;
    RMAN> run { 
    2> allocate channel dev1 type 'sbt_tape' 
    parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so'; 
    3> restore controlfile from ‘Y’; 
    4> release channel dev1; 
    5> } 
    

    Per ottenere Y, (informazioni su insiemi di backup), procedere come segue:

    RMAN> set dbid=<dbid>; 
    RMAN> list backup of controlfile; 
    

    Il processo di ripristino viene eseguito sulla coda dei processi di Server Arcserve Backup. Al completamento del processo, i file di controllo del database vengono ripristinati sul percorso $ORACLE_HOME/oradata/$ORACLE_SID.

  11. Quando i file di controllo vengono ripristinati, eseguire il montaggio del database.
    $sqlplus / as sysdba
    SQL>alter database mount;
    SQL>exit
    
  12. Ripristinare il database e archiviare i registri.
    $rman catalog rman/rman@catdb
    RMAN> set dbid=<source database db_id value>
    RMAN> connect target system/passw0rd;
    RMAN>run {
    2>allocate channel ch1 type sbt parms='SBT_LIBRARY=/opt/Arcserve/ABoraagt/libobk64.so';
    3>restore database;
    4>restore archivelog all;
    5>release channel  ch1;
    6>}
    

    Il processo di ripristino viene eseguito sulla coda dei processi di Server Arcserve Backup. Al completamento del processo, i file di database e i file di registro vengono ripristinati.

  13. Utilizzare il file di controllo di backup per recuperare il database ed aprirlo.
    $sqlplus / as sysdba
    SQL> recover database using backup controlfile until cancel
    
  14. Immettere il comando seguente per aprire il database utilizzando l'opzione resetlogs:
    SQL> alter database open resetlogs;