mirror of
https://github.com/postgrespro/pg_probackup.git
synced 2025-02-12 14:56:08 +02:00
Make regression tests more verbose
The tests now rely on --verbose to print out useful information in the logs that can be used for debugging purposes. In case of a failure in some of the tests an overall cleanup is not done, this is particularly useful for PGDATA which could still be used for extra failure analysis.
This commit is contained in:
parent
f94c5ab447
commit
04c4c7b865
@ -1,34 +1,27 @@
|
||||
\! bash sql/backup.sh
|
||||
###### BACKUP COMMAND TEST-0001 ######
|
||||
###### full backup mode ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
1
|
||||
3
|
||||
###### BACKUP COMMAND TEST-0002 ######
|
||||
###### page-level backup mode ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
2
|
||||
6
|
||||
###### BACKUP COMMAND TEST-0003 ######
|
||||
###### full backup with smooth checkpoint ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
1
|
||||
3
|
||||
###### BACKUP COMMAND TEST-0004 ######
|
||||
###### full backup with keep-data-generations and keep-data-days ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
The number of existing full backups validated is greater than 2.
|
||||
OK. Let's try to test --keep-data-generations=1.
|
||||
9
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
Number of remaining full backups validated: 2
|
||||
Number of deleted backups : 2
|
||||
@ -36,8 +29,6 @@ Number of deleted backups : 2
|
||||
###### BACKUP COMMAND TEST-0005 ######
|
||||
###### switch backup mode from page to full ######
|
||||
page-level backup without validated full backup
|
||||
INFO: database backup start
|
||||
ERROR: Valid full backup not found for differential backup. Either create a full backup or validate existing one.
|
||||
10
|
||||
0
|
||||
0
|
||||
|
@ -1,21 +1,17 @@
|
||||
\! bash sql/restore.sh
|
||||
###### RESTORE COMMAND TEST-0001 ######
|
||||
###### recovery to latest from full backup ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
0
|
||||
|
||||
###### RESTORE COMMAND TEST-0002 ######
|
||||
###### recovery to latest from full + page backups ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
0
|
||||
|
||||
###### RESTORE COMMAND TEST-0003 ######
|
||||
###### recovery to target timeline ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
0
|
||||
0
|
||||
@ -24,21 +20,17 @@ OK: recovery.conf has the given target timeline.
|
||||
|
||||
###### RESTORE COMMAND TEST-0004 ######
|
||||
###### recovery to target time ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
0
|
||||
|
||||
###### RESTORE COMMAND TEST-0005 ######
|
||||
###### recovery to target XID ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
0
|
||||
OK: recovery-target-xid options works well.
|
||||
|
||||
###### RESTORE COMMAND TEST-0006 ######
|
||||
###### recovery with target inclusive false ######
|
||||
NOTICE: pg_stop_backup complete, all required WAL segments have been archived
|
||||
0
|
||||
0
|
||||
OK: recovery-target-inclusive=false works well.
|
||||
|
||||
|
@ -11,16 +11,16 @@ init_backup
|
||||
|
||||
echo '###### BACKUP COMMAND TEST-0001 ######'
|
||||
echo '###### full backup mode ######'
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0001-run.log 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0001-run.log 2>&1
|
||||
pg_arman show -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0001.log 2>&1
|
||||
grep -c OK ${TEST_BASE}/TEST-0001.log
|
||||
grep OK ${TEST_BASE}/TEST-0001.log | sed -e 's@[^-]@@g' | wc -c | sed 's/^ *//'
|
||||
|
||||
echo '###### BACKUP COMMAND TEST-0002 ######'
|
||||
echo '###### page-level backup mode ######'
|
||||
pg_arman backup -B ${BACKUP_PATH} -b page -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b page -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0002-run.log 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} >> ${TEST_BASE}/TEST-0002-run.log 2>&1
|
||||
pg_arman show -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0002.log 2>&1
|
||||
grep -c OK ${TEST_BASE}/TEST-0002.log
|
||||
grep OK ${TEST_BASE}/TEST-0002.log | sed -e 's@[^-]@@g' | wc -c | sed 's/^ *//'
|
||||
@ -28,8 +28,8 @@ grep OK ${TEST_BASE}/TEST-0002.log | sed -e 's@[^-]@@g' | wc -c | sed 's/^ *//'
|
||||
echo '###### BACKUP COMMAND TEST-0003 ######'
|
||||
echo '###### full backup with smooth checkpoint ######'
|
||||
init_catalog
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -C -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -C -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0003-run.log 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} >> ${TEST_BASE}/TEST-0003-run.log 2>&1
|
||||
pg_arman show -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0003.log 2>&1
|
||||
grep -c OK ${TEST_BASE}/TEST-0003.log
|
||||
grep OK ${TEST_BASE}/TEST-0003.log | sed -e 's@[^-]@@g' | wc -c | sed 's/^ *//'
|
||||
@ -37,10 +37,10 @@ grep OK ${TEST_BASE}/TEST-0003.log | sed -e 's@[^-]@@g' | wc -c | sed 's/^ *//'
|
||||
echo '###### BACKUP COMMAND TEST-0004 ######'
|
||||
echo '###### full backup with keep-data-generations and keep-data-days ######'
|
||||
init_catalog
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0004-run.log 2>&1;echo $?
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose >> ${TEST_BASE}/TEST-0004-run.log 2>&1;echo $?
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose >> ${TEST_BASE}/TEST-0004-run.log 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0004-run.log 2>&1
|
||||
pg_arman show -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0004-before.log 2>&1
|
||||
NUM_OF_FULL_BACKUPS_BEFORE=`grep OK ${TEST_BASE}/TEST-0004-before.log | grep FULL | wc -l | sed 's/^ *//'`
|
||||
if [ ${NUM_OF_FULL_BACKUPS_BEFORE} -gt 2 ] ; then
|
||||
@ -49,12 +49,14 @@ if [ ${NUM_OF_FULL_BACKUPS_BEFORE} -gt 2 ] ; then
|
||||
else
|
||||
echo "The number of existing full backups validated is not greater than 2."
|
||||
echo "NG. There was something wrong in preparation of this test."
|
||||
pg_ctl stop -m immediate -D ${PGDATA_PATH} > /dev/null 2>&1
|
||||
exit 1
|
||||
fi
|
||||
# The actual value of NUM_OF_FULL_BACKUPS_BEFORE can vary on env, so commented out as default.
|
||||
#echo "Number of existing full backups validated: ${NUM_OF_FULL_BACKUPS_BEFORE}"
|
||||
grep OK ${TEST_BASE}/TEST-0004-before.log | sed -e 's@[^-]@@g' | wc -c | sed 's/^ *//'
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full --keep-data-days=-1 --keep-data-generations=1 -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full --keep-data-days=-1 --keep-data-generations=1 -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0005-run.log 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0005-run.log 2>&1
|
||||
pg_arman show --show-all -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0004-after.log 2>&1
|
||||
NUM_OF_FULL_BACKUPS_AFTER=`grep OK ${TEST_BASE}/TEST-0004-after.log | grep FULL | wc -l | sed 's/^ *//'`
|
||||
echo "Number of remaining full backups validated: ${NUM_OF_FULL_BACKUPS_AFTER}"
|
||||
@ -66,15 +68,15 @@ echo '###### BACKUP COMMAND TEST-0005 ######'
|
||||
echo '###### switch backup mode from page to full ######'
|
||||
init_catalog
|
||||
echo 'page-level backup without validated full backup'
|
||||
pg_arman backup -B ${BACKUP_PATH} -b page -p ${TEST_PGPORT} -d postgres;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b page -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0006-run.log 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0006-run.log 2>&1
|
||||
pg_arman show -B ${BACKUP_PATH} > ${TEST_BASE}/TEST-0005.log 2>&1
|
||||
grep OK ${TEST_BASE}/TEST-0005.log | grep FULL | wc -l | sed 's/^ *//'
|
||||
grep ERROR ${TEST_BASE}/TEST-0005.log | grep INCR | wc -l | sed 's/^ *//'
|
||||
|
||||
# cleanup
|
||||
## clean up the temporal test data
|
||||
pg_ctl stop -m immediate > /dev/null 2>&1
|
||||
pg_ctl stop -m immediate -D ${PGDATA_PATH} > /dev/null 2>&1
|
||||
rm -fr ${PGDATA_PATH}
|
||||
rm -fr ${BACKUP_PATH}
|
||||
rm -fr ${ARCLOG_PATH}
|
||||
|
@ -30,10 +30,10 @@ init_backup
|
||||
pgbench_objs 0001
|
||||
pgbench -p ${TEST_PGPORT} -d pgbench > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0001-before.out
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0001-run.out 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0001-run.out 2>&1
|
||||
pg_ctl stop -m immediate > /dev/null 2>&1
|
||||
pg_arman restore -B ${BACKUP_PATH} --quiet;echo $?
|
||||
pg_arman restore -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0001-run.out 2>&1;echo $?
|
||||
pg_ctl start -w -t 600 > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0001-after.out
|
||||
diff ${TEST_BASE}/TEST-0001-before.out ${TEST_BASE}/TEST-0001-after.out
|
||||
@ -43,14 +43,14 @@ echo '###### RESTORE COMMAND TEST-0002 ######'
|
||||
echo '###### recovery to latest from full + page backups ######'
|
||||
init_backup
|
||||
pgbench_objs 0002
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0002-run.out 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0002-run.out 2>&1
|
||||
pgbench -p ${TEST_PGPORT} -d pgbench > /dev/null 2>&1
|
||||
pg_arman backup -B ${BACKUP_PATH} -b page -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b page -p ${TEST_PGPORT} -d postgres --verbose >> ${TEST_BASE}/TEST-0002-run.out 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0002-run.out 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0002-before.out
|
||||
pg_ctl stop -m immediate > /dev/null 2>&1
|
||||
pg_arman restore -B ${BACKUP_PATH} --quiet;echo $?
|
||||
pg_arman restore -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0002-run.out 2>&1;echo $?
|
||||
pg_ctl start -w -t 600 > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0002-after.out
|
||||
diff ${TEST_BASE}/TEST-0002-before.out ${TEST_BASE}/TEST-0002-after.out
|
||||
@ -61,21 +61,23 @@ echo '###### recovery to target timeline ######'
|
||||
init_backup
|
||||
pgbench_objs 0003
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0003-before.out
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0003-run.out 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0003-run.out 2>&1
|
||||
TARGET_TLI=`pg_controldata | grep " TimeLineID:" | awk '{print $4}'`
|
||||
pg_ctl stop -m immediate > /dev/null 2>&1
|
||||
pg_arman restore -B ${BACKUP_PATH} --quiet;echo $?
|
||||
pg_arman restore -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0003-run.out 2>&1;echo $?
|
||||
pg_ctl start -w -t 600 > /dev/null 2>&1
|
||||
pgbench -p ${TEST_PGPORT} -d pgbench > /dev/null 2>&1
|
||||
pg_ctl stop -m immediate > /dev/null 2>&1
|
||||
pg_arman restore -B ${BACKUP_PATH} --recovery-target-timeline=${TARGET_TLI} --quiet;echo $?
|
||||
pg_arman restore -B ${BACKUP_PATH} --recovery-target-timeline=${TARGET_TLI} --verbose >> ${TEST_BASE}/TEST-0003-run.out 2>&1;echo $?
|
||||
echo "checking recovery.conf..."
|
||||
TARGET_TLI_IN_RECOVERY_CONF=`grep "recovery_target_timeline = " ${PGDATA_PATH}/recovery.conf | awk '{print $3}' | sed -e "s/'//g"`
|
||||
if [ ${TARGET_TLI} = ${TARGET_TLI_IN_RECOVERY_CONF} ]; then
|
||||
echo 'OK: recovery.conf has the given target timeline.'
|
||||
else
|
||||
echo 'NG: recovery.conf does not have the given target timeline.'
|
||||
pg_ctl stop -m immediate -D ${PGDATA_PATH}
|
||||
exit 1
|
||||
fi
|
||||
pg_ctl start -w -t 600 > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0003-after.out
|
||||
@ -88,12 +90,12 @@ init_backup
|
||||
pgbench_objs 0004
|
||||
pgbench -p ${TEST_PGPORT} -d pgbench > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0004-before.out
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0004-run.out 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0004-run.out 2>&1
|
||||
TARGET_TIME=`date +"%Y-%m-%d %H:%M:%S"`
|
||||
pgbench -p ${TEST_PGPORT} -d pgbench > /dev/null 2>&1
|
||||
pg_ctl stop -m immediate > /dev/null 2>&1
|
||||
pg_arman restore -B ${BACKUP_PATH} --recovery-target-time="${TARGET_TIME}" --quiet;echo $?
|
||||
pg_arman restore -B ${BACKUP_PATH} --recovery-target-time="${TARGET_TIME}" --verbose >> ${TEST_BASE}/TEST-0004-run.out 2>&1;echo $?
|
||||
pg_ctl start -w -t 600 > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0004-after.out
|
||||
diff ${TEST_BASE}/TEST-0004-before.out ${TEST_BASE}/TEST-0004-after.out
|
||||
@ -104,8 +106,8 @@ echo '###### recovery to target XID ######'
|
||||
init_backup
|
||||
pgbench_objs 0005
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "CREATE TABLE tbl0005 (a text);" > /dev/null 2>&1
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0005-run.out 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0005-run.out 2>&1
|
||||
pgbench -p ${TEST_PGPORT} pgbench > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0005-before.out
|
||||
TARGET_XID=`psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -tAq -c "INSERT INTO tbl0005 VALUES ('inserted') RETURNING (xmin);"`
|
||||
@ -116,7 +118,7 @@ pgbench -p ${TEST_PGPORT} -d pgbench > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c 'SELECT pg_switch_xlog()' > /dev/null 2>&1
|
||||
# Fast mode is used to ensure that the last segment is archived as well.
|
||||
pg_ctl stop -m fast > /dev/null 2>&1
|
||||
pg_arman restore -B ${BACKUP_PATH} --recovery-target-xid="${TARGET_XID}" --quiet;echo $?
|
||||
pg_arman restore -B ${BACKUP_PATH} --recovery-target-xid="${TARGET_XID}" --verbose >> ${TEST_BASE}/TEST-0005-run.out 2>&1;echo $?
|
||||
pg_ctl start -w -t 600 > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0005-after.out
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM tbl0005;" > ${TEST_BASE}/TEST-0005-tbl.dump
|
||||
@ -125,6 +127,8 @@ if grep "inserted" ${TEST_BASE}/TEST-0005-tbl.dump > /dev/null ; then
|
||||
echo 'OK: recovery-target-xid options works well.'
|
||||
else
|
||||
echo 'NG: recovery-target-xid options does not work well.'
|
||||
pg_ctl stop -m immediate -D ${PGDATA_PATH} > /dev/null 2>&1
|
||||
exit 1
|
||||
fi
|
||||
echo ''
|
||||
|
||||
@ -133,8 +137,8 @@ echo '###### recovery with target inclusive false ######'
|
||||
init_backup
|
||||
pgbench_objs 0006
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "CREATE TABLE tbl0006 (a text);" > /dev/null 2>&1
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --quiet;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --quiet
|
||||
pg_arman backup -B ${BACKUP_PATH} -b full -p ${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE}/TEST-0006-run.out 2>&1;echo $?
|
||||
pg_arman validate -B ${BACKUP_PATH} --verbose >> ${TEST_BASE}/TEST-0003-run.out 2>&1
|
||||
pgbench -p ${TEST_PGPORT} pgbench > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0006-before.out
|
||||
TARGET_XID=`psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -tAq -c "INSERT INTO tbl0006 VALUES ('inserted') RETURNING (xmin);"`
|
||||
@ -145,7 +149,7 @@ pgbench -p ${TEST_PGPORT} -d pgbench > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c 'SELECT pg_switch_xlog()' > /dev/null 2>&1
|
||||
# Fast mode is used to ensure that the last segment is archived as well.
|
||||
pg_ctl stop -m fast > /dev/null 2>&1
|
||||
pg_arman restore -B ${BACKUP_PATH} --recovery-target-xid="${TARGET_XID}" --recovery-target-inclusive=false --quiet;echo $?
|
||||
pg_arman restore -B ${BACKUP_PATH} --recovery-target-xid="${TARGET_XID}" --recovery-target-inclusive=false --verbose >> ${TEST_BASE}/TEST-0006-run.out 2>&1;echo $?
|
||||
pg_ctl start -w -t 600 > /dev/null 2>&1
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM pgbench_branches;" > ${TEST_BASE}/TEST-0006-after.out
|
||||
psql --no-psqlrc -p ${TEST_PGPORT} -d pgbench -c "SELECT * FROM tbl0006;" > ${TEST_BASE}/TEST-0006-tbl.dump
|
||||
@ -154,6 +158,8 @@ if grep "inserted" ${TEST_BASE}/TEST-0006-tbl.dump > /dev/null ; then
|
||||
echo 'NG: recovery-target-inclusive=false does not work well.'
|
||||
else
|
||||
echo 'OK: recovery-target-inclusive=false works well.'
|
||||
pg_ctl stop -m immediate -D ${PGDATA_PATH} > /dev/null 2>&1
|
||||
exit 1
|
||||
fi
|
||||
echo ''
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user