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"
|
||
|
|