RESTORE POINT Oracle : Gérer les Points de Restauration SQL

Découvrez comment utiliser RESTORE POINT dans Oracle SQL : syntaxe, exemples pratiques, erreurs courantes et bonnes pratiques pour sécuriser vos données.

Illustration du tutoriel SQL Oracle : RESTORE POINT Oracle : Gérer les Points de Restauration SQL

null

Publicité

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ètreDescription
nom_pointNom unique attribué au restore point (30 caractères max).
AS OF SCNCrée le restore point à partir d’un SCN spécifique passé.
AS OF TIMESTAMPCrée le restore point à partir d’un horodatage passé.
GUARANTEE FLASHBACK DATABASEGarantit la possibilité de flashback même si les logs normaux ont été purgés.
PRESERVEEmpêche la suppression automatique du restore point.
CLEANUtilisé 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.

Publicité

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émentDétail
Objet OracleRESTORE POINT
Commande de créationCREATE RESTORE POINT nom [GUARANTEE FLASHBACK DATABASE]
Commande de suppressionDROP RESTORE POINT nom
Vue de consultationV$RESTORE_POINT
Utilisation principaleFLASHBACK DATABASE TO RESTORE POINT nom
Type recommandéGuaranteed Restore Point pour toute opération critique
PrérequisFlashback Database activé + Fast Recovery Area configurée
Après restaurationALTER DATABASE OPEN RESETLOGS obligatoire

Bonnes pratiques Oracle

  1. 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 dans V$RESTORE_POINT et évite toute confusion en cas d’urgence.
  2. 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

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é