9.3 Maintenance de la zone de stockage des données ZENworks dans Oracle

Les sections suivantes fournissent des instructions pour la sauvegarde et la récupération de la zone de stockage des données ZENworks à l'aide d'Oracle :

9.3.1 Solutions de sauvegarde et de récupération

Oracle propose deux méthodes de sauvegarde et de récupération :

  • Recovery Manager (RMAN)

  • Sauvegarde et récupération gérées par l'utilisateur.

L'utilitaire RMAN s'installe automatiquement avec la base de données. Il peut sauvegarder une base de données Oracle8 et toutes les versions ultérieures d'une base de données Oracle*. RMAN utilise les sessions de serveur dans la base de données pour procéder aux sauvegardes et aux récupérations. RMAN utilise une syntaxe spécifique. Il peut être activé via une interface de ligne de commande ou par l'interface graphique d'Oracle Enterprise Manager. RMAN fournit également des API permettant de communiquer avec les gestionnaires de supports tiers.

L'avantage de RMAN est qu'il extrait et stocke des métadonnées concernant ses opérations dans le fichier de contrôle de la base de données. Il est possible de configurer un catalogue de récupération indépendant, c'est-à-dire un modèle comportant toutes les métadonnées importées du fichier de contrôle, dans une base de données de catalogue de récupération distincte. RMAN conserve les enregistrements nécessaires pour les sauvegardes, les journaux d'archive, etc. qui utilisent les métadonnées. La restauration et la récupération qui s'ensuivent en sont grandement simplifiées.

Une autre méthode de récupération consiste à utiliser les commandes du système d'exploitation pour la sauvegarde et SQL*Plus pour la récupération. Il s'agit de la méthode de sauvegarde et de récupération gérée par l'utilisateur.

RMAN automatise la sauvegarde et la récupération. La méthode gérée par l'utilisateur nécessite toutefois de conserver une trace de tous les fichiers et de toutes les sauvegardes de la base de données. Ainsi, sa robustesse et ses capacités simplifiées d'administration de base de données font de RMAN un outil parfaitement adapté aux opérations de sauvegarde. Les sections suivantes décrivent la procédure complète de sauvegarde et de récupération à l'aide de RMAN.

9.3.2 Configuration de variables d'environnement

  1. Configurez les variables d'environnement suivantes avec les valeurs appropriées avant d'utiliser RMAN :

    • ORACLE_HOME : répertoire d'installation du logiciel Oracle. Par exemple :

      ORACLE_HOME=/home/oracle/product/9ir2

    • CLASSPATH : chemins d'accès aux bibliothèques installées par Oracle. Par exemple :

      CLASSPATH=$CLASSPATH :/oracle/opt/oracle/product/9ir2/JRE :/oracle/opt/oracle/product/9ir2/jlib :/oracle/opt/oracle/product/9ir2/rdbms/jlib :/oracle/opt/oracle/product/9ir2/network/jlib

    • PATH : répertoire bin d'installation d'Oracle. Par exemple :

      PATH=$PATH :/home/oracle/product/9ir2/bin

9.3.3 Connexion à la base de données

Pour vous connecter à la base de données Oracle utilisée pour le stockage des données, choisissez l'une des méthodes suivantes :

  • Démarrez RMAN dans la ligne de commande du système d'exploitation sans établir de connexion à une base de données, c'est-à-dire en exécutant la commande RMAN sans spécifier d'option de connexion :

    $ rman RMAN> CONNECT TARGET /

  • Démarrez l'exécutable RMAN dans la ligne de commande du système d'exploitation en établissant une connexion à la base de données :

    $ rman TARGET /

Si la base de données est déjà montée ou ouverte, RMAN affiche un résultat du type :

	Recovery Manager: Release 9.2.0.0.0	
connected to target database: RMAN (DBID=1237603294)

La valeur DBID affichée est l'identificateur de la base de données cible.

Si la base de données cible n'est pas lancée, RMAN affiche le message suivant :

	connected to target database (not started)	
RMAN>   # the RMAN prompt is displayed

9.3.4 Démarrage de la base de données

  1. Démarrez la base de données à l'aide de la commande :

    RMAN> startup mount

    Si nécessaire, cette commande lance une instance Oracle et monte la base de données, mais sans l'ouvrir.

    Si le montage s'est déroulé normalement, le résultat suivant s'affiche :

    	Oracle instance started
    database mounted
    

    Dans le cas contraire, des messages d'erreur indiquent les causes de l'échec et proposent des solutions.

9.3.5 Sauvegarde de la base de données

Vous pouvez sauvegarder la base de données à l'emplacement par défaut sur le disque. L'emplacement par défaut est spécifique au système d'exploitation. Sous Linux, le chemin par défaut de stockage des fichiers de sauvegarde est $ORACLE_HOME/dbs.

Pour effectuer une sauvegarde complète des fichiers de données, des fichiers de contrôle et du fichier de paramètres actuels du serveur sur le type de périphérique par défaut (c'est-à-dire le disque), exécutez la commande de sauvegarde suivante à l'invite RMAN :

RMAN> BACKUP DATABASE;

Dans la commande ci-dessus, le paramètre FORMAT n'est pas spécifié, de sorte que RMAN donne automatiquement à chaque élément de la sauvegarde un nom unique et le stocke dans l'emplacement par défaut de l'OS concerné ($ORACLE_HOME/dbs sous Linux).

Pour spécifier un nom de fichier pour la sauvegarde, configurez le paramètre FORMAT dans la commande de sauvegarde :

RMAN> BACKUP DATABASE FORMAT ’/tmp/%U’;

%U génère un nom de fichier unique.

La commande de sauvegarde RMAN crée un jeu de sauvegardes, c'est-à-dire un objet logique contenant un ou plusieurs éléments de sauvegarde.

Le résultat de la commande de sauvegarde contient des informations essentielles sur la sauvegarde, comme l'illustre l'exemple suivant :

Starting backup at OCT 12 2001 19:09:48
using target database controlfile instead of recovery catalogal
located channel: ORA_DISK_1
channel ORA_DISK_1: sid=10 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current SPFILE in backupset
including current controlfile in backupset
input datafile fno=00001 name=/oracle/oradata/zenworks/system01.dbf
input datafile fno=00002 name=/oracle/oradata/zenworks/undotbs01.dbf
input datafile fno=00003 name=/oracle/oradata/zenworks/cwmlite01.dbf
input datafile fno=00004 name=/oracle/oradata/zenworks/drsys01.dbf
input datafile fno=00005 name=/oracle/oradata/zenworks/example01.dbf
input datafile fno=00006 name=/oracle/oradata/zenworks /indx01.dbf
input datafile fno=00007 name=/oracle/oradata/zenworks/tools01.dbf
input datafile fno=00008 name=/oracle/oradata/zenworks/users01.dbf
channel ORA_DISK_1: starting piece 1 at OCT 12 2001 19:09:56
channel ORA_DISK_1: finished piece 1 at OCT 12 2001 19:10:31
piece handle=/oracle/dbs/lvd6dtk1_1_1 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:39
Finished backup at OCT 12 2001 19:10:33

9.3.6 Récupération de la base de données

Vous pouvez récupérer un fichier de données restauré en appliquant les journaux « redo » archivés et en ligne, c'est-à-dire les enregistrements des modifications apportées à la base de données depuis la sauvegarde. Les sections suivantes fournissent des instructions sur deux méthodes de récupération de la base de données :

Récupération complète

La récupération complète nécessite d'utiliser toutes les données « redo » ou les sauvegardes incrémentales en plus de la sauvegarde d'une base de données, d'un espace de table ou d'un fichier de données, pour obtenir le résultat le plus à jour possible. On parle de « récupération complète » parce qu'Oracle applique à la sauvegarde toutes les modifications « redo » consignées dans les journaux archivés et en ligne. Généralement, une récupération complète de support est effectuée lorsqu'une défaillance du support a altéré des fichiers de données ou le fichier de contrôle.

  1. Pour effectuer une récupération complète de la base de données, exécutez la séquence de commandes suivante :

    RMAN> connect target / RMAN> run { 2> startup mount; 3> restore database; 4> recover database; 5> alter database open; 6> }

    Tous les fichiers de données sont restaurés, puis récupérés. RMAN applique les journaux archivés requis jusqu'à ce que la récupération soit complète.

  2. Une fois la restauration achevée, vérifiez que la zone de stockage des données est synchronisée avec la zone de stockage des objets. Pour connaître les instructions, reportez-vous à la Section 9.4, Synchronisation des zones de stockage des objets et des données.

Récupération incomplète

RMAN peut récupérer l'ensemble de la base de données en spécifiant une heure, un SCN ou un numéro de séquence de journal non actuel. Cette récupération est qualifiée d'incomplète car elle n'utilise pas la totalité des journaux « redo » disponibles. La récupération incomplète de l'ensemble de la base de données est également nommée récupération ponctuelle de base de données (DBPITR).

Vous pouvez être amené à effectuer une récupération incomplète de la base de données dans les situations suivantes :

  • Une défaillance du support détruit une partie ou la totalité des journaux « redo » en ligne.

  • Une erreur d'utilisation entraîne une perte de données, par exemple si un utilisateur efface une table accidentellement.

  • La récupération complète est impossible car un journal « redo » archivé est manquant.

Pour effectuer une récupération incomplète, restaurez tous les fichiers de données à partir des sauvegardes créées avant la date à laquelle la récupération est requise, puis ouvrez la base de données avec l'option RESETLOGS lorsque la récupération est achevée. L'opération RESETLOGS crée une nouvelle instance de la base de données, c'est-à-dire une base de données comportant une nouvelle série de numéros de séquence de journaux débutant à la séquence 1.

Fermez la base de données pour pouvoir effectuer une récupération incomplète.

Pour effectuer une récupération incomplète :

  1. Configurez la variable d'environnement de format d'heure :

    $ NLS_DATE_FORMAT="Mon DD YYYY HH24 :MI :SS"

  2. Exécutez la procédure suivante :

    $ rman target /RMAN> startup mount; RMAN> run { 2> set until time "to_date(’Mar 16 2005 10 :24 :00’, ’MM DD YYYY HH24 :MI :SS’)";3> restore database; 4> recover database; 5> }

    RMAN utilise la dernière sauvegarde créée avant l'heure indiquée dans la ligne « set until » pour restaurer les fichiers à leur emplacement par défaut. Il applique ensuite les journaux « redo » archivés (si nécessaire) pour récupérer la base de données.

    Deux autres paramètres peuvent être utilisés avec la commande set until : le SCN et les numéros de séquence de journal. Les SCN sont issus des journaux d'alerte. Recherchez le SCN d'un événement et récupérez un SCN antérieur. Par exemple :

    SET UNTIL SCN 1000
    
  3. Si la récupération se déroule normalement, ouvrez la base de données et réinitialisez les journaux en ligne :

    ALTER DATABASE OPEN RESETLOGS;

  4. Une fois la restauration achevée, vérifiez que la zone de stockage des données est synchronisée avec la zone de stockage des objets. Pour connaître les instructions, reportez-vous à la Section 9.4, Synchronisation des zones de stockage des objets et des données.

Nous conseillons de sauvegarder la base de données immédiatement, de préférence lorsqu'elle est montée (pour éviter les pertes de données possibles dans une base de données ouverte). La base de données étant une nouvelle instance, les sauvegardes effectuées avant l'opération RESETLOGS ne sont pas faciles à utiliser.

9.3.7 Fermeture de la base de données

  1. Exécutez la commande suivante pour fermer la base de données :

    RMAN> SHUTDOWN NORMAL;

    Cette commande démonte la base de données et arrête l'instance Oracle en cours d'exécution.