Force rebuild databázového clusteru
Skočit na navigaci
Skočit na vyhledávání
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