Skip to content

Instantly share code, notes, and snippets.

@revant
Created April 20, 2022 08:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save revant/38d952807f309e37237a5ddbf731e3e0 to your computer and use it in GitHub Desktop.
Save revant/38d952807f309e37237a5ddbf731e3e0 to your computer and use it in GitHub Desktop.
MariaDB Backup + Restic
# Video: https://youtu.be/b-KFj8GfvzE
# Full Backup
mariadb-backup --backup \
--user=$DB_ROOT_USER \
--password=$DB_ROOT_PASSWORD \
--target-dir=$BACKUP_BASE_DIR
# Incremental Backup
mariadb-backup --backup \
--user=$DB_ROOT_USER \
--password=$DB_ROOT_PASSWORD \
--incremental-basedir=$BACKUP_BASE_DIR \
--target-dir=$BACKUP_INCREMENT_DIR
# # Compress
# mariadb-backup --backup \
# --user=$DB_ROOT_USER \
# --password=$DB_ROOT_PASSWORD \
# --incremental-basedir=$BACKUP_BASE_DIR \
# --target-dir=$BACKUP_INCREMENT_DIR | gzip > mariadb.xb.gz
# # Extract
# gunzip -c mariadb.xb.gz | mbstream -x
# Use restic
# mariadb-backup --backup \
# --user=$DB_ROOT_USER \
# --password=$DB_ROOT_PASSWORD \
# --incremental-basedir=$BACKUP_BASE_DIR \
# --target-dir=$BACKUP_INCREMENT_DIR | restic backup --stdin --stdin-filename mariadb.xb --tag MariaDB
# Restore using restic
# restic restore latest --target .
# mkdir mariadb_recovery && cd mariadb_recovery
# mbstream -x < ../mariadb.xb
# Prepare backup for restore
mariadb-backup --prepare --target-dir=$BACKUP_BASE_DIR
# # Prepare backup with increments
# for dir in $BACKUP_INCREMENT_DIR $BACKUP_INCREMENT_DIR_1 $BACKUP_INCREMENT_DIR_2 $BACKUP_INCREMENT_DIR_N; do
# mariadb-backup --prepare --target-dir=$BACKUP_BASE_DIR --incremental-dir=$dir
# done
# Stop mariadb
systemctl stop mariadb
# Remove datadir
mv /var/lib/mysql /var/lib/mysql_old
mkdir /var/lib/mysql
# --move-back or --copy-back backup
mariadb-backup --move-back --target-dir$BACKUP_BASE_DIR
# Fix rights
chown -R mysql:mysql /var/lib/mysql
# Start mariadb
systemctl start mariadb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment