Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
7 avril 2013 7 07 /04 /avril /2013 17:38

Hello,
Dans les précedents articles nous avons vu comment créer une standby physique et également comment faire un switchover. Nous allons maintenant parler de Dataguard Active et comment l'activer.
 

Qu'est ce que Dataguard Active ?

Bien que je vieillise, j'en suis pas encore à radoter, alors je vous invite à lire un article qui présente ce qu'est Dataguard Active : Oracle 11g & Dataguard Active

Alors juste pour remettre le contexte, le but est de pouvoir disposer de la standby en lecture seule sans stopper le mécanisme d'application des transactions entre la primaire & la standby.

Avant de commencer réellement, nous allons créer un petit schema de test.

 

 sqlplus system/*****@femme1 SQL> create user test identified by test; Utilisateur cree. SQL> grant connect,resource to test; Autorisation de privileges (GRANT) acceptee. SQL> alter user test default tablespace users; Utilisateur modifie. SQL> alter user test quota unlimited on users; Utilisateur modifie. SQL> connect test/test Connecte. SQL> create table ma_table (i number) tablespace users; SQL> insert into ma_table values (4); 1 ligne creee. SQL> commit; Validation effectuee. 

 

Histoire de ... vérifions que notre dataguard mis en place la dernière fois fonctionne toujours...

 dgmgrl sys/*****@FEMME1 DGMGRL for Linux: Version 11.2.0.1.0 - 64bit Production Copyright (c) 2000, 2009, Oracle. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected. DGMGRL> show configuration Configuration - plaisir Protection Mode: MaxPerformance Databases: femme1 - Primary database femme2 - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS DGMGRL> exit 

      Maintenant démarrons notre base standby en lecture seule.

 sqlplus sys/*****@femme2 as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 7 17:54:51 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connecte a : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> alter database open read only; Base de donnees modifiee. SQL> connect test/test@femme2 Connecte. SQL> select count(*) from ma_table; COUNT(*) ---------- 1 

 

Pas de surprise, ma base s'ouvre et ma table crée sur ma base primaire est présente avec une ligne. Depuis la primaire, nous allons insérer de nouvelles lignes.

 

 sqlplus test/test@femme1 SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 7 18:00:55 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connecte a : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> insert into ma_table values (8); 1 ligne creee. SQL> insert into ma_table values (9); 1 ligne creee. SQL> commit; Validation effectuee. 

Que se passe t-il du coté de la standby ?

 sqlplus test/test@femme2 SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 7 18:02:45 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connecte a : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select count(*) from ma_table; COUNT(*) ----------  3 

 

Petite surprise... je vois les deux lignes que je viens d’insérer sur la primaire alors que pourtant ma base secondaire est en lecture seule !!!! Génial ! me direz vous car finalement c'est cela le Dataguard Active.
Pas faux ! sauf que si vous avez relu l'article qui présente le Dataguard Active, il ne vous a pas échappé que ca n'était pas gratuit.... Du coup  potentiellement, je peux juste activer une option payante et ca:
-1/ Sans savoir que le dataguard Active existe
-2 /Je sais que ca existe, mais pas forcement que c'est une option payante.
C'est Oracle qui sera content au prochain audit de licences....

OK... Mais comment je fais pour ouvrir ma standby en lecture seule sans utiliser Dataguard Active ?

Depuis le broker, nous allons stopper la mise à jour de la standby

 dgmgrl sys/*****@FEMME1 DGMGRL for Linux: Version 11.2.0.1.0 - 64bit Production Copyright (c) 2000, 2009, Oracle. All rights reserved. Welcome to DGMGRL, type "help" for information. Connected. DGMGRL> edit database femme2 set state ='APPLY-OFF'; Succeeded. 

  Ajoutons des lignes à ma table sur la primaire

 

 sqlplus test/test@femme1 SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 7 18:19:28 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connecte a : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> insert into ma_table select * from ma_table; 3 ligne(s) creee(s). SQL> commit; Validation effectuee. SQL> select count(*) from ma_table; COUNT(*) ---------- 6 

Et maintenant ma standby....

 sqlplus test/test@femme2 SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 7 18:22:36 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connecte a : Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select count(*) from ma_table; COUNT(*) ----------  3 

 

Tout se passe comme prévu, je ne vois pas les nouvelles lignes... et c'est mieux ainsi si je ne dispose pas de la licence adéquate. Je peux toujours avoir ma base standby en lecture seule mais avec des données statiques. Il faut aussi tenir compte du fait que pendant tout le temps ou la base est en lecture seule, les transactions de la primaire ne sont plus appliquées. Et que cela rendra un switchover ou failover d'autant plus long.

 Il nous reste plus qu'a remettre notre dataguard en dans son mode d'origine.

 dgmgrl sys/****@femme2 DGMGRL> edit database 'femme2' set state ='APPLY-OFF'; Succeeded. DGMGRL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. DGMGRL> startup mount; ORACLE instance started. Database mounted. DGMGRL> edit database 'femme2' set state ='APPLY-ON'; Succeeded. DGMGRL> show configuration Configuration - plaisir Protection Mode: MaxPerformance Databases: femme1 - Primary database femme2 - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS 

Conclusion

 

Peut être que je m'y suis mal pris (ca n'est pas à exclure, n’hésitez pas à me faire part de vos remarques), toujours est-il que je me suis retrouvé relativement facilement avec l'option Dataguard qui est une option payante de l'Enterprise.
Ceci étant dit, on voit bien l’intérêt du Dataguard Active. Non seulement, on dispose d'un serveur de secours (classique) mais qui peut se transformer en serveur décisionnel.
Et si finalement le cout de cette cette licence permettait de faire sauter un serveur qui sert pour du décisionnel...

@+ LAO

 

Partager cet article
Repost0

commentaires

P
<br /> Salut, <br /> <br /> <br /> Chuis Pacman, j'ai aussi un orablog sur over-blog. (Par contre il n'est pas fait pour être utile, le mien)<br /> <br /> <br /> C'est quoi la mise en page de tes portions SQL*Plus ? (j'ai jamais été très satisfait du rendu de mes requêtes... dont la mise en forme me prends du temps en plus !)<br /> <br /> <br /> http://pacmann.over-blog.com/<br /> <br /> <br /> Merci, <br /> <br /> <br /> Pacman<br />
Répondre
L
<br /> <br /> Bonjour,<br /> <br /> <br /> Envois un mail à laurent.allio@googlemail.com, je te repondrai en retour.<br /> <br /> <br /> <br />