Comment utiliser rman 12c restore database from service ?

Comment dupliquer une base, créer un dataguard avec un minimum de configuration réseau ? La solution réside dans la nouvelle fonctionnalité rman 12c restore from service.
Principe
Son principe est de restaurer les fichiers de données à travers le réseau. La clause from service de rman spécifie un nom de service de la base source ou cible selon le serveur à partir duquel la restauration se fait.
Paramétrage
Le paramétrage est simple : juste définir une entrée dans le fichier tnsnames.ora du serveur source/cible qui est associée à la base source/cible.
Architecture
rman restore from service
Réalisation
L’exemple ci-dessous est la reconstruction d’un active dataguard utilisant le dataguard broker.
Actions à réaliser sur la base primaire

  • Arrêt du transfert
alter system set log_archive_dest_state_2 = defer scope=both sid='*' ;
alter system set standby_file_management = manual scope=both sid='*' ;
  •  Désactivation du Data Guard broker via dgmgrl
show configuration ;
disable configuration ;
  • Création du standby controlfile 
alter database create standby controlfile as '/home/oracle/jae/pilotprdstandby.ctl' ;
  • Transfert du standby controlfile sur le serveur standby
scp /home/oracle/jae/pilotprdstandby.ctl 10.130.0.225:/home/oracle/jae
  • Calcul de la taille du section size pour le restore
select round(avg(bytes/1024/1024/1024),0) "AVG File Size Go",
round(round(avg(bytes/1024/1024/1024),0)/4,0) "Section Size Go"
from v$datafile;

Actions à réaliser sur le serveur standby

  • création du pfile à partir du spfile
 create pfile='/home/oracle/jae/init_bef_rebuild_dataguard_node.ora' from spfile;
  • Arrêt de la base standby
srvctl stop database -db pilotprdstandby
  • Suppression des datafiles sous asm
asmcmd rm +DATA/PILOTPRDSTANDBY/*

ne pas supprimer les fichiers de configuration du dataguard broker

  • Modification du fichier d’init et démarrage avec le standby controlfile crée
Ajouter : *.control_files='/home/oracle/jae/pilotprdstandby.ctl'
Ajouter : *.db_file_name_convert=+DATA/PIVOTPRD, +DATA/PILOTPRDSTANDBY
  • Vérification du service réseau vers la base primaire
tnsping pilotprd
  •  Démarrage de la base standby en mount avec le pfile modifié
startup mount pfile='/home/oracle/jae/init_bef_rebuild_dataguard_node.ora' ;
  • Exécuter rman et lancer la restauration de la base primaire.
rman target /
restore database from service pilotprd using compressed backupset section size 2048m ;
  • création du spfile dans asm à partir du pfile
create spfile='+DATA' from pfile='/home/oracle/jae/init_bef_rebuild_dataguard_node.ora' ;
  • Mise à jour du paramètre spfile dans le fichier init de la base standby
  • Mise à jour de la configuration cluster
srvctl modify database -db pilotprdstandby -spfile +DATA/PILOTPRDSTANDBY/PARAMETERFILE/spfileXXXXXXX
  • démarrage en mode nomount avec le spfile
startup nomount ;
  • Restauration du fichier de contrôle
restore controlfile to '+DATA' from '/home/oracle/jae/pilotprdstandby.ctl'
  • Modification du paramètre control_file du spfile
alter system set control_files = '+DATA/CONTROLFILE/current_xxxxxx' scope=spfile sid='*';
  • Démarrage de la base avec le nouveau fichier de  contrôle
startup mount ;
  • Création des standby logfile
Vérifier avant que le paramètre standby_file_management = manual sinon le modifier
show parameter standby_file_management ; ==> auto
Modification du paramètre
alter system set standby_file_management = manual scope=both sid='*' ;
création des standby logfile
alter database add standby logfile '+DATA' size 300M; (x fois)
  • Récupération des données
RMAN > recover database ;

Actions à réaliser sur la base primaire

  • Activation du broker
DGMGRL : enable configuration ;
DGMGRL : show configuration ;
DGMGRL : show database pilotprdstandby ; (base standby)
  • Vérification des paramètres log_archive_dest_state_2 et  standby_file_management
show parameter log_archive_dest_state_2 ; ==> enable
show parameter standby_file_management ; ==> auto
Sinon faire
alter system set log_archive_dest_state_2 = enable scope=both sid='*' ;
alter system set standby_file_management = auto scope=both sid='*' ;

Actions à réaliser sur la base standby

  • Ouverture de la base en read only
alter database open read only ;
  • Vérifier que la standby est bien en mode active dataguard
Vous souhaitez améliorer votre employabilité ou simplement monter en compétences sur les solutions des plus grands éditeurs du moment ? Découvrez notre catalogue de formations AWS, Oracle et Microsoft 

		

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *