Добрый день уважаемый All.
Пытаюсь дорасти до того, что бы спрыгнуть с несколько устаревшего mysqldump в пользу Percona XtraBackup.
Прослушал в пол уха доклад Алексея Копытова (спасибо!), загуглил прочёл по диагонали пару-тройку статеек “how to”, и почти копипастом смастырил себе вот такую наколенку:
#!/bin/bash
HOME_DIR=/tmp/backup
LOG=$HOME_DIR/innobackupex.log
NOW=$(date +"%Y-%m-%d")
MY_CNF=/etc/mysql/my.cnf
rm -rf $HOME_DIR/sql/*
rm -rf $HOME_DIR/*.tar.gz
innobackupex --defaults-file=$MY_CNF --no-timestamp --rsync --slave-info --parallel=2 $HOME_DIR/sql 2>> $LOG
innobackupex --apply-log $HOME_DIR/sql 2>> $LOG
tar -czf $HOME_DIR/$NOW.tar.gz $HOME_DIR/sql > /dev/null
sshpass -p passwordhere rsync -avt -e 'ssh -p222' $HOME_DIR/$NOW.prod.tar.gz userName@hostIp:/mnt/backup/sql
Запускается, что-то бекапит, это что-то потом даже восстанавливается (проверил).
Всё здорово… почти. Кроме одного - я пока что “научился” восстанавливать только “всё”:
sudo service mysql stop
mv /var/lib/mysql /var/lib/mysql.old
mkdir /var/lib/mysql
innobackupex --defaults-file=/etc/my.cnf --copy-back /tmp/backup/sql
sudo chown -R mysql: /var/lib/mysql
sudo service mysql start
В реальной жизни же, очень часто (на сколько часто вообще требуется восстановление) так вот в большинстве случаев, когда мне приходилось возиться с восстановлением данных - мне нужно было восстановить 2-3 таблицы из базы. По возможности - не потеряв при этом данные, накопленные в остальных таблицах базы, со времени последнего бекапа.
И да - на сервере у меня есть “много” баз. Когда сбой идёт в одной из них - мне нет резона “затирать” все остальные базы и все таблицы в нужной базе. Мне нужно восстановить только пусть 3 таблицы из одной определенной базы данных.
Вопрос: как грамотно организовывается частичное восстановление данных? Посоветуйте “лучшие практики”, пожалуйста! )
PS. Sorry за мой язык, знал бы я буржуйский - давно бы сам разобрался в доках, а так приходится выискиват/выспрашивать и “выпробывать” на практике. Последнее, зачастую, больно! (
PS2. Если (мало ли) средствами XtraBackup’а задуманное мной легко не осуществимо, то может кто-то посоветует что-то еще?
PS3. 10.0.34-MariaDB-0ubuntu0.16.04.1, большинство таблиц InnoDB, в интересующей базе все таблицы только в InnoDB.