|
9 | 9 | # - INCREMENTAL: Create ${TARGET_PREFIX}/full-{LASTDATE}-inc-${DATE} based on the last full-${DATE} |
10 | 10 | # |
11 | 11 | MODE="${MODE:-SIMPLE}" |
| 12 | +RUN_EVERY="${RUN_EVERY:-}" |
12 | 13 |
|
13 | 14 | TARGET_PREFIX="/target" |
14 | 15 | DATA_DIRECTORY="/var/lib/mysql" |
@@ -171,98 +172,100 @@ usage() { |
171 | 172 | echo " Runs the given command within the container." |
172 | 173 | } |
173 | 174 |
|
| 175 | +backup() { |
174 | 176 |
|
175 | | -case $1 in |
176 | | - backup) |
177 | | - |
| 177 | + RUNNING="true" |
| 178 | + while [ x"$RUNNING" = x"true" ] ; do |
178 | 179 |
|
179 | | - RUNNING="true" |
180 | | - while [ x"$RUNNING" = x"true" ] ; do |
| 180 | + DATE=$(date '+%Y-%m-%d-%H%M%S') |
| 181 | + NAME="${DATE}" |
181 | 182 |
|
182 | | - DATE=$(date '+%Y-%m-%d-%H%M%S') |
183 | | - NAME="${DATE}" |
184 | | - |
185 | | - if [ x"${MODE}" = x"FULL" ] ; then |
186 | | - echo "======================================================================" |
187 | | - echo "= Full backup process" |
188 | | - echo "======================================================================" |
189 | | - echo "" |
190 | | - |
191 | | - NAME="full-${DATE}" |
192 | | - else if [ x"${MODE}" = x"INCREMENTAL" ] ; then |
193 | | - echo "======================================================================" |
194 | | - echo "= Incremental backup process" |
195 | | - echo "======================================================================" |
196 | | - echo "" |
197 | | - BASE_BACKUP="$(find_last_full_backup)" |
198 | | - BASE_PATH="${TARGET_PREFIX}/${BASE_BACKUP}" |
199 | | - NAME="full-${BASE_BACKUP}-inc-$DATE" |
200 | | - echo "Base backup: ${BASE_BACKUP}" |
201 | | - echo "" |
202 | | - fi |
| 183 | + if [ x"${MODE}" = x"FULL" ] ; then |
| 184 | + echo "======================================================================" |
| 185 | + echo "= Full backup process" |
| 186 | + echo "======================================================================" |
| 187 | + echo "" |
203 | 188 |
|
204 | | - TARGET="${TARGET_PREFIX}/$NAME" |
| 189 | + NAME="full-${DATE}" |
| 190 | + fi |
205 | 191 |
|
| 192 | + if [ x"${MODE}" = x"INCREMENTAL" ] ; then |
206 | 193 | echo "======================================================================" |
207 | | - echo "= Starting backup process to $TARGET" |
| 194 | + echo "= Incremental backup process" |
208 | 195 | echo "======================================================================" |
209 | 196 | echo "" |
| 197 | + BASE_BACKUP="$(find_last_full_backup)" |
| 198 | + BASE_PATH="${TARGET_PREFIX}/${BASE_BACKUP}" |
| 199 | + NAME="full-${BASE_BACKUP}-inc-$DATE" |
| 200 | + echo "Base backup: ${BASE_BACKUP}" |
| 201 | + echo "" |
| 202 | + fi |
210 | 203 |
|
211 | | - setDefaults |
212 | | - |
213 | | - if [ ! -d "$TARGET" ] ; then |
214 | | - echo "$TARGET does not exist yet, creating" |
215 | | - mkdir -p "$TARGET" |
216 | | - fi |
| 204 | + TARGET="${TARGET_PREFIX}/$NAME" |
217 | 205 |
|
218 | | - echo "Creating backup in $TARGET" |
| 206 | + echo "======================================================================" |
| 207 | + echo "= Starting backup process to $TARGET" |
| 208 | + echo "======================================================================" |
| 209 | + echo "" |
219 | 210 |
|
220 | | - backupRancher $TARGET |
| 211 | + setDefaults |
221 | 212 |
|
222 | | - if [ x"${MODE}" = x"INCREMENTAL" ] ; then |
223 | | - # Backup - copies innodb files and reads binary log while doing so |
224 | | - xtrabackup --backup --datadir="$DATA_DIRECTORY" \ |
225 | | - --incremental-basedir="${BASE_PATH}" \ |
226 | | - --target-dir="$TARGET" ${USER[@]} ${PASSWORD[@]} \ |
227 | | - --host "${MYSQL_HOST}" --port ${MYSQL_PORT} \ |
228 | | - else |
229 | | - # Backup - copies innodb files and reads binary log while doing so |
230 | | - xtrabackup --backup --datadir="$DATA_DIRECTORY" \ |
231 | | - --incremental-basedir=/data/backups/base\ |
232 | | - --target-dir="$TARGET" ${USER[@]} ${PASSWORD[@]} \ |
233 | | - --host "${MYSQL_HOST}" --port ${MYSQL_PORT} \ |
234 | | - fi |
| 213 | + if [ ! -d "$TARGET" ] ; then |
| 214 | + echo "$TARGET does not exist yet, creating" |
| 215 | + mkdir -p "$TARGET" |
| 216 | + fi |
235 | 217 |
|
| 218 | + echo "Creating backup in $TARGET" |
| 219 | + |
| 220 | + backupRancher $TARGET |
| 221 | + |
| 222 | + if [ x"${MODE}" = x"INCREMENTAL" ] ; then |
| 223 | + # Backup - copies innodb files and reads binary log while doing so |
| 224 | + xtrabackup --backup --datadir="$DATA_DIRECTORY" \ |
| 225 | + --incremental-basedir="${BASE_PATH}" \ |
| 226 | + --target-dir="$TARGET" ${USER[@]} ${PASSWORD[@]} \ |
| 227 | + --host "${MYSQL_HOST}" --port ${MYSQL_PORT} |
| 228 | + else |
| 229 | + # Backup - copies innodb files and reads binary log while doing so |
| 230 | + xtrabackup --backup --datadir="$DATA_DIRECTORY" \ |
| 231 | + --incremental-basedir=/data/backups/base\ |
| 232 | + --target-dir="$TARGET" ${USER[@]} ${PASSWORD[@]} \ |
| 233 | + --host "${MYSQL_HOST}" --port ${MYSQL_PORT} |
| 234 | + fi |
236 | 235 |
|
| 236 | + if [ x"${MODE}" = x"SIMPLE" ] ; then |
| 237 | + echo "Mode is SIMPLE, preparing backups" |
237 | 238 |
|
238 | | - if [ x"${MODE}" = x"SIMPLE" ] ; then |
239 | | - echo "Mode is SIMPLE, preparing backups" |
| 239 | + # First prepare - selfheal innodb and apply binary log to make it consistent |
| 240 | + xtrabackup --prepare --target-dir="$TARGET" |
| 241 | + # Second prepare - write logfiles for faster server startup |
| 242 | + xtrabackup --prepare --target-dir="$TARGET" |
| 243 | + fi |
| 244 | + echo "$TARGET Done" |
240 | 245 |
|
241 | | - # First prepare - selfheal innodb and apply binary log to make it consistent |
242 | | - xtrabackup --prepare --target-dir="$TARGET" |
243 | | - # Second prepare - write logfiles for faster server startup |
244 | | - xtrabackup --prepare --target-dir="$TARGET" |
245 | | - fi |
246 | | - echo "$TARGET Done" |
| 246 | + createRestoreService "$NAME" |
247 | 247 |
|
248 | | - createRestoreService "$NAME" |
| 248 | + if [ ! -z "${RUN_EVERY}" ] ; then |
249 | 249 |
|
250 | | - if [ ! -z "RUN_EVERY" ] ; then |
| 250 | + echo "Sleeping for ${RUN_EVERY} before starting again" |
| 251 | + sleep "${RUN_EVERY}" |
251 | 252 |
|
252 | | - echo "Sleeping for $RUN_EVERY before starting again" |
253 | | - sleep "$RUN_EVERY" |
| 253 | + else |
254 | 254 |
|
255 | | - else |
| 255 | + echo "Environment variable RUN_EVERY was not set, not looping" |
| 256 | + RUNNING="false" |
256 | 257 |
|
257 | | - echo "Environment variable RUN_EVERY was not set, not looping" |
258 | | - RUNNING="false" |
| 258 | + fi |
259 | 259 |
|
260 | | - fi |
261 | 260 |
|
| 261 | + done |
| 262 | +} |
262 | 263 |
|
263 | | - done |
264 | | - ;; |
| 264 | +case $1 in |
| 265 | + backup) |
265 | 266 |
|
| 267 | + backup |
| 268 | + ;; |
266 | 269 | restore) |
267 | 270 | shift |
268 | 271 | TARGET="${TARGET_PREFIX}/$1" |
|
0 commit comments