recovery_1st_stage 871 B

123456789101112131415161718192021222324252627282930313233
  1. #!/bin/bash -x
  2. PGDATA=$1
  3. REMOTE_HOST=$2
  4. REMOTE_PGDATA=$3
  5. PORT=5432
  6. PGHOME=/home/yugo-n/pgsql-9.2.1
  7. ARCH=$PGHOME/data/arch
  8. rm -rf $ARCH/*
  9. ssh -T postgres@$REMOTE_HOST "
  10. LD_LIBRARY_PATH=$PGHOME/lib:LD_LIBRARH_PATH;
  11. rm -rf $REMOTE_PGDATA
  12. $PGHOME/bin/pg_basebackup -h $HOSTNAME -U r_user -D $REMOTE_PGDATA -x -c fast
  13. rm $REMOTE_PGDATA/trigger"
  14. ssh -T postgres@$REMOTE_HOST "rm -rf $ARCH/*"
  15. ssh -T postgres@$REMOTE_HOST "mkdir -p $REMOTE_PGDATA/pg_xlog/archive_status"
  16. ssh -T postgres@$REMOTE_HOST "
  17. cd $REMOTE_PGDATA;
  18. cp postgresql.conf postgresql.conf.bak;
  19. sed -e 's/#*hot_standby = off/hot_standby = on/' postgresql.conf.bak > postgresql.conf;
  20. rm -f postgresql.conf.bak;
  21. cat > recovery.conf << EOT
  22. standby_mode = 'on'
  23. primary_conninfo = 'host="$HOSTNAME" port=$PORT user=r_user'
  24. restore_command = 'scp $HOSTNAME:$ARCH/%f %p'
  25. trigger_file = '$PGDATA/trigger'
  26. EOT
  27. "