jackz

jackz / Backup galera cluster

Last active 9 hours ago

Like 0

Puts a server into maintenance mode (maxscale), performs full backup, compresses and exits maintenance mode

Revision 731a71d95c995d70d94366d87d381a879de1fb63

backup_mariadb_cluster.sh Raw
1#!/bin/bash
2SERVER=server_hs2
3BACKUP_OUTPUT=/tmp/backups
4set -e
5
6echo enter maintenance mode
7maxctrl set server "$SERVER" maintenance
8mariadb -e "SET GLOBAL wsrep_desync = ON;"
9
10backup_dir=$(mktemp -d)
11
12mkdir "$backup_output" || true
13
14cleanup () {
15 echo leaving maintenance mode
16 mariadb -e "SET GLOBAL wsrep_desync = OFF;"
17 maxctrl clear server "$SERVER" maintenance
18}
19trap cleanup EXIT
20
21echo running backup to "$backup_dir"
22mariadb-backup --backup --target-dir="$backup_dir"
23
24echo compressing
25cd "$BACKUP_OUTPUT"
26backup_file="dump-$(date +%Y-%m-%d_%H-%M-%S).tar.gz"
27tar czvf "$backup_file" "."
28
29echo backed up to "$BACKUP_OUTPUT/$backup_file"
30
31rm -r "$backup_dir"