You've already forked pg_probackup
mirror of
https://github.com/postgrespro/pg_probackup.git
synced 2025-07-05 05:50:16 +02:00
66 lines
3.0 KiB
Bash
66 lines
3.0 KiB
Bash
![]() |
#!/bin/bash
|
||
|
|
||
|
#============================================================================
|
||
|
# This is a test script for delete command of pg_arman.
|
||
|
#============================================================================
|
||
|
|
||
|
# Load common rules
|
||
|
. sql/common.sh delete
|
||
|
|
||
|
init_backup
|
||
|
echo '###### DELETE COMMAND TEST-0001 ######'
|
||
|
echo '###### delete full backups ######'
|
||
|
FIRST_BACKUP_DATE=`date +"%Y-%m-%d %H:%M:%S"`
|
||
|
pg_arman backup -B ${BACKUP_PATH} -b full -Z -p ${TEST_PGPORT} -d postgres --quiet
|
||
|
pgbench -p ${TEST_PGPORT} >> ${TEST_BASE}/pgbench.log 2>&1
|
||
|
SECOND_BACKUP_DATE=`date +"%Y-%m-%d %H:%M:%S"`
|
||
|
pg_arman backup -B ${BACKUP_PATH} -b full -Z -p ${TEST_PGPORT} -d postgres --quiet
|
||
|
pgbench -p ${TEST_PGPORT} >> ${TEST_BASE}/pgbench.log 2>&1
|
||
|
THIRD_BACKUP_DATE=`date +"%Y-%m-%d %H:%M:%S"`
|
||
|
pg_arman backup -B ${BACKUP_PATH} -b full -Z -p ${TEST_PGPORT} -d postgres --quiet
|
||
|
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||
|
|
||
|
echo "try to delete the oldest backup"
|
||
|
pg_arman -B ${BACKUP_PATH} delete ${SECOND_BACKUP_DATE} > /dev/null 2>&1
|
||
|
pg_arman show -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0001.out.1 2>&1
|
||
|
pg_arman show -a -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0001.out.2 2>&1
|
||
|
grep -c OK ${TEST_BASE}/TEST-0001.out.1
|
||
|
grep -c DELETED ${TEST_BASE}/TEST-0001.out.2
|
||
|
NUM_OF_DELETED_BACKUPS=`grep DELETED ${TEST_BASE}/TEST-0001.out.2 | wc -l | sed 's/^ *//'`
|
||
|
echo "Number of deleted backups should be 1, is it so?: ${NUM_OF_DELETED_BACKUPS}"
|
||
|
|
||
|
init_backup
|
||
|
echo '###### DELETE COMMAND TEST-0002 ######'
|
||
|
echo '###### keep backups which are necessary for recovery ######'
|
||
|
FIRST_BACKUP_DATE=`date +"%Y-%m-%d %H:%M:%S"`
|
||
|
pg_arman backup -B ${BACKUP_PATH} -b full -Z -p ${TEST_PGPORT} -d postgres --quiet
|
||
|
pgbench -p ${TEST_PGPORT} >> ${TEST_BASE}/pgbench.log 2>&1
|
||
|
SECOND_BACKUP_DATE=`date +"%Y-%m-%d %H:%M:%S"`
|
||
|
pg_arman backup -B ${BACKUP_PATH} -b full -Z -p ${TEST_PGPORT} -d postgres --quiet
|
||
|
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||
|
pgbench -p ${TEST_PGPORT} >> ${TEST_BASE}/pgbench.log 2>&1
|
||
|
THIRD_BACKUP_DATE=`date +"%Y-%m-%d %H:%M:%S"`
|
||
|
pg_arman backup -B ${BACKUP_PATH} -b page -Z -p ${TEST_PGPORT} -d postgres --quiet
|
||
|
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||
|
FOURTH_BACKUP_DATE=`date +"%Y-%m-%d %H:%M:%S"`
|
||
|
pg_arman backup -B ${BACKUP_PATH} -b full -Z -p ${TEST_PGPORT} -d postgres --quiet
|
||
|
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||
|
|
||
|
echo "try to delete before third backup"
|
||
|
pg_arman delete -B ${BACKUP_PATH} ${THIRD_BACKUP_DATE} > /dev/null 2>&1
|
||
|
pg_arman show -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0002.out.1 2>&1
|
||
|
pg_arman show -a -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0002.out.2 2>&1
|
||
|
grep -c OK ${TEST_BASE}/TEST-0002.out.1
|
||
|
grep -c DELETED ${TEST_BASE}/TEST-0002.out.2
|
||
|
NUM_OF_DELETED_BACKUPS=`grep DELETED ${TEST_BASE}/TEST-0002.out.2 | wc -l | sed 's/^ *//'`
|
||
|
echo "Number of deleted backups should be 1, is it so?: ${NUM_OF_DELETED_BACKUPS}"
|
||
|
|
||
|
init_backup
|
||
|
# clean up the temporal test data
|
||
|
pg_ctl stop -m immediate > /dev/null 2>&1
|
||
|
rm -fr ${PGDATA_PATH}
|
||
|
rm -fr ${BACKUP_PATH}
|
||
|
rm -fr ${ARCLOG_PATH}
|
||
|
rm -fr ${SRVLOG_PATH}
|
||
|
rm -fr ${TBLSPC_PATH}
|