RMAN et Data Guard 11g (Part 4) : Select et Standby Physique

En 11g, vous pouvez exécuter des ordres SELECT alors que la base de données standby est en train de d’appliquer les fichiers logs de la base de données primaire. Une fois votre standby créée, il suffit de vous connecter et d’opérer quelques ordres très simples :

1- Configurer votre base de donnees standby pour qu’elle puisse etre ouverte en read-only

Il est possible que vous ayez a modifier plusieurs chose sur la standby pour pouvoir l’ouvrir en read-only. Par exemple, audit_trail ne doit pas être égal à DB :

alter system set audit_trail=xml scope=spfile;

Il faut que vous ayez un fichier temporaire valide pour vos tablespaces temporaires sur la standby :

shutdown immediate;

startup mount;

alter database recover managed standby database cancel;

alter database
tempfile '/u01/app/oracle/oradata/ORCL/temp01.dbf'
drop;

alter tablespace TEMP
add tempfile '/u01/app/oracle/oradata/GARK/temp01.dbf'
size 10M;

2- Démarrer la Standby en Read-Only et démarrer le processus d’apply

Simplement les 2 commandes qui suivent :

alter database open read only;

alter database recover managed standby database disconnect;

Remarque :
Le processus d’apply ne doit pas être démarrer pour passer la base de données en Read-Only. Si ce n’est pas votre cas, utilisez la commande qui suit sur la standby avant de passer la standby en read-only :

alter database recover managed standby database cancel;

3- Tester le fonctionnement de votre standby :

Voici un test simple pour visualiser le fonctionnement de cette nouvelle possibilité des Standby physiques :

3.a- sur la Standby :

SQL> select * from gark;
select * from gark
*
ERROR at line 1:
ORA-00942: table or view does not exist

3.b- sur la primaire :

SQL> create table gark(id number)
2 tablespace users;

Table created.

SQL> insert into gark values (1);

1 row created.

SQL> commit;

Commit complete.

SQL> alter database switch logfile;

Remarque :
Si votre base de donnees fonctionne en Real-Time Apply, le switch logfile est inutile.

3.c- Sur la Standby :

SQL> select * from gark;

ID
----------
1

-Grégory!