
null
—
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
| Commande | Description |
|---|---|
BACKUP DATABASE | Sauvegarde complète de toute la base de données |
BACKUP INCREMENTAL | Sauvegarde uniquement les blocs modifiés (niveau 0 ou 1) |
BACKUP ARCHIVELOG ALL | Sauvegarde tous les journaux d’archivage disponibles |
RESTORE DATABASE | Restaure les fichiers de données depuis une sauvegarde |
RECOVER DATABASE | Applique les redo logs pour remettre la base en état cohérent |
CROSSCHECK BACKUP | Vérifie la disponibilité physique des sauvegardes référencées |
DELETE OBSOLETE | Supprime les sauvegardes obsolètes selon la politique de rétention |
REPORT NEED BACKUP | Indique 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.
—
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ément | Détail |
|---|---|
| Outil | Recovery Manager (RMAN) — natif Oracle depuis la v8 |
| Types de sauvegarde | Complète, incrémentale (niveau 0/1), archivelog |
| Formats de sauvegarde | Backupset (compressé/multiplexé) ou Image Copy |
| Stockage cible | Disque local, NFS, tape (SBT), Oracle Cloud (ZDM) |
| Connexion | rman TARGET / ou avec catalogue dédié |
| Rétention | Par durée (RECOVERY WINDOW) ou par nombre (REDUNDANCY) |
| Compatibilité | Oracle 8i → Oracle 21c (et 23ai) |
2 bonnes pratiques essentielles
- 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.
- 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 :
- Oracle Data Guard : mettre en place une base de secours pour la haute disponibilité
- Flashback Oracle : récupérer des données supprimées par erreur sans restauration complète
- Oracle ASM (Automatic Storage Management) : gérer le stockage des fichiers de base de données
Sur le même thème
- RESTORE POINT Oracle : Gérer les Points de Restauration SQL
- DATABASE LINK Oracle : Connexion entre bases de données
- REVOKE Oracle : Révoquer les privilèges SQL facilement
- CREATE USER Oracle : créer un utilisateur SQL facilement
- FLASHBACK DATABASE Oracle : restauration rapide
- AUDIT Oracle SQL : Surveiller et tracer les accès
