Dataguard : Snapshot Standby

LinkedIn 0
Twitter
Facebook 0
Google+ 0

Dataguard : Snapshot Standby

Lorsque l’on souhaite disposer d’une base de données standby permettant l’accès en consultation, Oracle propose la fonctionnalité Active Dataguard. Cette dernière consiste en le fait d’ouvrir une base de données standby, qui sera implicitement ouverte en mode « READ ONLY WITH APPLY ».

Cette fonctionnalité est très puissante car elle permet simultanément l’application des redo en provenance de la base primaire, et la consultation des données ainsi rafraichies en temps réel. Son gros défaut cependant est son coût, puisque l’option est soumise à licence. Il existe cependant une solution similaire qui utilise une technologie faisant partie de l’édition Enterprise, la fonctionnalité de SNAPSHOT STANDBY.

Cette fonctionnalité permet de convertir à la demande une base de données PHYSICAL STANDBY en SNAPSHOT STANDBY. Lors de cette conversion, un snapshot de la base de données est pris. A partir de ce moment là, la standby sera ouverte en mode READ-WRITE, et ce jusqu’à la conversion inverse en PHYSICAL STANDBY, qui déclenchera la restauration du snapshot, ainsi que la reprise de l’application des redo logs en provenance de la primaire.

On peut alors par exemple définir deux phases dans une journée : la nuit la base standby est en mode nominal (physical standby). Le matin un script planifié va convertir la base de données en snapshot database, elle sera alors ouverte en READ-WRITE. La journée la base est consultable et modifiable, ce qui permet d’accommoder des tests sur des données iso-production, en plus de la simple possibilité de consultation de l’Active Dataguard.

Mise en place

Nous allons voir comment mettre en place cette fonctionnalité sur une installation Dataguard basique en version 12.1.0.2.

DB_UNIQUE_NAME DATRABASE_ROLE DB_NAME HOSTNAME TNS DGMGRL
OMEGA_PRI PRIMARY OMEGA ORAPRI OMEGA_PRI_DGMGRL
OMEGA_STD STANDBY OMEGA ORASTD OMEGA_STD_DGMGRL

La base de données standby au status MOUNT. La configuration du Dataguard broker est déjà en place :

Depuis la primaire, se connecter au broker avec authentification par fichier de mot de passe, l’authentification OS étant à proscrire pour certaines fonctions du broker :

Convertir la base physical standby en snapshot standby via la commande suivante :

A partir de ce moment, la base de données standby est ouverte en lecture/écriture avec le rôle de SNAPSHOT DATABASE :

On pourra alors à notre convenance créer, modifier utilisateurs et objets, modifier des données etc. afin d’accommoder des cas de test.

Une fois les tests réalisés sur la base de données SNAPSHOT, on peut la reconvertir en son état initial PHYSICAL STANDBY via le Dataguard broker :

La base de données est désormais reconvertie en PHYSICAL STANDBY, et de ce fait resynchronisée avec la primaire. Un coup d’œil à la base standby nous montre que l’utilisateur de test créé précédemment n’existe plus.

On voit donc l’intérêt de cette fonctionnalité. On peut imaginer une conversion chaque matin en SNAPSHOT STANDBY, avec retour en PHYSICAL STANDBY le soir. Ce genre de planification permettrait de faire des tests unitaires en journée qui sont effacés chaque soir, et remplacer le classique rafraichissement via DUPLICATE ou restore de backup. On peut aussi imaginer garder la standby en mode SNAPSHOT pour plusieurs jours pour réaliser des tests plus poussés sur la durée.

 

LinkedIn 0
Twitter
Facebook 0
Google+ 0

Laisser un commentaire

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