Prepara i database Oracle in un ambiente Windows per Backup e RE su un'appliance di backup/recupero

Prima di iniziare

Prima di poter rilevare, proteggere e montare i database Oracle in un ambiente Windows, assicurati di controllare quanto segue:

  1. Controlla le seguenti impostazioni sul server di database:

    1. Il database Oracle e Oracle Listener sono in esecuzione (controlla i servizi Windows).

    2. Verifica che esista una voce tns con il nome SID. Il file tnsnames.ora si trova in

      %ORACLE_HOME%\network\admin
      
    3. Verifica che la voce tns sia valida eseguendo:

      %ORACLE_HOME%\bin\tnsping <SID>
      
  2. Controlla se la modalità di log è impostata su Modalità log di archivio:

    sql> archive log list
    

    Se il database è in modalità di log senza archivio, riportalo alla modalità di log di archivio:

    sql> shutdown immediate;
    sql> startup mount;
    sql> alter database archivelog;
    sql> alter database open;
    
  3. Abilita il monitoraggio dei blocchi di modifica del database. Se il monitoraggio dei blocchi di modifica del database è disattivato, il tempo di backup incrementale è interessato. La funzionalità di monitoraggio dei blocchi di modifica è disponibile in Oracle Enterprise Edition. Esegui una query SQL per verificare che il monitoraggio dei blocchi di modifica sia abilitato. Esegui la query:

    sqlplus / as sysdba
    sql> select * from v$block_change_tracking;
    

Per abilitare il monitoraggio dei blocchi di modifica:

    sql> alter database enable block change tracking
    using file '<Oracle home directory>\orcl.bct';

Eseguire il backup di un database Oracle in un ambiente Windows

Per eseguire il backup di un database Oracle in un ambiente Windows, segui questi passaggi:

  1. Nella console di gestione dell'appliance, imposta i dettagli e le impostazioni dell'applicazione per i database Oracle.

  2. Applica un piano di backup per proteggere il database.

Problema noto

Oracle 19c SQL*Plus (sqlplus.exe) a volte si blocca su Windows durante l'esecuzione del comando exit (ID documento 2820655.1). Questo bug è specifico per Windows. Oracle ha confermato che questo problema si verifica nelle versioni 19.10, 19.11 e 19.12 di SQL*Plus. Oracle ha fornito queste soluzioni:

  • Utilizza SQL*Plus 21.1 o versioni successive (oppure)
  • Applica la patch:31466370. Questa patch è disponibile per le versioni 19.11 e 19.13.

Recuperare manualmente i database Oracle in un ambiente Windows utilizzando RMAN in un punto di backup pianificato se il log di archivio non è protetto tramite Backup e RE

Per recuperare un intero database Oracle in un ambiente Windows:

  1. Monta lo snapshot di backup del database da Backup e RE sul server Oracle come descritto in Montare un database Oracle come montaggio standard.

  2. Imposta l'ambiente del database e avvia il database nello stato senza montaggio utilizzando il file di parametri dal volume montato di Backup e RE (ad esempio per un volume di database montato su E:):

    sqlplus / as sysdba
    sql> startup nomount pfile='E:\<sid>___backup.ora';
    
  3. Crea spfile da pfile:

    sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora'
    from pfile='E:\<sid>___backup.ora';
    
  4. Avvia il database con spfile nello stato nomount:

    sql> shutdown immediate;
    sql> startup nomount;
    
  5. Ripristina il file di controllo utilizzando RMAN dal volume montato di Backup e RE:

    rman target /
    rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';
    
  6. Monta il database:

    rman> alter database mount;
    
  7. Cataloga il file di dati e la cartella dei file di archivio dal volume montato di Backup e RE a RMAN:

    rman> run
    {
    catalog start with 'E:\datafile' noprompt;
    catalog start with 'E:\archivelog' noprompt;
    }
    
  8. Ripristina e recupera il database:

    rman> run
    {
    restore database;
    recover database;
    }
    
  9. Apri il database con l'opzione di log di reimpostazione:

    rman> alter database open resetlogs;
    

Recuperare manualmente i database Oracle in un ambiente Windows utilizzando RMAN in un punto di backup pianificato con il roll-forward del log di archivio protetto da Backup e RE

  1. Monta il backup dal server di database di origine da recuperare. Monta lo snapshot di backup da Backup e RE sul server Oracle come descritto in Montare un database Oracle come montaggio standard.

  2. Imposta l'ambiente del database e avvia il database nello stato senza montaggio utilizzando il file di parametri dal volume montato di Backup e RE. In questo esempio, il backup del database è montato su: E:\ e il log di archivio protetto è montato su: Z:.

       sqlplus / as sysdba
    
       startup nomount pfile='E:\<sid>___backup.ora';
    
  3. Crea spfile da pfile:

    sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from
    pfile='E:\<sid>___backup.ora';
    
  4. Avvia il database con spfile nello stato senza montaggio:

    ```sql
    shutdown immediate;
    startup nomount;
    ```
    
  5. Ripristina il file di controllo utilizzando RMAN dal backup del log di archivio montato di Backup e RE:

    ```rman
    rman target /
    rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl';
    ```
    
  6. Monta il database:

    ```rman
    rman> alter database mount;
    ```
    
  7. Cataloga il file di dati e la cartella del log di archivio dal backup del database montato di Backup e RE e dal backup del log di archivio a RMAN:

    ```rman
    rman> run
    {
    catalog start with 'E:\datafile' noprompt;
    catalog start with 'E:\archivelog' noprompt;
    catalog start with 'Z:\archivelog' noprompt;
    }
    ```
    
  8. Ripristina e recupera il database:

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

    Per un recupero point-in-time specifico, esegui il comando di recupero nel seguente modo:

    ```rman
    rman> run
     {
      restore database;
      recover database until time "to_date('<time stamp>','yyyymmddhh24mi')";
     }
     ```
    
  9. Apri il database con l'opzione di log di reimpostazione:

    ```rman
    rman> alter database open resetlogs;
    ```
    

    Il database è disponibile per la lettura e la scrittura.

Script di monitoraggio per verificare se i volumi di database sono montati

Se crei un montaggio con riconoscimento dell'applicazione, puoi utilizzare uno script di monitoraggio per visualizzare i volumi montati da Backup e RE e i processi Oracle in esecuzione. I montaggi con riconoscimento dell'applicazione sono descritti in Montare un database Oracle come applicazione virtuale.

Quando esegui un montaggio con riconoscimento dell'applicazione, puoi utilizzare questo script di monitoraggio. Il percorso dello script deve essere: C:\Programmi\Backup e RE\scripts. Gli script eseguiti sugli host Windows devono essere file .bat o .vbs.

    ```Windows
    @echo off
    :loop
    echo. > watchtemp
    echo ------------------ >> watchtemp
    echo  Oracle Processes >> watchtemp
    echo ------------------ >> watchtemp
    tasklist /svc | findstr oracle >> watchtemp
    echo. >> watchtemp
    echo ------------------ >> watchtemp
    echo   Backup and DR Mounts >> watchtemp
    echo ------------------ >> watchtemp
    wmic volume get label, name | findstr Backup and DR >> watchtemp
    echo. >> watchtemp
    cls
    type watchtemp
    timeout 2 > null
    goto loop
    ```

Che produce un output simile a questo:

    Oracle Processes
    ------------------
    oracle.exe                    1492 OracleServiceORCL
    oracle.exe                    3768 OracleServiceTestDB
    oracle.exe                     872 OracleServiceTestDB2
    ------------------
      Backup and DR Mounts
    ------------------
    Backup and DR-Backup-ORCL    D:\mount_1