Préparer des bases de données Oracle dans un environnement Windows pour Backup and DR sur un serveur de sauvegarde/récupération

Avant de commencer

Avant de pouvoir découvrir, protéger et installer des bases de données Oracle dans un environnement Windows, assurez-vous de vérifier les points suivants :

  1. Vérifiez les paramètres suivants sur le serveur de base de données :

    1. La base de données Oracle et l'écouteur Oracle sont en cours d'exécution (vérifiez les services Windows).

    2. Vérifiez qu'il existe une entrée tns avec le nom SID. Le fichier tnsnames.ora se trouve sous

      %ORACLE_HOME%\network\admin
      
    3. Vérifiez que l'entrée tns est valide en exécutant la commande suivante :

      %ORACLE_HOME%\bin\tnsping <SID>
      
  2. Vérifiez si le mode de journalisation est défini sur le mode "Archive Log" :

    sql> archive log list
    

    Si la base de données est en mode "no-archive log", rétablissez le mode "archive log" :

    sql> shutdown immediate;
    sql> startup mount;
    sql> alter database archivelog;
    sql> alter database open;
    
  3. Activez le suivi des blocs de modification de la base de données. Si le suivi des blocs de modification de la base de données est désactivé, le temps de sauvegarde incrémentielle est affecté. La fonctionnalité de suivi des blocs de modification est disponible dans Oracle Enterprise Edition. Exécutez une requête SQL pour vérifier que le suivi des blocs de modification est activé. Exécutez la requête :

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

Pour activer le suivi des blocs de modification :

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

Sauvegarder une base de données Oracle dans un environnement Windows

Pour sauvegarder une base de données Oracle dans un environnement Windows, procédez comme suit :

  1. Dans la console de gestion de l'appliance, définissez les détails et les paramètres de l'application pour les bases de données Oracle.

  2. Appliquez un plan de sauvegarde pour protéger la base de données.

Problème connu

Oracle 19c SQL*Plus (sqlplus.exe) se bloque parfois sur Windows lors de l'exécution de la commande exit (ID de document 2820655.1). Ce bug est spécifique à Windows. Oracle a confirmé que ce problème se produit dans les versions 19.10, 19.11 et 19.12 de SQL*Plus. Oracle a fourni les solutions suivantes :

  • Utilisez SQL*Plus 21.1 ou une version ultérieure (ou)
  • Appliquez le correctif 31466370. Ce correctif est disponible pour les versions 19.11 et 19.13.

Récupérer manuellement des bases de données Oracle dans un environnement Windows à l'aide de RMAN vers un point de sauvegarde planifié si le journal d'archive n'est pas protégé par Backup and DR

Pour récupérer une base de données Oracle complète dans un environnement Windows :

  1. Installez l'instantané de sauvegarde de la base de données à partir de Backup and DR sur le serveur Oracle, comme décrit dans Installer une base de données Oracle en tant qu'installation standard.

  2. Définissez l'environnement de la base de données et démarrez la base de données sans installation à l'aide du fichier de paramètres du volume installé Backup and DR (par exemple, pour un volume de base de données installé sur E:) :

    sqlplus / as sysdba
    sql> startup nomount pfile='E:\<sid>___backup.ora';
    
  3. Créez un fichier spfile à partir d'un fichier pfile :

    sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora'
    from pfile='E:\<sid>___backup.ora';
    
  4. Démarrez la base de données avec le fichier spfile à l'état nomount :

    sql> shutdown immediate;
    sql> startup nomount;
    
  5. Restaurez le fichier de contrôle à l'aide de RMAN à partir du volume installé Backup and DR :

    rman target /
    rman> restore controlfile from 'E:\cf-D_<sid>-id_<id>.ctl';
    
  6. Installez la base de données :

    rman> alter database mount;
    
  7. Cataloguez le fichier de données et le dossier de fichiers d'archive à partir du volume installé Backup and DR vers RMAN :

    rman> run
    {
    catalog start with 'E:\datafile' noprompt;
    catalog start with 'E:\archivelog' noprompt;
    }
    
  8. Restaurez et récupérez la base de données :

    rman> run
    {
    restore database;
    recover database;
    }
    
  9. Ouvrez la base de données avec l'option de journal de réinitialisation :

    rman> alter database open resetlogs;
    

Récupérer manuellement des bases de données Oracle dans un environnement Windows à l'aide de RMAN vers un point de sauvegarde planifié avec la restauration du journal d'archive protégé par Backup and DR

  1. Installez la sauvegarde à partir du serveur de base de données source à récupérer. Installez l'instantané de sauvegarde à partir de Backup and DR sur le serveur Oracle , comme décrit dans Installer une base de données Oracle en tant qu'installation standard.

  2. Définissez l'environnement de la base de données et démarrez la base de données sans installation à l'aide du fichier de paramètres du volume installé Backup and DR. Dans cet exemple, la sauvegarde de la base de données est installée sur E:\ et le journal d'archive protégé est installé sur Z:.

       sqlplus / as sysdba
    
       startup nomount pfile='E:\<sid>___backup.ora';
    
  3. Créez un fichier spfile à partir d'un fichier pfile :

    sql> create spfile='%ORACLE_HOME%\database\spfile<sid>.ora' from
    pfile='E:\<sid>___backup.ora';
    
  4. Démarrez la base de données avec le fichier spfile à l'état "nomount" :

    ```sql
    shutdown immediate;
    startup nomount;
    ```
    
  5. Restaurez le fichier de contrôle à l'aide de RMAN à partir de la sauvegarde du journal d'archive installé Backup and DR :

    ```rman
    rman target /
    rman> restore controlfile from 'Z:\cf-D_<sid>-id_<id>.ctl';
    ```
    
  6. Installez la base de données :

    ```rman
    rman> alter database mount;
    ```
    
  7. Cataloguez le fichier de données et le dossier de journaux d'archive à partir de la sauvegarde de la base de données installée Backup and DR et de la sauvegarde du journal d'archive vers RMAN :

    ```rman
    rman> run
    {
    catalog start with 'E:\datafile' noprompt;
    catalog start with 'E:\archivelog' noprompt;
    catalog start with 'Z:\archivelog' noprompt;
    }
    ```
    
  8. Restaurez et récupérez la base de données :

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

    Pour une récupération à un moment donné spécifique, exécutez la commande de récupération comme suit :

    ```rman
    rman> run
     {
      restore database;
      recover database until time "to_date('<time stamp>','yyyymmddhh24mi')";
     }
     ```
    
  9. Ouvrez la base de données avec l'option de journal de réinitialisation :

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

    La base de données est disponible en lecture et en écriture.

Script de surveillance pour surveiller l'installation des volumes de base de données

Si vous créez une installation compatible avec les applications, vous pouvez utiliser un script de surveillance pour afficher les volumes installés à partir de Backup and DR, ainsi que les processus Oracle en cours d'exécution. Les installations compatibles avec les applications sont décrites dans Installer une base de données Oracle en tant qu'application virtuelle.

Lorsque vous effectuez une installation compatible avec les applications, vous pouvez utiliser ce script de surveillance. L'emplacement du script doit être le suivant : C:\Program Files\Backup and DR\scripts. Les scripts exécutés sur des hôtes Windows doivent être des fichiers .bat ou .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
    ```

Ce qui génère un résultat semblable à celui-ci :

    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