RMAN et Data Guard 11g (Part 5) : Snapshot Standby Database

Peut-être ma fonctionnalité préférée ! En 11g, la Standby peut-être utilisée pour faire des tests tout en garantissant la sécurité de sa base de données primaire. Cette fonctionnalités appelées Snapshot Standby Database vous permet d’utiliser votre Standby comme une pré-production et de résoudre 2 problèmes simultanément qui sont :

  • Comment avoir une pre-production représentative de la production ?
  • Comment utiliser la pre-production comme système de secours ?

Le principe de fonctionnement de la « Snapshot Standby Database » est certes complètement attendue mais la simplicité de sa mise en œuvre n’en est pas moins étonnante. Dans son principe, voila comment ça marche :

  • Pour commencer :
    • Le système crée un « guaranteed restore point » au moment ou votre Standby devient Snapshot Stanby
  • Lorsque vous faites vos tests :
    • La Standby est ouverte en Read-Only et les flashback logs vous permettront de vous resynchroniser le moment voulu avec votre base de données primaire
    • Pendant vos tests, la base de données continue à recevoir les archivelogs de la base de données primaire. De cette manière en cas de crash de la primaire, vous disposerez de tous les éléments pour reconstituer la standby
    • (Vous travaillez sur une nouvelle incarnation de votre base de données puisque celle-ci sera ouverte avec un open resetlogs)
  • Pour finir :
    • Une simple instruction ramène votre standby à son point de restauration grâce à la Flashback database
    • Les logs transmis sont appliqués et la Standby resynchronisée avec sa base de données primaire

Nous supposerons que vous avez déjà une standby constituée avec le Broker. Vous allez vite comprendre à quel point c’est vraiment simple.

1- Activer Flashback Database sur la Standby

(Si ce n’est pas déja le cas)

alter system
set db_recovery_file_dest_size=2G
scope=both;

System altered.

alter system
set db_recovery_file_dest=
'/u01/app/oracle/flash_recovery_area'
scope=both;

System altered.

alter database mount;

Database altered.

alter database flashback on;

Database altered.

2- Convertir la Standby en Snapshot Standby

Sur la standby :

sqlplus / as sysdba
ALTER DATABASE CONVERT TO SNAPSHOT STANDBY

dgmgrl
connect /

DGMGRL> show configuration;

Configuration
Name: arkzoyd
Enabled: YES
Protection Mode: MaxPerformance
Databases:
ORCL - Primary database
GARK - Snapshot standby database

Fast-Start Failover: DISABLED

Current status for "arkzoyd":
SUCCESS

3- Tester votre application

  • Sur la standby
create table gark_snap(id number) tablespace users;

Table created.

SQL> insert into gark_snap values (2);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from gark_snap;

ID
----------
2
  • Sur la primaire
col name format a10
select NAME, SEQUENCE#, ARCHIVED, APPLIED
from v$archived_log
where dest_id=2
and sequence#>=30
order by sequence#;

NAME SEQUENCE# ARC APP
---------- ---------- --- ---
gark 30 YES YES
gark 31 YES NO
gark 32 YES NO
gark 33 YES NO

alter system switch logfile;

System altered.

select NAME, SEQUENCE#, ARCHIVED, APPLIED
from v$archived_log
where dest_id=2
and sequence#>=30
order by sequence#;

NAME SEQUENCE# ARC APP
---------- ---------- --- ---
gark 30 YES YES
gark 31 YES NO
gark 32 YES NO
gark 33 YES NO
gark 34 YES NO

4- Revenir em mode standby

shutdown immediate;
startup nomount;

alter database
convert to physical standby;

shutdown;

startup mount;

alter database
recover managed standby database
disconnect;

Sur la primaire après un petit moment, ou après avoir change de log si vous voulez accélérer le processus, vous constaterez que les archives sont de nouveau automatiquement appliquées :

set pages 1000
col name format a10
select NAME, SEQUENCE#, ARCHIVED, APPLIED
from v$archived_log
where dest_id=2
and sequence#>=30
order by sequence#;

NAME SEQUENCE# ARC APP
---------- ---------- --- ---
gark 30 YES YES
gark 31 YES YES
gark 32 YES YES
gark 33 YES YES
gark 34 YES YES
gark 35 YES YES
gark 36 YES YES
gark 37 YES NO

Et voilà ! Comme si nous n’avions jamais fait de tests et les archives ont toujours été transmises à la standby.

-Grégory!

1 réflexion sur “RMAN et Data Guard 11g (Part 5) : Snapshot Standby Database”

Les commentaires sont fermés.