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

LAMI DBA

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 !

 

commentaires

Articles autour des SGBD Oracle, SQL Server & PostgreSQL

A propos de LAMI-DBA

Le Blog LAMI-DBA est la fusion de deux blogs existants, celui de LAurent (laodba) et celui de MIckael (dbafaq), deux DBA passionnés des sgbd, et particulièrement d'Oracle.

 

Laurent, 47 ans, Expert Oracle & MS SQL Server, Team Leader, dit "Le Taz", Certifié Expert RAC 11G, Exadata Implementation Specialist, OCA 11G, 

Profil Linkdin

 

 

 

Mickael, 37 ans, Expert Oracle, dit "Batman", Certifié Expert RAC 11G, OCP 11G, OCP 10G,

Profil Linkdin      

 

Hébergé par Overblog