Skip to content

Instantly share code, notes, and snippets.

@douggreen
Created December 20, 2021 15:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save douggreen/d270f1315664b68b100ba9e04a33ed61 to your computer and use it in GitHub Desktop.
Save douggreen/d270f1315664b68b100ba9e04a33ed61 to your computer and use it in GitHub Desktop.
Restore a snapshot made with snapshotdb.sh
#!/bin/sh
if [ $# -ne 2 ]; then
echo "usage: $0 [database] [snapshot-name]"
exit 1
fi
DIR=~/databases/backup
DB=$1
SNAPSHOT=$2
SRC="$DIR/$DB/$SNAPSHOT"
brew services start mariadb
DEST=`mysql -A -e 'show variables' | grep datadir | sed -e 's/^datadir//g' -e 's,/$,,g'`
if [ "$DEST" = "" ]; then
echo "error: check database logs"
# exit 1
DEST=/opt/homebrew/var/mysql
fi
/opt/homebrew/bin/mariabackup --prepare --export --databases=$DB --target-dir="$SRC"
rm -fr $DEST/$DB
mkdir -p $DEST/$DB
mysql -A < "$DIR/$DB/$SNAPSHOT-pre.sql"
brew services stop mariadb
rsync -avrP --exclude '*.sql' $SRC/$DB $DEST
brew services start mariadb
sleep 2
mysql -A < "$DIR/$DB/$SNAPSHOT-post.sql"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment