54 lines
1.1 KiB
Bash
54 lines
1.1 KiB
Bash
#!/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"
|
|
|