@@ -30,10 +30,10 @@ init_backup
30
30
pgbench_objs 0001
31
31
pgbench -p${TEST_PGPORT} -d pgbench> /dev/null2>&1
32
32
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0001-before.out
33
- pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --quiet ; echo $?
34
- pg_arman validate -B${BACKUP_PATH} --quiet
33
+ pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE} /TEST-0001-run.out 2>&1 ; echo $?
34
+ pg_arman validate -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0001-run.out 2>&1
35
35
pg_ctl stop -m immediate> /dev/null2>&1
36
- pg_arman restore -B${BACKUP_PATH} --quiet ; echo $?
36
+ pg_arman restore -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0001-run.out 2>&1 ; echo $?
37
37
pg_ctl start -w -t 600> /dev/null2>&1
38
38
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0001-after.out
39
39
diff${TEST_BASE} /TEST-0001-before.out${TEST_BASE} /TEST-0001-after.out
@@ -43,14 +43,14 @@ echo '###### RESTORE COMMAND TEST-0002 ######'
43
43
echo ' ###### recovery to latest from full + page backups ######'
44
44
init_backup
45
45
pgbench_objs 0002
46
- pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --quiet ; echo $?
47
- pg_arman validate -B${BACKUP_PATH} --quiet
46
+ pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE} /TEST-0002-run.out 2>&1 ; echo $?
47
+ pg_arman validate -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0002-run.out 2>&1
48
48
pgbench -p${TEST_PGPORT} -d pgbench> /dev/null2>&1
49
- pg_arman backup -B${BACKUP_PATH} -b page -p${TEST_PGPORT} -d postgres --quiet ; echo $?
50
- pg_arman validate -B${BACKUP_PATH} --quiet
49
+ pg_arman backup -B${BACKUP_PATH} -b page -p${TEST_PGPORT} -d postgres --verbose >> ${TEST_BASE} /TEST-0002-run.out 2>&1 ; echo $?
50
+ pg_arman validate -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0002-run.out 2>&1
51
51
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0002-before.out
52
52
pg_ctl stop -m immediate> /dev/null2>&1
53
- pg_arman restore -B${BACKUP_PATH} --quiet ; echo $?
53
+ pg_arman restore -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0002-run.out 2>&1 ; echo $?
54
54
pg_ctl start -w -t 600> /dev/null2>&1
55
55
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0002-after.out
56
56
diff${TEST_BASE} /TEST-0002-before.out${TEST_BASE} /TEST-0002-after.out
@@ -61,21 +61,23 @@ echo '###### recovery to target timeline ######'
61
61
init_backup
62
62
pgbench_objs 0003
63
63
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0003-before.out
64
- pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --quiet ; echo $?
65
- pg_arman validate -B${BACKUP_PATH} --quiet
64
+ pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE} /TEST-0003-run.out 2>&1 ; echo $?
65
+ pg_arman validate -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0003-run.out 2>&1
66
66
TARGET_TLI=` pg_controldata| grep" TimeLineID:" | awk' {print $4}' `
67
67
pg_ctl stop -m immediate> /dev/null2>&1
68
- pg_arman restore -B${BACKUP_PATH} --quiet ; echo $?
68
+ pg_arman restore -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0003-run.out 2>&1 ; echo $?
69
69
pg_ctl start -w -t 600> /dev/null2>&1
70
70
pgbench -p${TEST_PGPORT} -d pgbench> /dev/null2>&1
71
71
pg_ctl stop -m immediate> /dev/null2>&1
72
- pg_arman restore -B${BACKUP_PATH} --recovery-target-timeline=${TARGET_TLI} --quiet ; echo $?
72
+ pg_arman restore -B${BACKUP_PATH} --recovery-target-timeline=${TARGET_TLI} --verbose >> ${TEST_BASE} /TEST-0003-run.out 2>&1 ; echo $?
73
73
echo " checking recovery.conf..."
74
74
TARGET_TLI_IN_RECOVERY_CONF=` grep" recovery_target_timeline =" ${PGDATA_PATH} /recovery.conf| awk' {print $3}' | sed -e" s/'//g" `
75
75
if [${TARGET_TLI} = ${TARGET_TLI_IN_RECOVERY_CONF} ]; then
76
76
echo ' OK: recovery.conf has the given target timeline.'
77
77
else
78
78
echo ' NG: recovery.conf does not have the given target timeline.'
79
+ pg_ctl stop -m immediate -D${PGDATA_PATH}
80
+ exit 1
79
81
fi
80
82
pg_ctl start -w -t 600> /dev/null2>&1
81
83
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
88
90
pgbench_objs 0004
89
91
pgbench -p${TEST_PGPORT} -d pgbench> /dev/null2>&1
90
92
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0004-before.out
91
- pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --quiet ; echo $?
92
- pg_arman validate -B${BACKUP_PATH} --quiet
93
+ pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE} /TEST-0004-run.out 2>&1 ; echo $?
94
+ pg_arman validate -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0004-run.out 2>&1
93
95
TARGET_TIME=` date +" %Y-%m-%d %H:%M:%S" `
94
96
pgbench -p${TEST_PGPORT} -d pgbench> /dev/null2>&1
95
97
pg_ctl stop -m immediate> /dev/null2>&1
96
- pg_arman restore -B${BACKUP_PATH} --recovery-target-time=" ${TARGET_TIME} " --quiet ; echo $?
98
+ pg_arman restore -B${BACKUP_PATH} --recovery-target-time=" ${TARGET_TIME} " --verbose >> ${TEST_BASE} /TEST-0004-run.out 2>&1 ; echo $?
97
99
pg_ctl start -w -t 600> /dev/null2>&1
98
100
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0004-after.out
99
101
diff${TEST_BASE} /TEST-0004-before.out${TEST_BASE} /TEST-0004-after.out
@@ -104,8 +106,8 @@ echo '###### recovery to target XID ######'
104
106
init_backup
105
107
pgbench_objs 0005
106
108
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" CREATE TABLE tbl0005 (a text);" > /dev/null2>&1
107
- pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --quiet ; echo $?
108
- pg_arman validate -B${BACKUP_PATH} --quiet
109
+ pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE} /TEST-0005-run.out 2>&1 ; echo $?
110
+ pg_arman validate -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0005-run.out 2>&1
109
111
pgbench -p${TEST_PGPORT} pgbench> /dev/null2>&1
110
112
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0005-before.out
111
113
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
116
118
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c' SELECT pg_switch_xlog()' > /dev/null2>&1
117
119
# Fast mode is used to ensure that the last segment is archived as well.
118
120
pg_ctl stop -m fast> /dev/null2>&1
119
- pg_arman restore -B${BACKUP_PATH} --recovery-target-xid=" ${TARGET_XID} " --quiet ; echo $?
121
+ pg_arman restore -B${BACKUP_PATH} --recovery-target-xid=" ${TARGET_XID} " --verbose >> ${TEST_BASE} /TEST-0005-run.out 2>&1 ; echo $?
120
122
pg_ctl start -w -t 600> /dev/null2>&1
121
123
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0005-after.out
122
124
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
125
127
echo ' OK: recovery-target-xid options works well.'
126
128
else
127
129
echo ' NG: recovery-target-xid options does not work well.'
130
+ pg_ctl stop -m immediate -D${PGDATA_PATH} > /dev/null2>&1
131
+ exit 1
128
132
fi
129
133
echo ' '
130
134
@@ -133,8 +137,8 @@ echo '###### recovery with target inclusive false ######'
133
137
init_backup
134
138
pgbench_objs 0006
135
139
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" CREATE TABLE tbl0006 (a text);" > /dev/null2>&1
136
- pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --quiet ; echo $?
137
- pg_arman validate -B${BACKUP_PATH} --quiet
140
+ pg_arman backup -B${BACKUP_PATH} -b full -p${TEST_PGPORT} -d postgres --verbose > ${TEST_BASE} /TEST-0006-run.out 2>&1 ; echo $?
141
+ pg_arman validate -B${BACKUP_PATH} --verbose >> ${TEST_BASE} /TEST-0003-run.out 2>&1
138
142
pgbench -p${TEST_PGPORT} pgbench> /dev/null2>&1
139
143
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0006-before.out
140
144
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
145
149
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c' SELECT pg_switch_xlog()' > /dev/null2>&1
146
150
# Fast mode is used to ensure that the last segment is archived as well.
147
151
pg_ctl stop -m fast> /dev/null2>&1
148
- pg_arman restore -B${BACKUP_PATH} --recovery-target-xid=" ${TARGET_XID} " --recovery-target-inclusive=false --quiet ; echo $?
152
+ 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 $?
149
153
pg_ctl start -w -t 600> /dev/null2>&1
150
154
psql --no-psqlrc -p${TEST_PGPORT} -d pgbench -c" SELECT * FROM pgbench_branches;" > ${TEST_BASE} /TEST-0006-after.out
151
155
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
154
158
echo ' NG: recovery-target-inclusive=false does not work well.'
155
159
else
156
160
echo ' OK: recovery-target-inclusive=false works well.'
161
+ pg_ctl stop -m immediate -D${PGDATA_PATH} > /dev/null2>&1
162
+ exit 1
157
163
fi
158
164
echo ' '
159
165