RMAN

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Sauvegarde et restauration Oracle
Outil rman (Recovery Manager)
Base cible Target database
Voir aussi Sauvegarde (RMAN) · Récupération (RMAN) · Référentiel (RMAN) · Catalogue (RMAN) · Data Recovery Advisor (RMAN) · Flashback (RMAN)

RMAN (Recovery Manager) est l'outil en ligne de commande fourni par Oracle pour sauvegarder, restaurer et récupérer une base de données. Il s'appuie sur un référentiel (repository) décrivant la structure de la base cible (target database), ses fichiers de journalisation et ses sauvegardes.

Présentation

Le référentiel RMAN est stocké par défaut dans le fichier de contrôle (control file) de la base cible. Sa durée de rétention dépend du paramètre CONTROL_FILE_RECORD_KEEP_TIME (7 jours par défaut).

Il est possible d'externaliser ce référentiel dans un recovery catalog, une base dédiée qui permet de conserver l'historique des sauvegardes même en cas de perte de tous les fichiers de contrôle de la base cible — voir Catalogue (RMAN).

La FRA (Flash Recovery Area / Fast Recovery Area) est la zone de stockage gérée par Oracle pour les sauvegardes et fichiers de journalisation archivés. Elle se définit via :

DB_RECOVERY_FILE_DEST
DB_RECOVERY_FILE_DEST_SIZE

RMAN peut produire deux types de sauvegarde :

  • image copy : duplique les fichiers à l'identique ;
  • backup set : regroupe les blocs dans un jeu de sauvegarde propriétaire, éventuellement compressé.

Les sauvegardes RMAN s'exécutent implicitement avec le privilège SYSDBA.

Connexion en ligne de commande

Initialiser l'environnement puis se connecter à la base cible :

. oraenv
rman target /

Ou avec un compte explicite :

rman target sys/motdepasse

Lors de la connexion, le DBID de la base est affiché.

Exécuter un script de commandes avec journalisation :

rman cmdfile=backup.rcv log=backup.log append

Depuis l'invite RMAN :

@fichier          -- exécute un fichier de commandes
@@fichier         -- exécute un fichier situé dans le répertoire courant

SET ECHO ON | OFF
SPOOL LOG TO fichier [APPEND]
SPOOL LOG OFF

CONNECT CATALOG connexion   -- connexion au recovery catalog
CONNECT TARGET connexion    -- connexion à la base cible

HOST ['commande'] ;         -- exécute une commande système
SQL 'requête' ;              -- exécute une requête SQL

RUN
{
  ...
}

Configuration

Afficher la configuration courante :

SHOW ALL ;

Canaux

CONFIGURE CHANNEL DEVICE TYPE DISK
  FORMAT 'chemin/%U'
  MAXPIECESIZE 2G ;

CONFIGURE CHANNEL DEVICE TYPE DISK CLEAR ;   -- retour à la config par défaut

%U génère un nom de fichier unique dont la composition dépend de la nature de la sauvegarde (exemples de motifs sous-jacents) :

data-D-%d_id-%I_TS-%N_FNO-%f_%u   # image copy de fichier de données
arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u # image copy d'un fichier de journalisation archivé
cf-D_%d-id-%I_%u                  # image copy du fichier de contrôle

Signification des variables :

Variable Signification
%d Nom de la base
%I DBID
%N Nom du tablespace
%f Numéro de fichier de données
%e Numéro de séquence du fichier de journalisation archivé
%h Numéro d'instance (thread)
%s Numéro du backup set
%p Numéro de l'élément de sauvegarde
%c Numéro de copie de l'élément (1 si la sauvegarde n'est pas multiplexée)
%u Chaîne de 8 caractères basée sur le numéro du jeu de sauvegarde

Politique de rétention

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS ;
CONFIGURE RETENTION POLICY TO REDUNDANCY n ;
CONFIGURE RETENTION POLICY CLEAR ;   -- retour au défaut

Sauvegarde automatique du fichier de contrôle

CONFIGURE CONTROLFILE AUTOBACKUP ON ;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'fichier_%F' ;

Arborescence de la zone de récupération rapide :

<DB_UNIQUE_NAME>/<TYPE>/<DATE>

<DB_UNIQUE_NAME> : nom de la base
<TYPE>           : sous-répertoire selon le type de fichier (archivelog, autobackup, backupset, controlfile, datafile)
<DATE>           : AAAA_MM_JJ (absent pour control file et datafile)

Règles de nommage par défaut (OMF) :

Fichier de journalisation         : o1_mf_<i>_<s>_<u>_.log
Copie image de fichier de données : o1_mf_<t>_<u>_.dbf
Copie image de fichier de contrôle: o1_mf_<a>_<u>_.ctl
Jeu de sauvegarde                 : o1_mf_<c>_<a>_<u>_.bkp
Sauvegarde automatique            : o1_mf_s_<h>_<u>_.bkp

<t> : nom du tablespace
<u> : chaîne d'unicité
<g> : numéro du groupe (fichiers de journalisation)
<i> : numéro d'instance (fichiers de journalisation archivés)
<s> : numéro de séquence (fichiers de journalisation archivés)
<a> : nom donné à la sauvegarde
<c> : chaîne de 5 caractères correspondant au contenu de la sauvegarde
<h> : horodatage de la sauvegarde automatique

Commande VALIDATE

Permet de valider une configuration ou un jeu de sauvegarde sans restaurer réellement (dry-run) :

VALIDATE DATABASE ;
VALIDATE DATAFILE liste_num_ou_nom ;
VALIDATE TABLESPACE system, sysaux ;
VALIDATE CURRENT CONTROLFILE ;
VALIDATE SPFILE ;
VALIDATE ARCHIVELOG ALL ;
VALIDATE BACKUPSET liste_clefs ;
VALIDATE RECOVERY AREA ;

Voir aussi