#!/bin/bash # https://mariadb.com/kb/en/using-encryption-and-compression-tools-with-mariabackup/ set -e myDir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$myDir/config.sh" backupFile=$1 if [ -z "$backupFile" ]; then echo "Backup file not defined." exit 1 fi if [ ! -f "$backupFile" ]; then echo "Backup file does not exist: $backupFile" exit 2 fi echo "Restoring MySQL data from backup." rm -rf "$restoreDir" mkdir -p "$restoreDir" echo "Decompresing backup." gzip --decompress --stdout "$backupFile" \ | mbstream -x --directory="$restoreDir" echo "Preparing backup." mariabackup \ --defaults-extra-file="$myDir/my.cnf" \ --prepare \ --target-dir="$restoreDir" echo "Stopping service." service mariadb stop if pgrep mariadbd; then pkill -9 mariadbd; fi echo "Restoring data." rm -rf "$dataDir" mariabackup \ --defaults-extra-file="$myDir/my.cnf" \ --move-back \ --target-dir="$restoreDir" \ 2>> "$logFile" chown -R mysql:mysql "$dataDir" rm "$dataDir/mysql/slow_log."* rm "$dataDir/mysql/general_log."* echo "Removing restore data." rm -r "$restoreDir"