Attention au Real Time Query !!!! by albanlepunk

Administration Oracle, dataguard Ajouter un commentaire

Comment se prémunir d’un passage non souhaité en Real Time Query.

Comme vous le savez, dans une configuration Dataguard, il est possible de faire de la consultation “temps réel”!
C’est à dire que la base applique les redologs qu’elle reçoit de sa base primaire tout en étant ouverte en lecture seule.
C’est un Option de l’Enterprise Edition : Le Real Time Query.

Seulement lorsque votre serveur va redémarer, si vous n’avez pas géré ce cas particulier dans votre script de redémarrage,
votre base standby va démarrer en startup normal et se mettre par défaut dans le mode Real Time Query.

SQL> SELECT open_mode FROM   V$DATABASE;

READ ONLY WITH APPLY

Comment faire pour ne pas utiliser malgré soi cette option payante?

il faut positionner (comme souvent) un paramètre caché : ‘_query_on_physical’
Il va nous prémunir d’un démarrage en mode Real Time Query en renvoyant une erreur “ORA-16669 : instance cannot be opened because the Active Data Guard option is disabled.”
Mais on pourra toujours ouvrir la base en lecture seule manuellement.

SQL> alter system set “_query_on_physical”=false scope=spfile;

System altered.

SQL> shutdown immediate
ORA-01109: database not open

Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  812529152 bytes

Fixed Size                  2264280 bytes

Variable Size             960781800 bytes

Database Buffers           54654432 bytes

Redo Buffers                3498640 bytes
Database mounted.
ORA-16669: instance cannot be opened because the Active Data Guard option is
disabled

SQL> alter database open read only;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
——————–
READ ONLY

On est donc sûr de ne pas utiliser cette option malencontreusement!!!

Faire un commentaire