Modifier la rétention de sauvegarde sur un Dataguard

Si vous devez changer des paramètres RMAN sur un Dataguard, l’opération n’est pas aussi rapide que sur une standalone.
En effet, si vous n’utilisez pas un catalogue RMAN, les paramètres sont enregistrés dans les controlfiles qui ne sont pas modifiables sur un DG.
Le but de l’opération consiste donc à modifier le paramètre sur la primaire, sauvegarder le controlfile, et restaurer le nouveau controlfile sur la base secondaire.

Voici le déroulement des opérations :
Sur la base primaire :

  • Modifier le paramètre RMAN et Sauvegarder le fichier
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 days;
RMAN>BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT '/u01/mydb/controlfiles/standby.ctl' ;
  • Transférer le fichier de contrôle sur le serveur de la base secondaire (ex sous linux)
[oracle@primary ~]$ scp /u01/mydb/controlfiles/standby.ctl dataguard:/u01/mystdby/tmp/
  • Arrêter le transport des redologs entre les bases, ainsi que l’application des redologs sur la secondaire
[oracle@primary ~]$ dgmgrl
DGMGRL> connect /
DGMGRL> show configuration
Configuration - mydb
Protection Mode: MaxPerformance
 Databases:
 mydb - Primary database
 mystdby - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
 SUCCESS
DGMGRL> edit database mystdby set state='APPLY-OFF' ;
 Succeeded.
 DGMGRL> edit database mydb set state='TRANSPORT-OFF' ;
 Succeeded.

Sur la base secondaire :

  • Arrêt du broker et redémarrage de la base en nomount
SQL> alter system set dg_broker_start=false scope=both ;
System altered.
SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount ;
  • Restaurer le controlfile
oracle@dataguard ~]$ rman target /
 Recovery Manager: Release 11.2.0.3.0 - Production on Wed Sep 10 12:21:24 2012
 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
 connected to target database: MYDB (not mounted)
 RMAN> restore standby controlfile from '/u01/mystdby/tmp/standby.ctl' ;
Starting restore at 10-SEP-12
 using target database control file instead of recovery catalog
 allocated channel: ORA_DISK_1
 channel ORA_DISK_1: SID=10 device type=DISK
channel ORA_DISK_1: restoring control file
 channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
 output file name=/u01/fra/mystdby/controlfile/o1_mf_85qgf5fz_.ctl
 Finished restore at 10-SEP-12
  • Ouvrir la base
SQL> alter database mount;
database mounted
  • Mettre à jour le catalogue de données via les commandes :
RMAN> catalog start with '/u01/mystdby/datafile/';
RMAN> switch database to copy;
  • Nettoyer les redologs :
SQL> select group# from v$log ;
GROUP#
 ----------
 1
 3
 2
SQL> alter database clear logfile group 1 ;
SQL> alter database clear logfile group 2 ;
SQL> alter database clear logfile group 3 ;
SQL> select group# from v$standby_log ;
GROUP#
 ----------
 4
 5
 6
SQL> alter database clear logfile group 4 ;
SQL> alter database clear logfile group 5 ;
SQL> alter database clear logfile group 6 ;
  • Redémarrer le broker
SQL> alter system set dg_broker_start=true scope=both ;

Sur la base primaire :

  • Réactiver le transport et l’application des redologs, puis vérifier le status de dgmgrl
DGMGRL> connect /
DGMGRL> edit database mystdby set state='APPLY-ON' ;
 Succeeded.
DGMGRL> edit database mydb set state='TRANSPORT-ON' ;
Succeeded.
DGMGRL> show configuration
Configuration - mydb
Protection Mode: MaxPerformance
 Databases:
 mydb - Primary database
 mystdby - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
 SUCCESS
  • Vérifier l’application des redologs
SQL> select sequence#,applied from v$archived_log;
THREAD# APPLIED
---------- ---------
283 YES
284 IN-MEMORY

Sur la base primaire :
Enfin, vérifier que le paramètre a correctement été modifié via un « SHOW ALL » depuis RMAN.

RMAN> show all;
using target database control file instead of recovery catalog
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;

Remarques 
Cette opération peut aussi être utilisée pour la plupart des paramètres RMAN.
Attention, avant d’effectuer cette opération, pensez à désactiver la sauvegarde des archives (s’il y en a une), car si elle est trop fréquente, la sauvegarde risque de supprimer les archives qui n’ont pas encore été appliquées durant l’opération, il faudra alors reconstruire le DG ou combler le gap ( True story ) !!