
null
—
RESTORE POINT Oracle : Créer et Gérer des Points de Restauration SQL
Le RESTORE POINT Oracle est un mécanisme puissant permettant de définir un repère nommé dans le temps, vers lequel une base de données peut être restaurée en cas de besoin. Utilisé dans des contextes de maintenance, de migration ou de tests critiques, le RESTORE POINT offre un filet de sécurité indispensable pour les administrateurs et développeurs Oracle souhaitant protéger l’intégrité de leurs données.
🧪 Envie de pratiquer ? Exécutez les exemples de cet article dans notre SQL Playground gratuit — aucun logiciel à installer.
—
Définition et utilisation du RESTORE POINT Oracle
Un RESTORE POINT est un objet de base de données Oracle qui enregistre un point précis dans le temps, associé à un numéro SCN (System Change Number). Il permet de revenir à cet état antérieur sans avoir à reconstruire un backup complet.
Oracle propose deux types de RESTORE POINT :
- Normal Restore Point : Enregistre simplement le SCN courant. Il peut être utilisé avec
FLASHBACK DATABASE, mais uniquement si les données Flashback sont encore disponibles dans la zone de récupération. - Guaranteed Restore Point : Garantit que le retour à ce point sera toujours possible, car Oracle conserve impérativement les blocs modifiés dans la zone de récupération (Fast Recovery Area). C’est le type recommandé pour les opérations critiques.
Cas d’usage en entreprise
- Avant une migration : Créer un Guaranteed Restore Point avant d’appliquer une mise à jour applicative majeure.
- Avant des batchs critiques : Protéger les données avant l’exécution d’un traitement de masse (purge, recalcul, import).
- Environnements de test : Réinitialiser rapidement une base à son état initial après une série de tests fonctionnels.
- Conformité et audit : Conserver un état connu de la base à une date précise à des fins réglementaires.
Prérequis : La fonctionnalité Flashback Database doit être activée sur l’instance Oracle (FLASHBACK DATABASE ON), et une Fast Recovery Area doit être configurée.
—
Syntaxe du RESTORE POINT Oracle
Création d’un RESTORE POINT
CREATE [CLEAN] RESTORE POINT nom_point
[AS OF SCN | TIMESTAMP valeur]
[GUARANTEE FLASHBACK DATABASE]
[PRESERVE];
Explication des paramètres essentiels
| Paramètre | Description |
|---|---|
nom_point | Nom unique attribué au restore point (30 caractères max). |
AS OF SCN | Crée le restore point à partir d’un SCN spécifique passé. |
AS OF TIMESTAMP | Crée le restore point à partir d’un horodatage passé. |
GUARANTEE FLASHBACK DATABASE | Garantit la possibilité de flashback même si les logs normaux ont été purgés. |
PRESERVE | Empêche la suppression automatique du restore point. |
CLEAN | Utilisé dans un contexte CDB/PDB pour créer un point de restauration propre. |
Suppression d’un RESTORE POINT
DROP RESTORE POINT nom_point;
Consulter les RESTORE POINTs existants
SELECT NAME, SCN, TIME, GUARANTEE_FLASHBACK_DATABASE, PRESERVE
FROM V$RESTORE_POINT;
Utilisation pour une restauration (Flashback Database)
FLASHBACK DATABASE TO RESTORE POINT nom_point;
Note : Cette commande doit être exécutée avec la base en mode MOUNT, pas OPEN.
—
Exemples pratiques de RESTORE POINT Oracle
Exemple 1 – Guaranteed Restore Point avant une migration applicative
Contexte métier : L’équipe technique s’apprête à déployer une nouvelle version du logiciel ERP. Avant toute opération, l’administrateur Oracle crée un restore point garanti pour pouvoir revenir à l’état initial si la migration échoue.
-- Étape 1 : Vérifier que Flashback Database est activé
SELECT LOG_MODE, FLASHBACK_ON FROM V$DATABASE;
-- Étape 2 : Créer un Guaranteed Restore Point avant la migration
CREATE RESTORE POINT avant_migration_erp_v3
GUARANTEE FLASHBACK DATABASE;
-- Étape 3 : Vérifier la création du restore point
SELECT NAME, SCN, TIME, GUARANTEE_FLASHBACK_DATABASE
FROM V$RESTORE_POINT
WHERE NAME = 'AVANT_MIGRATION_ERP_V3';
-- Résultat attendu :
-- NAME SCN TIME GUARANTEE_FLASHBACK_DATABASE
-- AVANT_MIGRATION_ERP_V3 1284756 14-JUN-25 08.00.00.000000000 YES
En cas d’échec de la migration, l’administrateur peut revenir à cet état précis :
-- Passer la base en mode MOUNT
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
-- Flashback vers le restore point
FLASHBACK DATABASE TO RESTORE POINT avant_migration_erp_v3;
-- Rouvrir la base en resetlogs
ALTER DATABASE OPEN RESETLOGS;
-- Supprimer le restore point après confirmation du succès
DROP RESTORE POINT avant_migration_erp_v3;
—
Exemple 2 – Normal Restore Point pour des tests fonctionnels répétés
Contexte métier : Une équipe QA doit exécuter plusieurs fois le même jeu de tests sur une base de données de recette. Plutôt que de recharger les données à chaque cycle, elle utilise un restore point pour réinitialiser rapidement la base entre chaque campagne de test.
-- Étape 1 : Créer un restore point au début des tests
-- (base dans un état stable avec les données de référence chargées)
CREATE RESTORE POINT debut_campagne_tests_juin2025;
-- Étape 2 : Exécuter les tests (modifications des données simulées)
-- INSERT, UPDATE, DELETE effectués par les scripts de test...
-- Étape 3 : Consulter tous les restore points disponibles
SELECT NAME, SCN, TIME, GUARANTEE_FLASHBACK_DATABASE
FROM V$RESTORE_POINT
ORDER BY TIME DESC;
-- Étape 4 : Réinitialiser la base entre deux campagnes
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
FLASHBACK DATABASE TO RESTORE POINT debut_campagne_tests_juin2025;
ALTER DATABASE OPEN RESETLOGS;
-- Étape 5 : Nettoyage après la fin de la dernière campagne
DROP RESTORE POINT debut_campagne_tests_juin2025;
Attention : Après un FLASHBACK DATABASE, la commande ALTER DATABASE OPEN RESETLOGS est obligatoire. Elle réinitialise les redo logs et invalide les sauvegardes précédentes.
—
Erreurs courantes avec RESTORE POINT Oracle
Erreur : ORA-38729 – Not enough flashback database log data
Message : ORA-38729: Not enough flashback database log data to do FLASHBACK.
Cause : Cette erreur survient lors de l’utilisation d’un Normal Restore Point (sans GUARANTEE FLASHBACK DATABASE). Oracle n’a pas conservé suffisamment de données Flashback dans la Fast Recovery Area, car celle-ci a été partiellement écrasée par de nouveaux logs.
Solution : Privilégier systématiquement l’option GUARANTEE FLASHBACK DATABASE pour toute opération critique. Ce type de restore point force Oracle à conserver les blocs modifiés nécessaires, quitte à saturer la Fast Recovery Area si elle est trop petite.
-- Bonne pratique : toujours utiliser GUARANTEE pour les opérations critiques
CREATE RESTORE POINT avant_operation_critique
GUARANTEE FLASHBACK DATABASE;
-- Vérifier la taille disponible dans la Fast Recovery Area
SELECT * FROM V$RECOVERY_FILE_DEST;
Conseil supplémentaire : Si la FRA est insuffisante, augmentez sa taille via le paramètre DB_RECOVERY_FILE_DEST_SIZE avant de créer un Guaranteed Restore Point de longue durée.
—
Résumé du RESTORE POINT Oracle
| Élément | Détail |
|---|---|
| Objet Oracle | RESTORE POINT |
| Commande de création | CREATE RESTORE POINT nom [GUARANTEE FLASHBACK DATABASE] |
| Commande de suppression | DROP RESTORE POINT nom |
| Vue de consultation | V$RESTORE_POINT |
| Utilisation principale | FLASHBACK DATABASE TO RESTORE POINT nom |
| Type recommandé | Guaranteed Restore Point pour toute opération critique |
| Prérequis | Flashback Database activé + Fast Recovery Area configurée |
| Après restauration | ALTER DATABASE OPEN RESETLOGS obligatoire |
Bonnes pratiques Oracle
- Nommez vos restore points de façon explicite : Incluez la date et le contexte dans le nom (ex.
AVANT_MIGRATION_ERP_V3_20250614). Cela facilite leur identification dansV$RESTORE_POINTet évite toute confusion en cas d’urgence. - Supprimez les restore points garantis dès qu’ils ne sont plus nécessaires : Un Guaranteed Restore Point conserve des données dans la FRA jusqu’à sa suppression. Laisser trop de points actifs peut saturer votre Fast Recovery Area et provoquer des erreurs sur les sauvegardes RMAN.
—
Aller plus loin sur Oracle SQL
Pour approfondir vos connaissances sur la gestion de la récupérabilité et la sécurisation des données Oracle, nous vous recommandons les sujets suivants :
- FLASHBACK DATABASE Oracle : Apprenez à utiliser la commande Flashback Database pour exploiter pleinement les RESTORE POINTs et remonter dans le temps au niveau instance.
- FLASHBACK TABLE Oracle : Découvrez comment restaurer une table individuelle à un état antérieur sans impacter l’ensemble de la base de données.
- RMAN Oracle – Sauvegarde et Récupération : Maîtrisez Oracle Recovery Manager pour mettre en place une stratégie de sauvegarde complète et complémentaire aux RESTORE POINTs.
Sur le même thème
- EXPLAIN PLAN Oracle : analyser les requêtes SQL
- GRANT Oracle : Gérer les Droits et Privilèges SQL
- SAVEPOINT Oracle : Gérer les points de sauvegarde SQL
- FLASHBACK TABLE Oracle : Restaurer une table facilement
- Flashback Query Oracle : Interroger les données passées
- ROLE Oracle SQL : Gérer les droits et privilèges
