Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
LAMI DBA

Articles autour des SGBD Oracle, SQL Server & PostgreSQL

Dataguard - Snapshot standby

Hello,
Un environnement dataguard est constitué d'une base primaire et à minima d'une base de secours. Bien souvent cette base de secours est laissé à son rôle principale qui est de prendre le relais si necessaire.
Cependant votre base de secours peut être bien plus. Il peut nous arriver par exemple de vouloir vérifier  l'impact d'un nouvel index sans pour autant y a aller directement sur la base de production... Et qu'est ce qui est plus proche d'une base de production que ma standby database... RIEN

Seul hic, ma standby database est en mode READ ONLY.
Pas de soucis ! Oracle a pensé à tout...
Petit rappel de mon configuration : J'utilise le broker (car j'aime bien) mais on pourrait s'en sortir sans;
 

DGMGRL>

DGMGRL> show configuration

Configuration - mapogos

  Protection Mode: MaxPerformance

  Members:

  rastadb   - Primary database

    rastastby - Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:

SUCCESS   (status updated 54 seconds ago)


Et comme je le disais plus haut, ma base est en read-only.

 

SQL>

SQL> select database_role,open_mode from v$database;

DATABASE_ROLE    OPEN_MODE

--------------  --------------------

PHYSICAL STANDBY MOUNTED

SQL>


Je vais créer un snapshot de ma standby et une fois cela effectué, je pourrai travailler en lecture écriture dessus. Une fois mon test terminé, il me suffira de la reconvertir en standby database. Elle reviendra bien sur à son état  avant "tests", et reprendra son role de base de secours.

DGMGRL>

DGMGRL> convert database rastastby to  SNAPSHOT STANDBY;

Converting database "rastastby" to a Snapshot Standby database, please wait...

Database "rastastby" converted successfully

DGMGRL>


Ceci étant fait...

SQL>

SQL> select open_mode,database_role from v$database;

OPEN_MODE            DATABASE_ROLE

----------           ----------------

READ WRITE           SNAPSHOT STANDBY

SQL>


Je peux tout à fait maintenant créer une nouvelle table ou faire ce que bon me semble (dans la limite du raisonnable).

SQL> connect lao/*****

Connected.

SQL>

SQL>

SQL> create table teste2 as select * from user_objects;

Table created.


Une fois mes tests terminés, je n'oublie évidemment pas de reconvertir ma base en physical standby... C'est quand même son objectif premier ;)

 

DGMGRL> convert database rastastby to physical standby;

Converting database "rastastby" to a Physical Standby database, please wait...

Operation requires a connection to database "rastadb"

Connecting ...

Connected to "rastadb"

Connected as SYSDBA.

Oracle Clusterware is restarting database "rastastby" ...

Continuing to convert database "rastastby" ...

Database "rastastby" converted successfully

DGMGRL>


on peut vérifier que tout s'est bien passé.

SQL>

SQL> select open_mode,database_role from v$database;

OPEN_MODE            DATABASE_ROLE

-------------------- ----------------

MOUNTED              PHYSICAL STANDBY

 


Nous sommes de nouveau en mount, et notre base a repris son rôle de physical standby.


Remarque : pour que tout ceci fonctionne, il faut que FLASHBACK DATABASE soit activé.. mais pas d’inquiétude... si ce n'est pas le cas, Oracle se charge de tout pendant la conversion.


Enjoy !

 

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article