Voici une compilation de commandes DB2 TSM pouvant être utile :
Commandes de Réorganisation DB2
Les commandes suivantes permettent de déterminer la table qui est entrain d’être réorganisé:
1) db2 connect to tsmdb1 2) db2 set schema tsmdb1 3) db2pd -d tsmdb1 -reorg
Les commandes suivantes permettent d’arrêter la réorganisation d’une table
1) db2 connect to tsmdb1 2) db2 set schema tsmdb1 3) db2 "reorg table <tablename> inplace stop"
Vous pouvez voir la table « BF_BITFILE_EXTENTS » arrêter
Commandes de Réorganisation Offline Table DB2
Les tables suivantes sont souvent exclues de la réorganisation TSM :
Table name |
ARCHIVE_OBJECTS |
BACKUP_OBJECTS |
BF_AGGREGATED_BITFILES |
BF_BITFILE_EXTENTS |
L’exclusion est faite au niveau du dsmserv.opt :
DISABLEREORGTable BF_AGGREGATED_BITFILES,BF_BITFILE_EXTENTS,BACKUP_OBJECTS,ARCHIVE_OBJECTS
Connectez-vous avec le compte DB2
1. Lancer les commandes suivantes, permettant d’estimer la taille des tables à réorganiser. Le résultat est en bytes, il permet de créer un espace tampon pour la réorganisation.
db2 connect to tsmdb1 db2 set schema tsmdb1 db2 "call sysproc.reorgchk_tb_stats('T','tsmdb1.tablename') " db2 "select tsize from session.tb_stats"
Par exemple
db2 "call sysproc.reorgchk_tb_stats('T','tsmdb1.BACKUP_OBJECTS') "
2. Créer les différents espaces tampons sur l’OS.
mkdir :\temp1-8K mkdir :\temp1-16K mkdir :\temp1-32K
3. Lancez les commandes suivantes (en indiquant le chemin du répertoire ‘temp’) :
db2 "CREATE SYSTEM TEMPORARY TABLESPACE REORG8K PAGESIZE 8K MANAGED BY SYSTEM USING (':\temp1-8K') BUFFERPOOL REPLBUFPOOL1 DROPPED TABLE RECOVERY OFF" db2 "CREATE SYSTEM TEMPORARY TABLESPACE REORG16K PAGESIZE 16K MANAGED BY SYSTEM USING (':\temp1-16K') BUFFERPOOL IBMDEFAULTBP DROPPED TABLE RECOVERY OFF" db2 "CREATE SYSTEM TEMPORARY TABLESPACE REORG32K PAGESIZE 32K MANAGED BY SYSTEM USING (':\temp1-32K') BUFFERPOOL LARGEBUFPOOL1 DROPPED TABLE RECOVERY OFF"
4. Sauvegarde de la DB TSM par TSM, puis à la fin de la sauvegarde, enregistrer l’historique des volumes, et la définition des Devices
BACKUP DB TYPE=FULL devc= BACKUP VOLH BACKUP DEVCONF PREPARE
5. Arrêt du serveur TSM
HALT
Vérifier si TSM est bien arrêté en regardant le service TSM Server 1
6. Lancez les commandes suivantes :
a.db2 force application all b. db2stop c. db2start d. db2 connect to tsmdb1 e. db2 "DROP TABLESPACE TEMPSPACE1" f. db2 "DROP TABLESPACE LGTMPTSP" g. db2 update db cfg for tsmdb1 using auto_tbl_maint off h. Déterminer la taille de la table db2 "select t1.PAGESIZE from syscat.tablespaces t1 left join syscat.tables t2 on (t1.TBSPACEID=t2.TBSPACEID) where t2.tabname='table name'"
Par exemple (lancez la commande pour les 4 tables) :
db2 "select t1.PAGESIZE from syscat.tablespaces t1 left join syscat.tables t2 on (t1.TBSPACEID=t2.TBSPACEID) where t2.tabname='BF_BITFILE_EXTENTS'" db2 "select t1.PAGESIZE from syscat.tablespaces t1 left join syscat.tables t2 on (t1.TBSPACEID=t2.TBSPACEID) where t2.tabname='BF_AGGREGATED_BITFILES'" db2 "select t1.PAGESIZE from syscat.tablespaces t1 left join syscat.tables t2 on (t1.TBSPACEID=t2.TBSPACEID) where t2.tabname='BACKUP_OBJECTS'" db2 "select t1.PAGESIZE from syscat.tablespaces t1 left join syscat.tables t2 on (t1.TBSPACEID=t2.TBSPACEID) where t2.tabname='ARCHIVE_OBJECTS'"
i. Si le PAGESIZE est 8192, rentrez la commande suivante (pour la table en question) :
db2 "reorg table tsmdb1.tablename allow no access use REORG8K"
Si le PAGESIZE est 16384, rentrez la commande suivante (pour la table en question) :
db2 "reorg table tsmdb1.tablename allow no access use REORG16K"
Si le PAGESIZE est 32768, rentrez la commande suivante (pour la table en question) :
db2 "reorg table tsmdb1.tablename allow no access use REORG32K"
Il faut attendre, que DB2 rende la main avec le message suivant (pour la table en question) :
DB20000I La commande REORG a abouti
7. Afin de suivre la réorganisation, ouvrez une seconde fenêtre DB2, puis lancez la commande suivante :
db2pd -d tsmdb1 -reorg
8. Passer les commandes suivantes (retour à l’état initial de DB2) :
a. db2 "create system temporary tablespace TEMPSPACE1 pagesize 16k bufferpool ibmdefaultbp" b. db2 "create system temporary tablespace LGTMPTSP pagesize 32k bufferpool largebufpool1" c. db2 "drop tablespace REORG8K" d. db2 "drop tablespace REORG16K" e. db2 "drop tablespace REORG32K" f. db2 update db cfg for tsmdb1 using auto_tbl_maint on
9. Démarrer TSM par le service Windows (attendre d’avoir la main sur le serveur avant de continuer)
10. Lancez en DB2, la dernière commande de la table réorganisée :
a. db2 connect to tsmdb1 b. db2 "RUNSTATS ON TABLE tsmdb1.tablename WITH DISTRIBUTION AND SAMPLED DETAILED INDEXES ALL"
11. Afin de suivre l’avancement de la commande DB2, ouvrez une seconde fenêtre DB2 :
db2pd -d tsmdb1 -runstat
Réduction de la Base de données TSM
Suite à la Réorganisation Offline, passer les commandes suivantes afin de réduire au maximum les tables en question.
Pour les serveurs TSM migrant de la version 6.x, identifiez d’abord si la base de données DB2 est en version 9.7, par les commandes suivantes :
db2 connect to tsmdb1 db2 set schema tsmdb1 db2 "select cast(TBSP_NAME as char(30)), reclaimable_space_enabled from table(mon_get_tablespace('',-1)) where TBSP_NAME in ('USERSPACE1','IDXSPACE1','LARGESPACE1','LARGEIDXSPACE1')"
Si le résultat est 1, cela signifie que vous avez une base de données DB2 en version 9.7.
Si la réponse est 0, vous avez une base de données DB2 en version 9.5.
Si c’est le cas, ne procédez pas à la réduction de la base de données.
Pour réduire la taille de la base 9.7, passer les commandes suivantes:
db2 connect to tsmdb1 db2 set schema tsmdb1 db2 ALTER TABLESPACE USERSPACE1 REDUCE MAX db2 ALTER TABLESPACE IDXSPACE1 REDUCE MAX db2 ALTER TABLESPACE LARGESPACE1 REDUCE MAX db2 ALTER TABLESPACE LARGEIDXSPACE1 REDUCE MAX
Pour minimiser l’impact sur TSM, passer les commandes une par une.
A partir de TSM 7.1, de nouvelles tables sont apparues.
Table Name | DB2 Tablespace for Data | DB2 Tablespace for Indices |
ARCHIVE_OBJECTS | ARCHOBJDATASPACE | ARCHOBJIDXSPACE |
BACKUP_OBJECTS | BACKOBJDATASPACE | BACKOBJIDXSPACE |
BF_AGGREGATED_BITFILES | BFABFDATASPACE | BFABFIDXSPACE |
BF_BITFILE_EXTENTS | BFBFEXTDATASPACE | BFBFEXTIDXSPACE |
Suite à la Réorganisation Offline, passer les commandes suivantes afin de réduire au maximum les tables en question (A partir de TSM 7.1).
Par exemple pour la table ‘BF_AGGREGATED_BITFILES’:
db2 connect to tsmdb1 db2 set schema tsmdb1 db2 ALTER TABLESPACE BFABFDATASPACE REDUCE MAX db2 ALTER TABLESPACE BFABFIDXSPACE REDUCE MAX
Pour minimiser l’impact sur TSM, passer les commandes une par une.
Accélérer le démarrage de DB2
Afin de connaitre le temps de démarrage de votre base DB2. Ouvrez le fichier DB2diag.log. Rechercher ce paragraphe:
04:04:19.154 [0][trace.c][1699][TrBegin]: 04:50:22.145 [0][rdbinst.c][1323][RdbStartInstance]:DbStartInstance: Exit (rc=0). 04:51:13.186 [0][rdbdb.c][2228][RdbActivateDatabase]:Database TSMDB1 activated
1. Arrêtez le serveur TSM (HALT)
2. Assurez-vous que la base de données soit bien arrêtée (db2stop)
3. Rentrez les variables suivantes en ligne de commande DB2 :
a. db2 connect to tsmdb1 b. db2set DB2_ALLOCATION_SIZE=16MB
4. Démarrez le serveur TSM