Sauvegardes multiplexées avec RMAN

Afin de sécuriser les sauvegardes, dans le sens multiplier les supports de sauvegardes, RMAN dispose de la possibilité de réaliser en une seule opérations la sauvegarde d’une même base sur plusieurs destinations. C’est ce que l’on nomme la sauvegarde multiplexée (Duplexed Backup dans la terminologie Oracle).

L’objet de cette documentation est de présenter la sauvegarde multiplexée sur disque, le mix disque/bande n’étant pas possible, avec sauvegarde distante d’une copie du jeu de sauvegarde via NFS.

Il est possible de réaliser jusqu’à 4 copies simultanées d’une sauvegarde. Nous présenterons dans cette documentation uniquement le cas d’une double sauvegarde.

 Architecture

L’architecture retenue est la suivante :

  • On dispose d’un serveur de sauvegarde RMAN indépendant
  • La base de données fontionne avec ASM pour plus de redondance et de sécurité
  • Une copie de la sauvegarde est conservée sur le système ASM
  • Une copie de sauvegarde est déportée sur un serveur distant via NFS

En adoptant cette stratégie on dispose d’une sécurité maximale pour les sauvegardes :

  • Utilisation de RMAN qui garantit une disponibilité des données.
  • Stockage sur système ASM assurant la redondance
  • Stockage sur espace distant en cas de perte physique de la source

Voici le schéma de la solution :

Mise en oeuvre

Serveur NFS côté RMAN

On suppose l’utilisation d’Oracle Linux 5.x
Le serveur NFS se paramètre avec l’utilitaire system-config-nfs
S’il n’est pas disponible le récupérer avec yum :

yum install system-config-nfs

dans la configuration du serveur NFS, on ajoute un partage. Pour l’exemple le dossier se nommera /home/oracle/backup

  • On clique sur ‘Ajouter’, la fenêtre de dialogue de spécification su partage NFS s’affiche.
  • Dans l’onglet ‘Basique’, mettre le répertoire à partager.
  • Pour sécuriser le partage, mettre dans le champs Hôte, le nom ou l’IP du serveur Oracle à sauvegarder.
  • Spécifier que le partage et en lecture/écriture que RMAN puisse y disposer une copie de la sauvegarde.

Pour garder une compatibilité des uid/gid, sur les deux serveurs l’utilisateur Oracle a même uid/gid. Ca peux grandement faciliter la tâche pour des échanges de fichiers entre bases ou pour une reprise sur incident. Dans cet exemple oracle a pour uid 500 et gid 500. On rend le partage anonyme avec mappage sur l’uid/gid 500 :

On clique sur ‘valider’, puis menu Fichier/Quitter. Le serveur NFS est opérationnel.

Client NFS côté base de données

On va monter le partage NFS sur un dossier local. dans cet exemple, /mnt/srvrman

Pour que le partage NFS fonctionne sans problème, il faut spécifier un certain nombres d’options de montage recommandées par Oracle:

hard,rw,noac,rsize=32768,wsize=32768,suid,proto=tcp,vers=3

(Les paramètres rsize et wsize peuvent être passés à 65536).

On ajoute au fichier /etc/fstab :

rman-11g:/home/oracle/backup     /mnt/srvrman       nfs       hard,rw,noac,rsize=32768,wsize=32768,suid,proto=tcp,vers=3

  • rman11g est le serveur contenant le dossier NFS partagé.
  • /mnt/srvrman le point de montage du partage
  • nfs le type de système de fichier (NFS)
  • et en dernier les options de montage nfs.

On vérifie que le montage fonctionne :

mount -a
mount

le montage nfs devrait apparaître dans la liste des disques montés.

Paramétrage de la sauvegarde RMAN

On va préciser à RMAN qu’il doit réaliser deux copies en ajoutant l’option COPIES 2 dans la sauvegarde
Puis on donne la liste de chacune des deux destinations, séparées par une virgule après l’option FORMAT.

Exemple de script de sauvegarde :

#!/bin/sh
#
# Script de sauvegarde Full d'une base de donnée
# 07/08/2012 : Création
#
 
# ON récupère les variables d'environnement ORACLE
source $HOME/.oraclerc
# Script de vérification de la connectivité
source $HOME/commun_bkup.sh $*
     
echo "Lancement de la sauvegarde"
# Lancement de la sauvegarde
rman catalog $PASS_RMAN target $PASS@$CIBLE << EOF
# On spécifie où sauvegarder les fichiers de contrôle
run {
     # Backup de toute la base
     backup as compressed backupset
     DEVICE TYPE DISK COPIES 2
     format '+FRA','/mnt/srvrman/BASE_%U'
     database plus archivelog delete all input;
 }
exit;
EOF
echo "Fin"

Dans ce script :

  • Une copie de la sauvegarde de la base est conservée dans ASM (+FRA)
  • Une seconde copie est déposée via NFS sur un répertoire distant.
  • Le backup est FULL (base + archivelog)
  • Les sauvegardes sont compressées.

Restauration

RMAN étant informé de la présence de deux copies des sauvegardes de la base, il ira automatiquement chercher sur la seconde copie les données en cas d’erreur de lecture ou d’indisponibilité de la première.

La liste des copies d’une sauvegarde est affichées par RMAN quand on demande le détail d’un backupset :

RMAN> list backupset 13995;

List of Backup Sets
===================

BS Key  Size
------- ----------
13995   1.23M

  List of Archived Logs in backup set 13995
  Thrd Seq     Low SCN    Low Time  Next SCN   Next Time
  ---- ------- ---------- --------- ---------- ---------
  1    1809    59963744   09-AUG-12 59965509   09-AUG-12

  Backup Set Copy #2 of backup set 13995
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     09-AUG-12       YES        FULL_JEUDI_09

    List of Backup Pieces for backup set 13995 Copy #2
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    14004   1   AVAILABLE   /mnt/srvrman/ORCL_2ani6v43_1_2

  Backup Set Copy #1 of backup set 13995
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:00:00     09-AUG-12       YES        FULL_JEUDI_09

    List of Backup Pieces for backup set 13995 Copy #1
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    14003   1   AVAILABLE   +FRA/orcl/backupset/2012_08_09/annnf0_full_jeudi_09_0.1064.790854787

Dans cet exemple, la copie n°1 du backupset 13995 est :

+FRA/orcl/backupset/2012_08_09/annnf0_full_jeudi_09_0.1064.790854787

Il s’agit bien de la copie sur ASM, son backup piece est le n° 14003
La copie n° 2 du backupset 13995 est

/mnt/srvrman/ORCL_2ani6v43_1_2

Disponible sur un serveur distant NFS. Son backup piece est le n° 14004

Les deux copies sont accessibles (statut AVAILABLE).

En cas de restauration, RMAN essaiera d’abord la copie 1 (sur ASM) puis en cas d’erreur ira chercher les données sur NFS dans la copie n°2.

 

 

Posts relatifs

Laisser un commentaire


NOTE - Vous pouvez utiliser les éléments et attributs HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">