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