#911 db2 update - 2008-10-15 13:30 UTC
Closed: Fixed None Opened 15 years ago by mmcgrath.

DB2 upgrade. This will migrate the current base RHEL postgresql server to 8.3 in the infrastructure repo. This is the last db we have running this older version of postgres.


{{{

!/bin/bash

echo -e

echo "Initial Values"
echo fas2
echo "select count() from people;" | sudo -u postgres psql fas2
echo bodhi
echo "select count(
) from package;" | sudo -u postgres psql bodhi
echo elections
echo "select count() from elections;" | sudo -u postgres psql elections
echo pkgdb
echo "select count(
) from package;" | sudo -u postgres psql pkgdb
echo mirrormanager
echo "select count(*) from host;" | sudo -u postgres psql mirrormanager

echo
echo "Disable puppet"
/etc/init.d/iptables stop

echo
echo "kill old postgres"
/etc/init.d/postgresql stop
echo
echo "Disable connections via iptables"
iptables -A INPUT -p tcp -m tcp --dport 5432 -j REJECT --reject-with icmp-host-prohibited
echo
echo "Starting postgres again for dumps"
/etc/init.d/postgresql start
echo
echo "dumping db"
sudo -u postgres /var/lib/pgsql/save-db /tmp/pgtmp/
echo
echo "verify all dumps exist"
ls /tmp/pgtmp/bodhi.db
ls /tmp/pgtmp/elections.db
ls /tmp/pgtmp/elections_old.db
ls /tmp/pgtmp/fas2.db
ls /tmp/pgtmp/fedora_updates.db
ls /tmp/pgtmp/fedorausers.db
ls /tmp/pgtmp/global.sql
ls /tmp/pgtmp/mirrormanager.db
ls /tmp/pgtmp/pkgdb.db
ls /tmp/pgtmp/postgres.db
ls /tmp/pgtmp/restore.sh
echo
echo "stop postgresql"
/etc/init.d/postgresql stop
echo
echo "remove old postgres rpms"
yum -y remove postgresql*
echo
echo "install 8.3 postgres"
yum -y install postgresql8.3-plpython postgresql8.3-contrib postgresql8.3-server postgresql8.3 postgresql8.3-libs
echo
echo "doing the data dir cleanup"
rm -rf /var/lib/pgsql/data-upgrade/
mkdir /var/lib/pgsql/data-upgrade/
mv /var/lib/pgsql/data/ /var/lib/pgsql/data-upgrade/
/etc/init.d/postgresql initdb
cp -v /var/lib/pgsql/data-upgrade/
conf /var/lib/pgsql/data/

for depricated in bgwriter_lru_percent
do
while egrep -q ^$depricated /var/lib/pgsql/data/postgresql.conf
do
echo $depricated still exists in /var/lib/pgsql/data/postgresql.conf You are using an old config
sleep 1
done
done
echo
echo "restarting postgres"
/etc/init.d/postgresql restart
echo
echo "starting import"
cd /tmp/pgtmp
sudo -u postgres ./restore.sh
echo
echo "followup comparisons"
echo fas2

echo "select count() from people;" | sudo -u postgres psql fas2
echo bodhi
echo "select count(
) from package;" | sudo -u postgres psql bodhi
echo elections
echo "select count() from elections;" | sudo -u postgres psql elections
echo pkgdb
echo "select count(
) from package;" | sudo -u postgres psql pkgdb
echo mirrormanager
echo "select count(*) from host;" | sudo -u postgres psql mirrormanager

echo
echo If everything looks good restart iptables
}}}

This completed without a hitch.

Login to comment on this ticket.

Metadata