Procédure flashback oracle

Les techniques de flashback sont un ensemble de fonctionnalités proposées par Oracle qui permettent de voir l’état passé de données, ou de ramener une table ou la totalité de la base de données dans le passé. Les fonctionnalités proposées sont les suivantes :

  • Flashback Query : permet de lire les données telles qu’elles étaient à un instant dans le passé (appary en version 9i).
  • Flashback Version Query : permet de voir toutes les versions d’une ligne sur un certain intervelle de temps (apparu en version 10).
  • Flashback Transaction Query) : permet de voir les modifications réalisées par une ou plusieurs transactions sur un certain intervalle de temps (apparue en version 10).
  • Flashback Transaction : permet d’annuler les modifications d’une transaction, et de ses transactions dépendantes( apparue en version 11).
  • Flashback Data Archive (Oracle Total Recall) : permet de conserver sur le long terme, toutes les modifications apportées à une table (apparue en version 11).
  • Flashback Table : permet de ramener une table dans l état où elle était, juste avant sa suppression (apparue en version 10).
  • Flashback Database : permet de ramener la totalité de la base de données dans l’état où elle était à un certain moment dans le passé (apparue en version 11).

Seule la fonctionnalité Flashback Query est disponible dans toutes les éditions de la base de données (et donc notamment en Standart Edition).

La fonctionnalité Flashback Data Archive, est une option de l’Entreprise Edition et nécessite donc, une licence supplémentaire.

Les autres fonctionnalités de Flashback nécessitent l’Entreprise Edition, mais sans option supplémentaire. Les fonctionnalités de Flashback de requête (Flashback Query, Flashback Version Query et Flashback Transaction Query), et la fonctionnalité de Flashback Table, utilisent les informations d’annulation pour revenir en arrière.

Le paramètre UNDO_RETENTION et le tablespace d’annulation doivent donc être correctement dimensionnés, si vous souhaitez pouvoir retourner loin dans le passé.

 

Contexte :

Lorsqu’il sera nécessaire de faire un retour arrière sur une base avec flashback activé ou de mettre en place le flhasback sur une base.

Cette procédure ne s’applique pas sur un serveur en cluster ou sur un Dataguard, elle doit être appliquée sur un serveur individuel,

même si plusieurs actions ci-dessous sont possible sur un cluster ou un Dataguard

 

 

Étapes à suivre par le service Production Informatique :

–          Vérification des pré-requis

–          Création d’un point de restauration

–          Restaurer un point de sauvegarde

–          Maintenance des fichiers de flashback

 

Formulaire transmis par NourY Solutions (Prestataire sur l’administration des bases de données) au service Production Informatique

 

1.1    Pré-requis:

 

    • Connecter en sys
    • Base oracle doit être en version Entreprise
    •  
    • Vérifier l’environnement, la commande «  ls env:ORACLE* »  doit retourner les valeurs suivantes :
  • ORACLE_BASE        D:\Oracle
  • ORACLE_SID          ORCL
  • ORACLE_HOME     D:\Oracle\product\11.2.0\dbhome_1
  • La base doit être en mode archivelog
  •  Le flashback doit être activé
  •  db_recovery_file_dest et db_recovery_file_dest_size doivent être définir
  •   Le temps de rétention pour effectuer une opération de flashback

 

sqlplus / as sysdba

SQL> SELECT FLASHBACK_ON FROM V$DATABASE;

FLASHBACK_ON

——————-

NO

 

 

Activation du flashback et archive log

 

SQL> CONNECT / AS SYSDBA
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;

 

En vervsion 11R2 si la base est en archivelog, l’activation du flashback  ne nécessite pas l’arrêt de la base la commande

ALTER DATABASE FLASHBACK ON ou ALTER DATABASE FLASHBACK OFF,

permet d’activer et de désactiver le mécanisme de flashback .

 

Verification

 

SQL> CONNECT SYSTEM/manager
SQL> SELECT FLASHBACK_ON FROM V$DATABASE;
FLASHBACK_ON
-------------------
YES

 

Verification du repertoire des archivelogs

 

SQL> show parameter db_recovery_file_dest

 

 

ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = ‘+BP’ SCOPE=SPFILE;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 100G SCOPE=SPFILE;

 

 

 

Il faut correctement dimensionner la taille afin que l’emplacement puisse stocker les fichiers archive log de la base et les fichiers .flb

 

 

 Configuration du temps de rétention des informations de logs FlashBack.

Ces fichiers vont contenir les informations d’une certaine période. Cette période est définie par le paramètre : DB_FLASHBACK_RETENTION_TARGET.

Ce paramètre correspond au temps (en minutes) de conservation de ces journaux.

Si, par exemple, ce temps est réglé à 1440 (par défaut), alors il sera possible de revenir en arrière, au plus loin, une journée (24*60) avant l’opération.

 

 

1.2       Création d’un point de restauration :

 

2      ATTENTION : un point de restauration garantie utilise de l’espace disque il faut donc le détruire quand il n’est plus nécessaire.

 

Se connecter a oracle sur la base primaire avec sqlplus : sqlplus / as sysdba

 

SQL> create restore point XXXXX guarantee flashback database ;

 

 

SQL> SELECT * FROM V^$RESTORE_POINT ;

Ou

alter session set nls_date_format=’dd/mm/yy hh24:mi:ss’;

 

select to_char(oldest_flashback_time,’DD/MM/YYYY HH24:MI’) from v$flashback_database_log;

(retourne la liste des points de restauration avec leur nom, le SCN associé et la date et l’heure de création)

 

 

1.3 Restaurer un point de backup :

 

Arrêt la base :

SQL>  shutdown immediate ;

Redémarrer la base en mode mount :

SQL> startup mount ;

 

Executer le flashback :

Si sur un point de restauration :

SQL> flashback database to restore point XXXXXX ;

 

Si sur un numéro de séquence :

SQL> flashback database to SCN NNNN ;

 

Si sur une date et heure :

SQL> flashback database to timestamp to_timestamp (‘9999-99-99 99 :99 :99′,’YYYY-MM-DD HH24:MI:SS’);

Remplacer les 9 par les valeurs de la date et  l’heure souhaitée.

 

 

Ouvrir la base de données :

SQL> ALTER DATABASE OPEN RESETLOGS ;

 

– l’opération nécessite une remise à zéro des journaux de transaction (option OPEN RESETLOGS) et donc une nouvelle incarnation de la base.

 

Pour savoir le SNC courant de la base :

 

SELECT TO_CHAR(SYSDATE, ‘DD/MM/YYY HH24:MI:SS’) « SYSDATE »,

dbms_flashback.get_system_change_number « SCN »

FROM dual;

 

2.1                 Maintenance des fichiers de flashback

Lister les points de sauvegarde avant suppression

2.2 liste des flashbacks :

--

-- List Flashback Log Details.
--

SET PAUSE ON
SET PAUSE 'Press Return to Continue'
SET PAGESIZE 60
SET LINESIZE 300
SET VERIFY OFF

COLUMN "Log NO" FOR 9,999
COLUMN "Thread No" FOR 99
COLUMN "Seq No" FOR 99
COLUMN name FOR A50
COLUMN "Size(GB)" FOR 999,999
COLUMN "First Chg No" FOR 999,999,999,999,999,999

ALTER SESSION
     SET nls_date_format='DD MON YYYY hh24:mi:ss'
/

SELECT
     log# as "Log No",
     thread# as "Thread No",
     sequence# as "Seq No",
     name,
     bytes/1024/1024/1024 as "Size(GB)",
     first_change# as "First Chg No",
     first_time
FROM
   v$flashback_database_logfile
ORDER BY first_time
/

 

2.3  Taille d’un flashback :

--
-- List the Flashback Logging Size.
--

SET PAUSE ON
SET PAUSE 'Press Return to Continue'
SET PAGESIZE 60
SET LINESIZE 300
SET VERIFY OFF

SELECT
     estimated_flashback_size/1024/1024/1024 "EST_FLASHBACK_SIZE(GB)"
FROM
     v$flashback_database_log
/

2.4 Suppression d’un point de restauration garantie :

Se connecter à oracle sur la base primaire avec sqlplus : sqlplus / as sysdba

SQL> drop restore point XXXXXX ;

 

La suppression d’un point de restauration surprime automatiquement les fichiers dans le FRA(Fast Recovery Area) concerné par ce point de restauration ,

toute fois  dans le cas d’une suppression manuelle des fichiers , le mécanisme de flashback doit être désactivé avant de supprimer les fichiers  dans  l’ OS.

 

 

 

 

 

FIN DE LA PROCEDURE

Post Comment

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