RMAN Oracle : Sauvegarde et Restauration de Base de Données

Découvrez RMAN Oracle : définition, syntaxe complète, exemples pratiques de sauvegarde et restauration. Guide expert pour DBA Oracle.

Illustration du tutoriel SQL Oracle : RMAN Oracle : Sauvegarde et Restauration de Base de Données

null

Publicité

RMAN Oracle : Guide Complet de Sauvegarde et Restauration

RMAN (Recovery Manager) est l’outil natif d’Oracle dédié à la sauvegarde, la restauration et la récupération des bases de données. Indispensable dans tout environnement de production Oracle, RMAN permet d’automatiser les opérations critiques de protection des données, de réduire les temps d’arrêt et de garantir la continuité des activités en cas d’incident. Ce guide vous présente son fonctionnement, sa syntaxe et ses bonnes pratiques.

🧪 Envie de pratiquer ? Exécutez les exemples de cet article dans notre SQL Playground gratuit — aucun logiciel à installer.

Définition et utilisation de RMAN Oracle

RMAN (Recovery Manager) est un utilitaire en ligne de commande livré en standard avec Oracle Database depuis la version 8. Il s’interface directement avec le noyau Oracle pour effectuer des opérations de sauvegarde et de restauration de manière cohérente, efficace et fiable.

Pourquoi utiliser RMAN plutôt qu’une sauvegarde manuelle ?

Contrairement à une copie système manuelle des fichiers, RMAN offre plusieurs avantages structurels :

  • Cohérence garantie : RMAN s’assure que les blocs sauvegardés sont cohérents, même pendant le fonctionnement de la base.
  • Compression et déduplication : les sauvegardes sont compressées nativement, réduisant l’espace de stockage nécessaire.
  • Détection de corruption : RMAN détecte automatiquement les blocs corrompus lors de la sauvegarde.
  • Sauvegarde incrémentale : seuls les blocs modifiés depuis la dernière sauvegarde sont sauvegardés, optimisant les durées et l’espace disque.
  • Intégration avec le catalogue : RMAN peut stocker l’historique des sauvegardes dans un catalogue centralisé (schema dédié dans une base Oracle).

Cas d’usage en entreprise

  • Sauvegarde quotidienne automatisée d’une base de production Oracle 19c
  • Restauration d’une base après corruption physique ou suppression accidentelle de fichiers
  • Clonage d’une base de production vers un environnement de test (DUPLICATE)
  • Récupération ponctuelle (Point-in-Time Recovery) suite à une erreur applicative
  • Archivage des redo logs pour assurer une fenêtre de récupération étendue

Syntaxe RMAN : commandes essentielles

RMAN s’utilise en se connectant à la base cible depuis le terminal système. Voici la syntaxe de connexion et les commandes fondamentales :

Connexion à RMAN

-- Connexion à la base locale avec les droits SYSDBA
rman TARGET /

-- Connexion à une base distante avec catalogue
rman TARGET sys/motdepasse@MABDD CATALOG rman_user/motdepasse@CATALOGDB

Principales commandes RMAN

CommandeDescription
BACKUP DATABASESauvegarde complète de toute la base de données
BACKUP INCREMENTALSauvegarde uniquement les blocs modifiés (niveau 0 ou 1)
BACKUP ARCHIVELOG ALLSauvegarde tous les journaux d’archivage disponibles
RESTORE DATABASERestaure les fichiers de données depuis une sauvegarde
RECOVER DATABASEApplique les redo logs pour remettre la base en état cohérent
CROSSCHECK BACKUPVérifie la disponibilité physique des sauvegardes référencées
DELETE OBSOLETESupprime les sauvegardes obsolètes selon la politique de rétention
REPORT NEED BACKUPIndique les fichiers nécessitant une nouvelle sauvegarde

Paramètres de configuration courants

-- Définir la politique de rétention à 7 jours
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

-- Activer la compression automatique des sauvegardes
CONFIGURE COMPRESSION ALGORITHM 'BASIC';

-- Définir le niveau de parallélisme pour les sauvegardes
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

-- Définir le répertoire de destination des sauvegardes
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/oracle/%U';

Exemples pratiques de RMAN Oracle

Exemple 1 — Sauvegarde complète d’une base de production

Contexte métier : Une entreprise de e-commerce souhaite effectuer une sauvegarde complète chaque dimanche soir avant la fermeture hebdomadaire de maintenance.

-- Connexion RMAN à la base PROD
rman TARGET /

-- Script de sauvegarde complète avec journaux d'archivage
RUN {
  -- Allocation de 2 canaux disque pour paralléliser la sauvegarde
  ALLOCATE CHANNEL c1 DEVICE TYPE DISK FORMAT '/backup/prod/%U';
  ALLOCATE CHANNEL c2 DEVICE TYPE DISK FORMAT '/backup/prod/%U';

  -- Sauvegarde complète de la base avec compression
  BACKUP AS COMPRESSED BACKUPSET DATABASE
    TAG 'FULL_BACKUP_DIMANCHE'
    INCLUDE CURRENT CONTROLFILE;

  -- Sauvegarde de tous les journaux d'archivage
  BACKUP ARCHIVELOG ALL DELETE INPUT
    TAG 'ARCHLOG_DIMANCHE';

  -- Libération des canaux
  RELEASE CHANNEL c1;
  RELEASE CHANNEL c2;
}

-- Vérification des sauvegardes créées
LIST BACKUP SUMMARY;

Cette commande crée un backupset compressé de toute la base, inclut le fichier de contrôle, et archive les redo logs. L’option DELETE INPUT supprime les journaux déjà sauvegardés pour libérer de l’espace.

Exemple 2 — Restauration et récupération suite à une corruption

Contexte métier : Le DBA d’une banque constate que le tablespace USERS est corrompu suite à une défaillance disque. Il doit restaurer uniquement ce tablespace sans interrompre les autres services.

-- Connexion RMAN
rman TARGET /

RUN {
  -- Mise hors ligne du tablespace corrompu
  SQL 'ALTER TABLESPACE users OFFLINE IMMEDIATE';

  -- Restauration des datafiles du tablespace USERS
  RESTORE TABLESPACE users;

  -- Application des redo logs pour récupérer jusqu'au dernier SCN cohérent
  RECOVER TABLESPACE users;

  -- Remise en ligne du tablespace une fois récupéré
  SQL 'ALTER TABLESPACE users ONLINE';
}

-- Vérification de l'état de la base après récupération
REPORT SCHEMA;

Cette approche permet une restauration partielle (tablespace recovery) sans avoir à arrêter toute la base Oracle, minimisant ainsi l’impact sur les utilisateurs en production.

Publicité

Erreurs courantes avec RMAN Oracle

Erreur : RMAN-06059 — Expected archived log not found

Message d’erreur typique :

RMAN-06059: expected archived log not found, loss of archived log compromises recoverability
ORA-19625: error identifying file /arch/1_105_987654321.arc

Cause : RMAN cherche un fichier de journal d’archivage référencé dans son catalogue ou dans le fichier de contrôle, mais ce fichier a été supprimé manuellement du système de fichiers sans passer par RMAN.

Solution : Ne jamais supprimer des fichiers d’archivage manuellement via l’OS. Utiliser exclusivement RMAN pour gérer la suppression :

-- Synchroniser le catalogue avec l'état réel du système de fichiers
CROSSCHECK ARCHIVELOG ALL;

-- Supprimer les références aux fichiers introuvables
DELETE EXPIRED ARCHIVELOG ALL;

-- Supprimer proprement les journaux obsolètes selon la politique
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

Bonne pratique : Configurez systématiquement la politique de rétention RMAN avant toute mise en production et ne gérez jamais les fichiers Oracle directement via le système d’exploitation.

Résumé : points clés de RMAN Oracle

ÉlémentDétail
OutilRecovery Manager (RMAN) — natif Oracle depuis la v8
Types de sauvegardeComplète, incrémentale (niveau 0/1), archivelog
Formats de sauvegardeBackupset (compressé/multiplexé) ou Image Copy
Stockage cibleDisque local, NFS, tape (SBT), Oracle Cloud (ZDM)
Connexionrman TARGET / ou avec catalogue dédié
RétentionPar durée (RECOVERY WINDOW) ou par nombre (REDUNDANCY)
CompatibilitéOracle 8i → Oracle 21c (et 23ai)

2 bonnes pratiques essentielles

  1. Tester régulièrement les restaurations : Une sauvegarde non testée est une sauvegarde dont on ne connaît pas la valeur réelle. Planifiez des exercices de restauration en environnement de test au moins une fois par mois.
  2. Utiliser un catalogue RMAN dédié : Stocker les métadonnées RMAN dans un catalogue centralisé (base Oracle séparée) plutôt que dans le seul fichier de contrôle garantit la survie des informations de sauvegarde même en cas de perte totale de la base cible.

Aller plus loin avec Oracle Database

Pour approfondir vos compétences en administration et protection des données Oracle, explorez ces sujets complémentaires :

Sur le même thème

Un nouveau tutoriel SQL par semaine

Nous ne spammons pas ! Consultez notre politique de confidentialité pour plus d’informations.

Publicité

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Publicité