Created
May 14, 2018 17:50
-
-
Save angoca/7cec7b07dc523f3a548ade19623c08a0 to your computer and use it in GitHub Desktop.
Installs all Db2 fixpack an creates a different instance for each one
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Script to install a set of different Db2 fixpack in the same machine. | |
# The prerequisites to install Db2 should have been resolved: | |
# For V11.1: | |
# sudo dpkg --add-architecture i386 | |
# sudo apt-get install binutils # strings | |
# sudo apt-get install libaio1 # libaio.so.1 | |
# sudo apt-get install libpam-ldap:i386 -y -q # libpam | |
# supo apt-get install lib32stdc++6 -y | |
# sudo apt-get install libstdc++6-8-dbg -y | |
# Specifically for V11.1 FP 1 and 1a it requires RPM: | |
# supo apt-get install rpm -y | |
# For V10.5 it requires libpam, but it needs a symbolic link: | |
# sudo ln -s /lib/i386-linux-gnu/libpam.so.0 /lib/libpam.so | |
# | |
# Author: Andres Gomez Casanova | |
# Version: 2018-05-14 | |
BASE_DIR=/media/sf_Documents/Instaladores/db2allfp | |
TMP_DIR=/tmp/db2install/ | |
GRP_ADM=db2adms | |
DB2_INSTALL_DIR=/opt/ibm/db2 | |
DB_NAME=test | |
sudo hostname | |
sudo rm -Rf /tmp/db2* | |
clean () { | |
echo "Cleaning" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
rm -f ${BASE_DIR}/${DB2_VER}.log | |
done | |
} | |
install () { | |
echo "Installing all" | |
mkdir -p ${TMP_DIR} | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
cd ${TMP_DIR} | |
rm -Rf server* | |
echo "Unpackaging ${DB2_VER}" | |
tar -xf $i | |
if [[ "${DB2_VER}" =~ v105f[1-3].* ]] ; then | |
cd server | |
else | |
cd server_t | |
fi | |
echo "Prereqs ${DB2_VER}" | |
if [[ "${DB2_VER}" =~ v105f[1-3].* ]] ; then | |
./db2prereqcheck -i | |
else | |
./db2prereqcheck -i -l | |
fi | |
echo "Installing ${DB2_VER}" | |
if [[ "${DB2_VER}" =~ v105f[1-3].* ]] ; then | |
sudo ./db2_install -b ${DB2_INSTALL_DIR}/${DB2_VER} -p SERVER -n >> ${BASE_DIR}/${DB2_VER}.log | |
else | |
sudo ./db2_install -b ${DB2_INSTALL_DIR}/${DB2_VER} -p SERVER -n -y >> ${BASE_DIR}/${DB2_VER}.log | |
fi | |
echo "Finished ${DB2_VER}" | |
done | |
echo "All versions installed" | |
} | |
prepare () { | |
echo "Creating groups" | |
sudo groupadd ${GRP_ADM} | |
echo "Creating users" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
sudo useradd -m -g ${GRP_ADM} ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
done | |
echo "Environment already prepared" | |
} | |
createInsts() { | |
echo "Creating instances" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
sudo ${DB2_INSTALL_DIR}/${DB2_VER}/instance/db2icrt -u ${DB2_VER} ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
done | |
echo "All instances created" | |
} | |
createDbs () { | |
echo "Creating databases" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
sudo su -c ". ~/.profile ; db2start ; db2 create db ${DB_NAME} ; db2 connect to ${DB_NAME} ; db2 connect reset ; db2stop" - ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
done | |
echo "All databases created" | |
} | |
execute () { | |
echo "Executing in database" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
sudo su -c ". ~/.profile ; db2start" - ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
echo "Installing log4db2 in ${DB2_VER}" | |
sudo su -s /bin/bash -c ". ~/.profile ; db2 connect to ${DB_NAME} ; cd /tmp/tools/log4db2 ; . ./install ; db2 connect reset" - ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
echo "Installing db2unit in ${DB2_VER}" | |
sudo su -c ". ~/.profile ; db2 connect to ${DB_NAME} ; cd /tmp/tools/db2unit ; . ./install ; db2 connect reset" - ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
sudo su -c ". ~/.profile ; db2stop" - ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
done | |
echo "Execution done in databases" | |
} | |
dropDb2 () { | |
echo "Dropping databases" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
sudo su -c ". ~/.profile ; db2start ; db2 drop db ${DB_NAME} ; db2stop" - ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
done | |
echo "All databases dropped" | |
} | |
stopAll () { | |
echo "Stopping instances" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
sudo su -c ". ~/.profile ; db2 force applications all ; db2stop ; db2stop force" - ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
done | |
echo "All instances stopped" | |
} | |
dropInsts() { | |
echo "Droping instances" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
sudo ${DB2_INSTALL_DIR}/${DB2_VER}/instance/db2idrop ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
done | |
echo "All instances dropped" | |
} | |
unprepare () { | |
echo "Deleting users" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
sudo userdel -r ${DB2_VER} >> ${BASE_DIR}/${DB2_VER}.log | |
done | |
echo "Deleting groups" | |
sudo groupdel ${GRP_ADM} | |
echo "Environment reseted" | |
} | |
uninstall () { | |
echo "Uninstalling all" | |
for i in $(ls -1 ${BASE_DIR}/*.tar.gz) ; do | |
DB2_VER=$(basename $i | cut -d '_' -f 1 | sed 's/\.//g' | sed 's/p//') | |
echo ">>> ${DB2_VER}" | |
echo "Uninstalling ${DB2_VER}" | |
sudo ${DB2_INSTALL_DIR}/${DB2_VER}/install/db2_deinstall -a >> ${BASE_DIR}/${DB2_VER}.log | |
sudo rm -Rf ${DB2_INSTALL_DIR}/${DB2_VER} | |
echo "Finished ${DB2_VER}" | |
done | |
sudo rm -Rf /var/db2 | |
echo "All versions uninstalled" | |
} | |
READ=false | |
clean | |
install | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
prepare | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
createInsts | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
createDbs | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
#execute | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
dropDb2 | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
stopAll | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
dropInsts | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
unprepare | |
if [ "${READ}" = true ] ; then | |
read -p "Enter para continuar" | |
fi | |
uninstall | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment