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.
- Sauvegarde élémentaire RMAN d’un fichier
- Vérification d’un jeu de sauvegarde sur TSM
Liens documentaires
- BAClient / APIClient : https://www.ibm.com/docs/en/spectrum-protect/8.1.14?topic=clients-installing-linux-x86-64-client https://www.ibm.com/docs/en/spectrum-protect/8.1.14?topic=clients-installing-spectrum-protect-backup-archive-unix-linux-windows https://www.scc.kit.edu/en/services/15617.php
- TDPO : https://www-112.ibm.com/software/howtobuy/passportadvantage/paocustomer/sdmanextgen/download/view?siteNumber=0007927696&locale=en-us https://www.ibm.com/docs/en/tsmfd/7.1.0?topic=cdpo-configuring-data-protection-oracle http://www.tsmtutorials.com/2013/11/backup-and-restore-oracle-database-using-tdp-for-oracle.html