#!/usr/bin/ksh
# Raj Patel - rajpat@us.ibm.com
# Sep 05, 2026
# All VIO versions - works for Encryption and Non Encryption
# This script might be usefull for GDR config, those DB are where all relationship between source and target disk exists

if [ -d "/home/vpgadmin/DR" ]
then
   rm -rf /home/vpgadmin/DR
else
    mkdir -p /home/vpgadmin/DR
    chown vpgadmin:bin /home/vpgadmin/DR
fi

function QueryDB {
    typeset -u dbname="$1"
    typeset -u table="$dbname.$3"
    typeset dbport=$2
    typeset DBOUT="/tmp/dbout"
    typeset SELECT="select * from $4.$3"
    echo ""
    echo "=== Table $table in $dbname ===\n"
    cat <<QDB_END | /usr/ios/db/bin/psql -d $1 -p $2 -U viosadmin >${DBOUT}
                ${SELECT};
QDB_END
    cat ${DBOUT} | sed \
        -e '/psql (10.2)/d' \
        -e '/psql (10.6)/d' \
        -e '/Type "help" for help./d' \
        -e 's/vios=#> //g' \
        -e 's/vioscm=#> //g' \
        -e '/^$/d'
    rm -f ${DBOUT}
    echo ""
}
dbname=vioscm
dbport=6080
# Get schema 'viosdr'
schema=viosdr
su vpgadmin -c "/usr/ios/db/bin/pg_dump -d $dbname -p $dbport --format=d --lock-wait-timeout=1min --file=/home/vpgadmin/DR --schema=$schema --username=viosadmin"
su vpgadmin -c /usr/ios/db/bin/pg_restore -l /home/vpgadmin/DR > /home/vpgadmin/DR/toc_extract
/usr/bin/awk '/TABLE DATA/ {print $1 $7}' /home/vpgadmin/DR/toc_extract > /home/vpgadmin/DR/tables
> /home/vpgadmin/DR/db.txt
for i in `cat /home/vpgadmin/DR/tables | awk -F ";" '{print $2}'`
do
   QueryDB $dbname $dbport $i $schema >> /home/vpgadmin/DR/db.txt
done

# pax -xpax -vw perfdata | gzip -c > callnumber.pax.gz
SERVER=`/usr/bin/hostname`
FILE=${SERVER}".viosdr.$(date +%Y.%m%d.%Hh%M).pax.gz"
cd /home/vpgadmin
/usr/bin/pax -xpax -vw DR | gzip -c > /home/padmin/$FILE
mkdir -p /tmp/DR/`hostname`
cp -R /home/padmin/$FILE /tmp/DR/`hostname`
echo "Please upload viosdr dumped in : /tmp/DR/`hostname`/$FILE"

