Force rebuild databázového clusteru
Rebuildne databázový cluster. POZOR - NEVRATNĚ!!!!
Pokud je zadán parametr, pak je vytvořen databázový účet s právy superusera
#!/bin/bash
# Installation prefix
prefix=/usr/local/pgsql
PGCTL="$prefix/bin/pg_ctl"
PGUSER=postgres
if [ ! -n "$PGDATA" ]; then
PGDATA="$prefix/data"
fi
echo "shutdown server"
su - $PGUSER -c "$PGCTL status -D $PGDATA" &> finitdb_log
if [ $? != 1 ]; then
su - $PGUSER -c "$PGCTL stop -D $PGDATA -m fast" &>> finitdb_log
if [ $? != 1 -a $? != 0 ]; then
su - $PGUSER -c "$PGCTL status -D $PGDATA" &>> finitdb_log
while [ $? != 1 -a $? != 3 ]; do
echo "PostgreSQL still running.."
sleep 1
su - $PGUSER -c "$PGCTL status -D $PGDATA" &>> finitdb_log
done
fi
fi
echo "reinit database cluster"
rm -R -f $PGDATA/* &>> finitdb_log
su - $PGUSER -c "$prefix/bin/initdb -D $PGDATA" &>> finitdb_log
echo "start server"
/etc/init.d/pgsql start &>> finitdb_log
$prefix/bin/pg_isready &>> finitdb_log
while [ $? != 0 ]; do
sleep 1;
$prefix/bin/pg_isready &>> finitdb_log
done
if [ -n "$1" ]; then
echo "create role $1"
su - $PGUSER -c "$prefix/bin/createuser -s $1" &>> finitdb_log
fi
echo "done"
Např:
[root@localhost pavel]# finitdb pavel shutdown server reinit database cluster start server create role pavel done