1
0
mirror of https://github.com/postgrespro/pg_probackup.git synced 2024-12-02 09:53:24 +02:00
pg_probackup/sql/option.sh
Michael Paquier f2c523b1ee Remove un-needed WAL segments from archive at backup deletion
During the execution of the "delete" command, the oldest start LSN is saved
and used to determine what is the oldest WAL segment that needs to be kept
for the existing backups. Like pg_archivecleanup, the implemented logic
ignores the timeline part of the WAL segment name, ensuring that a segment
from a parent timeline will not be removed prematurely. This logic could
be made more complicated regarding this matter, but in order to take backups
from a node on a given timeline this is far enough.
2016-01-18 16:11:47 +09:00

98 lines
3.2 KiB
Bash

#!/bin/bash
#============================================================================
# This is a test script for options of pg_arman.
#============================================================================
# Load common rules
. sql/common.sh option
cleanup
echo '###### COMMAND OPTION TEST-0001 ######'
echo '###### help option ######'
pg_arman --help;echo $?
echo ''
echo '###### COMMAND OPTION TEST-0002 ######'
echo '###### version option ######'
pg_arman --version;echo $?
echo ''
echo '###### COMMAND OPTION TEST-0003 ######'
echo '###### backup command failure without backup path option ######'
pg_arman backup -A ${ARCLOG_PATH} -b full -p ${TEST_PGPORT};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0004 ######'
echo '###### backup command failure without backup mode option ######'
pg_arman backup -B ${BACKUP_PATH} -A ${ARCLOG_PATH} -p ${TEST_PGPORT};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0005 ######'
echo '###### backup command failure with invalid backup mode option ######'
pg_arman backup -B ${BACKUP_PATH} -A ${ARCLOG_PATH} -b bad -p ${TEST_PGPORT};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0006 ######'
echo '###### delete failure without archive path ######'
pg_arman delete -B ${BACKUP_PATH};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0007 ######'
echo '###### delete failure without DATE ######'
pg_arman delete -B ${BACKUP_PATH} -A ${ARCLOG_PATH};echo $?
echo ''
init_backup
echo '###### COMMAND OPTION TEST-0008 ######'
echo '###### syntax error in pg_arman.ini ######'
echo " = INFINITE" >> ${BACKUP_PATH}/pg_arman.ini
pg_arman backup -B ${BACKUP_PATH} -A ${ARCLOG_PATH} -p ${TEST_PGPORT};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0009 ######'
echo '###### invalid value in pg_arman.ini ######'
init_catalog
echo "BACKUP_MODE=" >> ${BACKUP_PATH}/pg_arman.ini
pg_arman backup -B ${BACKUP_PATH} -A ${ARCLOG_PATH} -p ${TEST_PGPORT};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0010 ######'
echo '###### invalid value in pg_arman.ini ######'
init_catalog
echo "KEEP_DATA_GENERATIONS=TRUE" >> ${BACKUP_PATH}/pg_arman.ini
pg_arman backup -B ${BACKUP_PATH} -A ${ARCLOG_PATH} -b full -p ${TEST_PGPORT};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0011 ######'
echo '###### invalid value in pg_arman.ini ######'
init_catalog
echo "SMOOTH_CHECKPOINT=FOO" >> ${BACKUP_PATH}/pg_arman.ini
pg_arman backup -B ${BACKUP_PATH} -A ${ARCLOG_PATH} -b full -p ${TEST_PGPORT};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0012 ######'
echo '###### invalid option in pg_arman.ini ######'
init_catalog
echo "TIMELINEID=1" >> ${BACKUP_PATH}/pg_arman.ini
pg_arman backup -B ${BACKUP_PATH} -A ${ARCLOG_PATH} -b full -p ${TEST_PGPORT};echo $?
echo ''
echo '###### COMMAND OPTION TEST-0013 ######'
echo '###### check priority of several pg_arman.ini files ######'
init_catalog
mkdir -p ${BACKUP_PATH}/conf_path_a
echo "BACKUP_MODE=ENV_PATH" > ${BACKUP_PATH}/pg_arman.ini
echo "BACKUP_MODE=ENV_PATH_A" > ${BACKUP_PATH}/conf_path_a/pg_arman.ini
pg_arman backup -B ${BACKUP_PATH} -A ${ARCLOG_PATH} -p ${TEST_PGPORT};echo $?
echo ''
# 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 ${TBLSPC_PATH}