TDPO : Sauvegarde Rman Oracle avec TSM (Tivoli Storage Manager)

Principe de TDPO

TDPO sert à sauvegarder des données Oracle avec les outils standard d’Oracle (RMAN / Recovery Manager) pour envoyer les données sur un serveur TSM.

RMAN est un outil qui permet de sauvegarder des données Oracle sur disque (ou réseau) et sur Bandes.

Le principe est d’installer sur le serveur Oracle un client Spectrum particulier de BackupArchive que l’on nomme « APIClient« . APIClient est un ensemble de librairies dynamiques qui permettent d’utiliser les méthodes disponibles dans dsmc mais depuis un programme externe : C’est l’API dont se sert le programme dsmc.

IBM fourni un programme externe nommé TDPO (TivoliDataProtection for Oracle) qui utilise cette API client Spectrum. TDPO apporte une libraisie Linux qui répond aux standards des lecteurs de bandes LTO mais qui, au lieu de piloter une bandothèque, dialogue avec l’API client Spectrum : Au lieu que le fichier soit stoqué sur un lecteur de bandes, il est envoyé en temps réél sur TSM par cette méthode.

Il suffit ensuite de dire à RMAN d’utiliser comme lecteur de bandes la librairie apportée par TDPO et les sauvegardes gérées par RMAN seront en fait stockées sur TSM par l’intermédiaire de la bibliothèque « LTO » de TDPO et l’API Cliente de Spectrum. La configuration de l’APIClient de TDPO sera associée à un Node TSM comme n’importe quel client dsmc.

Installation de TDPO

Désinstallation d’une version antérieure si besoin

    root@linux : ~> cd /opt/tivoli/tsm/client/oracle/_uninstall/ && ./uninstall
    ...
    root@linux : ~> rpm -qa | grep TIVsm | xargs -i{} rpm -e {}	
    ...   

Installation du client TSM BAClient

Le binaire se trouve ici : 8.1.14.0-TIV-TSMBAC-LinuxX86.zip

Téléchargez le binaire dans votre home directory puis tapez :

	root@linux : ~> mkdir -p /data/downloads/TDPO/BACLIENT/
	root@linux : ~> cd /data/downloads/TSM/BACLIENT/ && mv ~/8.1.14.0-TIV-TSMBAC-LinuxX86.zip .
	root@linux : /data/downloads/TSM/BACLIENT> unzip 8.1.14.0-TIV-TSMBAC-LinuxX86.zip -d .
	...
	root@linux : /data/downloads/TSM/BACLIENT> tar -xvf 8.1.14.0-TIV-TSMBAC-LinuxX86.tar
	...
	root@linux : /data/downloads/TSM/BACLIENT> rpm --import GSKit.pub2.pgp 
	root@linux : /data/downloads/TSM/BACLIENT> rpm --checksig gskcrypt64-8.0.55.24.linux.x86_64.rpm gskssl64-8.0.55.24.linux.x86_64.rpm --verbose 
	root@linux : /data/downloads/TSM/BACLIENT> rpm --import RPM-GPG-KEY-ibmpkg
	root@linux : /data/downloads/TSM/BACLIENT> rpm -U gskcrypt64-8.0.55.24.linux.x86_64.rpm gskssl64-8.0.55.24.linux.x86_64.rpm
	root@linux : /data/downloads/TSM/BACLIENT> rpm -i TIVsm-API64.x86_64.rpm 
	root@linux : /data/downloads/TSM/BACLIENT> rpm -i TIVsm-API64.x86_64.rpm
	root@linux : /data/downloads/TSM/BACLIENT> rpm -i TIVsm-APIcit.x86_64.rpm
	root@linux : /data/downloads/TSM/BACLIENT> rpm -i TIVsm-BA.x86_64.rpm
	root@linux : /data/downloads/TSM/BACLIENT> rpm -i TIVsm-BAcit.x86_64.rpm
	root@linux : /data/downloads/TSM/BACLIENT> rpm -i TIVsm-BAhdw.x86_64.rpm
	root@linux : /data/downloads/TSM/BACLIENT> rpm -ivh TIVsm-WEBGUI.x86_64.rpm
 	...

Installation de TDPO

Le binaire se trouve ici : TDPO_SP_DBS_8.1.13_ORAC_LIN_ML.tar.gz

Téléchargez le binaire dans votre home directory puis tapez :

	root@linux : ~> mkdir -p /data/downloads/TSM/TDPO/
	root@linux : ~> cd /data/downloads/TSM/TDPO/ && mv ~/TDPO_SP_DBS_8.1.13_ORAC_LIN_ML.tar.gz .
	root@linux : /data/downloads/TSM/TDPO> tar -zxvf TDPO_SP_DBS_8.1.13_ORAC_LIN_ML.tar.gz

Exécutez le binaire d’installation, l’installation est triviale à ce stade, répondez Ok à tous les choix proposés, aucune erreur ne doit être signalée :

	root@linux : /data/downloads/TSM/TDPO> ./TSMORA_LNX/linux86_64/TDP-Oracle.x86_64.bin
	...

Configuration de TDPO

Création d’un node TSM pour le client TDPO

Se connecter sur un serveur TSM via dsmcadm et créer un node pour TDPO, par exemple :

Protect : TSMSRV> register node MY_SERVER_HOSTNAME passw0rdTDP02023 domain=DOM_PRD backdelete=yes maxnummp=2
  • Ne pas oublier « backdelete=yes » qui autorisera ainsi RMAN à détruire lui même des fichiers.
  • DOM_PRD est réservé aux sauvegardes type fichier (dsmc, TDPO, etc)

Configuration de TDPO

i) Editer le fichier « /opt/tivoli/tsm/client/oracle/bin64/tdpo.opt_RMAN » et positionner le contenu suivant:

servername server_rman

ii) Editer le fichier « /opt/tivoli/tsm/client/oracle/bin64/tdpo.opt » et positionner le contenu suivant:

DSMI_ORC_CONFIG    /opt/tivoli/tsm/client/oracle/bin64/dsm.opt_RMAN
DSMI_LOG           /var/log/tsm

TDPO_FS            SERVEUR_01
TDPO_NODE          SERVEUR_01
TDPO_OWNER         SERVEUR_01
TDPO_PSWDPATH      /opt/tivoli/tsm/client/oracle/bin64

TDPO_DATE_FMT      1
TDPO_NUM_FMT       1
TDPO_TIME_FMT      1

TDPO_MGMT_CLASS_2   mgmtclass2
TDPO_MGMT_CLASS_3   mgmtclass3
TDPO_MGMT_CLASS_4   mgmtclass4

Remarque: Les ManagementClass sont à définir selon les besoins organisationnels de vos sauvegardes.

iii) Fichier de licence

TDPO est un logiciel de sauvegarde soumis à licence, veuillez contacter IBM à ce sujet, il dépend à la date de la rédaction de ce ce post du nombre de serveur Oracle et du nombre bases de données concernées mais pas de la puissance (CPU/RAM) des serveurs ni de la quantité à sauvegarder qui vous est déjà soumis à licence via votre serveur Spectrum Project (TSM).

Copiez le fichier de licence à cet emplacement :

/opt/tivoli/tsm/client/oracle/bin64/

Configuration de BAClient

i) Editer le fichier « /opt/tivoli/tsm/client/ba/bin/dsm.inclexcl/dsm.inclexcl » et positionner le contenu suivant:

   exclude.compression "/.../*.ace"
   exclude.compression "/.../*.arc"
   exclude.compression "/.../*.arj"
   exclude.compression "/.../*.avi"
   exclude.compression "/.../*.bz2"
   exclude.compression "/.../*.bzip2"
   exclude.compression "/.../*.cab"
   exclude.compression "/.../*.dll"
   exclude.compression "/.../*.exe"
   exclude.compression "/.../*.gho"
   exclude.compression "/.../*.gif"
   exclude.compression "/.../*.gzip"
   exclude.compression "/.../*.gz"
   exclude.compression "/.../*.jpeg"
   exclude.compression "/.../*.jpg"
   exclude.compression "/.../*.lha"
   exclude.compression "/.../*.lzh"
   exclude.compression "/.../*.mov"
   exclude.compression "/.../*.mp3"
   exclude.compression "/.../*.mpeg"
   exclude.compression "/.../*.mpg"
   exclude.compression "/.../*.png"
   exclude.compression "/.../*.psd"
   exclude.compression "/.../*.rar"
   exclude.compression "/.../*.sea"
   exclude.compression "/.../*.sit"
   exclude.compression "/.../*.sitx"
   exclude.compression "/.../*.swf"
   exclude.compression "/.../*.tgz"
   exclude.compression "/.../*.tiff"
   exclude.compression "/.../*.tif"
   exclude.compression "/.../*.wav"
   exclude.compression "/.../*.Z"
   exclude.compression "/.../*.zip"
   exclude.compression "/.../*.zoo"

   exclude              "/.../[Cc]ache/.../*"           * browser cache files
   exclude              "/var/spool/up2date/*"          * up2date patch repository

   exclude.dir          "/usr/src"                      * linux kernel source
   exclude              "/usr/src/.../*"                * linux kernel source

   exclude.dir          "/sauvegardes"
   exclude.dir          "/sauvegardes/*"
   exclude.file         "/sauvegardes/*"
   exclude.file         "/sauvegardes/.../*"

   exclude.dir          "/var/run"                      * dynamic run data
   exclude.dir          "/var/run/*"
   exclude.file         "/var/run/*"
   exclude.file         "/var/run/.../*"

   exclude.dir          "/tmp"                          * temporary data
   exclude.dir          "/tmp/*"
   exclude.file         "/tmp/*"
   exclude.file         "/tmp/.../*"

   exclude                    "/.../lost+found"
   exclude                    "/.../core"

   exclude.fs           "/cdrom"

   exclude.dir          "/var/spool"
   exclude.dir          "/var/spool/*"
   exclude.file         "/var/spool/*"
   exclude.file         "/var/spool/.../*"

   *** ATTENTION : Section à customiser selon l'organisation des fichiers du moteur Oracle : Contactez un DBA
   exclude.dir          "/app/oracle/product/19.3.0/db_1"
   exclude.dir          "/app/oracle/product/19.3.0/db_1/*"
   exclude.file         "/app/oracle/product/19.3.0/db_1/.../*"

   *** ATTENTION : Section à customiser selon l'organisation des datafiles : Contactez un DBA
   exclude.fs       "/DATA/redo/axe1"
   exclude.fs       "/DATA/redo/axe2"
   exclude.fs		"/DATA/arch"
   exclude.fs		"/DATA/data"
   exclude.fs		"/DATA/index"
   exclude.fs		"/DATA/ctltemp"
   exclude.fs		"/DATA/ctlundo"
   exclude.fs		"/DATA/arch"
   exclude.fs		"/DATA/fra"   
   exclude.fs       "/DATA/dpump"
   
   exclude.dir          "/var/log"                      
   exclude.dir          "/var/log/*"
   exclude.file         "/var/log/*"
   exclude.file         "/var/log/.../*"
   include              "/var/log/rman/*"

Remarque) Attention, les chemins peuvent varier selon la façon dont le moteur et/ou les bases de données Oracle ont été configurées (contactez und DBA si besoin) !

ii) Editer le fichier « /opt/tivoli/tsm/client/ba/bin/dsm.inclexcl/dsm.sys » et positionner le contenu suivant:

servername server_rman
   COMMMethod         TCPip
   TCPPort            1500
   TCPServeraddress   192.168.194.3 
   NODENAME           MY_SERVER_HOSTNAME
   PASSWORDACCESS     PROMPT
   PASSWORDDIR        /home/oracle
   SCHEDLOGNAME       "/var/log/tsm/dsmsched.log"
   SCHEDLOGRETENTION  3
   ERRORLOGNAME       "/var/log/tsm/dsmerror.log"
   ERRORLOGRETENTION  5

Remarque) Dans cet exemple, nous configurons un accès à TSMSRV via le réseau de backup (192.168.194.3).

Liaisons entre les bibliothèques de l’OS et de TDPO :

Comme indiqué dans l’introduction, RMAN vas utiliser un lecteur de bandes pour sauvegarder, il faut donc substituer la librairie système standard par celle fournie par TDPO qui pourra contacter TSM.

Sauvegardez l’ancienne libraire dans le répertoire de votre choix et faites la liaison vers celle de TDPO :

root@linux : ~> mkdir -p /data/sauvegardes/
root@linux : ~> mv /usr/lib64/libobk.so /data/sauvegardes/
root@linux : ~> ln -s /usr/lib64/libobk.so /opt/tivoli/tsm/client/oracle/bin64/libobk.so

Remarque: Dans certains cas il faudra rebooter pour que l’OS prenne la nouvelle librairie so.

Premier accès à TSM de TDPO via APIClient :

Le premier accès à TSM en utilisant TDPO et BAClient va permettre de saisir le mot de passe du node TSM associé et de faire en sorte que celui-ci soit mémorisé et crypté par la conf pour ne plus être demandé par la suite et automatiser ainsi les procesus de sauvegarde sans interraction.

root@linux : ~> tdpoconf password

IBM Spectrum Protect for Databases:
Data Protection for Oracle
Version 8, Edition 1, Niveau 13.0
(C) Copyright IBM Corporation 1997, 2021. All rights reserved.

***************************************************************
*   Utilitaire IBM Spectrum Protect for Databases 
*   Initialisation du fichier de mots de passe/programme de mise à jour 
***************************************************************

Veuillez entrer un nouveau mot de passe : **********

Entrez une seconde fois le nouveau mot de passe pour vérification : **********

root@linux : ~>

Une fois le mot de passe enregistré, vous pouvez vérifier la conf avec :

root@linux : ~> tdpoconf showenvironment

IBM Spectrum Protect for Databases:
Data Protection for Oracle
Version 8, Edition 1, Niveau 13.0
(C) Copyright IBM Corporation 1997, 2021. All rights reserved.


Informations de Data Protection for Oracle
 Version :              8
 Edition :              1
 Niveau :                13
 Sous-niveau :             0
 Plateforme :             64bit TDPO Linux86-64

Informations du serveur IBM Spectrum Protect
 Nom de serveur :          SERVER_RMAN
 Adresse du serveur :       192.168.111.34
 Type de serveur :          Linux/x86_64
 Port du serveur :          1500
 Méthode de communication : TCP/IP

Informations de session
 Nom du propriétaire :           SERVEUR_01
 Nom de noeud :            SERVEUR_01
 Type de noeud :            TDPO Linux86-64
 DSMI_DIR :             /opt/tivoli/tsm/client/api/bin64
 DSMI_ORC_CONFIG :      /opt/tivoli/tsm/client/oracle/bin64/dsm.opt_RMAN
 TDPO_OPTFILE :         /opt/tivoli/tsm/client/oracle/bin64/tdpo.opt
 Répertoire du mot de passe :   /opt/tivoli/tsm/client/oracle/bin64
 Compression :          FALSE
 Informations sur la licence : Le fichier de licence existe et contient des données valides.

Configuration de RMAN

Cette étape n’a plus vraiment de rapport direct avec TDPO : Nous allons configurer RMAN pour qu’il utilise par défaut le lecteur de bandes (donc la librairie de TDPO) pour sauvegarder ses données.

Il faut pour cela se connecter avec ue user « oracle », lancer l’outil RMAN d’Oracle puis coier la conf telle que :

Nous immaginons danc cet exemple que notre base de données oracle a pour SID « DBTEST ». Chaque ligne de configuration doit être précdée du mot clé « CONGIGURE » et se terminer par un point-virgule (;) tel que :

root@linux : ~> su - oracle
oracle@linux : ~> ORACLE_SID=**DBTEST** && export ORACLE_SID
oracle@linux : ~> rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Fri Mar 31 14:46:27 2023
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
connected to target database: **DBTEST** (DBID=2747587368)

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 15 DAYS;
  new RMAN configuration parameters are successfully stored

CONFIGURE BACKUP OPTIMIZATION OFF;  
  new RMAN configuration parameters are successfully stored

**RMAN> CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';**
  new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
  new RMAN configuration parameters are successfully stored

**RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE 'SBT_TAPE' TO 'CTRL_c%d_f%F';**
  new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
  new RMAN configuration parameters are successfully stored

**RMAN> CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 1 BACKUP TYPE TO BACKUPSET;**
  new RMAN configuration parameters are successfully stored

**RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' TO 1;**
  new RMAN configuration parameters are successfully stored

**RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' TO 1;**
  new RMAN configuration parameters are successfully stored

**RMAN> CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' FORMAT   'DATA_%d_%t_s%s_p%p';**
  new RMAN configuration parameters are successfully stored
RMAN> quit

Recovery Manager complete.

oracle@linux : ~>

Tests

Pour vérifier que la configuration fonctionne, il faut simplement demander une sauvegarde via RMAN, qu’elle se déroue sans erreur sur le lecteur de bandes « SBT_TAPE » et de vérifier ensuite que ceci est stoqué coté TSM.

  1. Sauvegarde élémentaire RMAN d’un fichier
  2. Vérification d’un jeu de sauvegarde sur TSM

Liens documentaires

Laisser un commentaire

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