TSM losing connection with DB2

Platform

——————————-
OS = RedHat Linux ESE 4.6  32 bits
DB2 versiion = v9.1.0.3
DB2 code release = SQL09013
Tivoli Storage Automation (TSA)  =  SAFMP V310

Problem
——————————–
Assumption – installed OK – and system has been running OK
i.e scheduled backups and archived logging working OK .

The problem can be created with the following step:
1)Upon issuing a db2_kill   TSA restarts the instance – which it does so successfully.

But at that point :
a)issuing a “backup database MYDB online use TSM”
b)archival logging

both return a  (in db2diaglog):

TSM RC=0x0000006A=106 — see TSM API Reference for meaning.

I can still issue a “db2adutl Query full db MYDB” and get a recordset from TSM

From the TSA perspective :
It looks like the TSA in the process of monitoring the instance , and sees the instance is down goes through a clean up process
via this code :
$INSTHOME/sqllib/bin/db2gcf -t 60 -k -p ${NN?} -i ${DB2INSTANCE?}
kill -9 $(ps -fu $DB2INSTANCE | awk ‘{print $2 ” ” $8}’ | grep ” db2[a-z]” | awk ‘{print $1}’)
kill -9 $(ps -ef | grep -v grep | grep db2chkau | awk ‘{print $2}’)
su – ${DB2INSTANCE} -c “ipclean -a”

and the start up process

To recover back to the point of Archival Logging and Backups via TSM I can   reauthenticate  via :
1)stop TSA
2)run though the dsmapipw authentication

3)issue a db2stop db2start

this allows the backups and archival logging to start
4)start TSA

In a 247 environment –  the expectation  is to recover and maintain the TSM authentication

resolutions
———————–
The cause of the problem is to found in the TSA file “db2_start.ksh” – which is installed as part of the rsct/sapolicies , normally to be found on :
/usr/sbin/rsct/sapolicies/db2/db2_start.ksh

As part of the db2 recovery process the script issues the following command  as root:

$INSTHOME/sqllib/bin/db2gcf -t 60 -k -p ${NN?} -i ${DB2INSTANCE?}

Interogating this line indicates that :
1)the dbgcf command – which controls the Db2 Instance Command . This command is used to startstop or monitor the DB2 instance within the cluster setup
2)The -t switch is the timeout
3) the -K switch renoves al processes associated with he specified instance
4)the -p switch is the partition number
5)the -i switch is the instance

As part of the configuation of TSM per DB2 instance the following environment varibales are set up per instance . They are added to the : “<instance_home>/sqllib/userprofile”  as follows:

DSMI_CONFIG=/opt/tivoli/tsm/client/api/bin/dsm_db2.opt
DSMI_DIR=/opt/tivoli/tsm/client/api/bin
DSMI_LOG=/myInstance /tsmlog
export DSMI_CONFIG DSMI_DIR DSMI_LOG

The problem arises when the line is issued as root  : $INSTHOME/sqllib/bin/db2gcf -t 60 -k -p ${NN?} -i ${DB2INSTANCE?}
The environment variables are not   set up for root  which outline the path of the .opt file and log files .

The workaround is to add the following lines in the “/usr/sbin/rsct/sapolicies/db2/db2_start.ksh” . Ensure you add them just under the line : DB2INSTANCE=${1}

#######
## These lines fix the environment problems with TSA and TSM passwords
#######

DSMI_CONFIG=/opt/tivoli/tsm/client/api/bin/dsm_db2.opt
DSMI_DIR=/opt/tivoli/tsm/client/api/bin
DSMI_LOG=/${DB2INSTANCE}/tsmlog
export DSMI_CONFIG DSMI_DIR DSMI_LOG

#######
#######

Assuming your DB2 instances are all set up in a standard path format , this will cover all DB2 instances on the server .

 Ref:Jack Vamvas

Leave a Reply

Discover more from ciquery

Subscribe now to keep reading and get access to the full archive.

Continue reading