Восстановление Innobackupex из SSH
Я регулярно делал резервные копии MySQL, используя Percona xtrabackup, используя команду, которую нашел в сети (я не глубоко разбираюсь в базах данных и их инструментах):
innobackupex --user=XXXX --password=XXXX --stream=tar ./ | sshpass -p XXXX ssh root@192.168.XX.XX "cat - > /var/lib/mysql_backups/name.tar"
Теперь размер файла резервной копии составляет 85 ГБ, и он ежедневно создавался как ПОЛНАЯ резервная копия. Мне нужно восстановить БД после сбоя, и она не работает.
Я смотрел внутри tar-файла (с tar -tif name.tar
) и я прочитал весь список имен файлов.
1) как нормальный способ восстановить БД из локального TAR с помощью --move-back
разархивировать все на месте и не использовать дополнительное место на диске?
2) Или есть возможность (если опция 1 недоступна) восстановить резервную копию с удаленного TAR, выполнив обратную процедуру, описанную в разделе Удаленное резервное копирование с использованием innobackupex? Я пытался несколько раз, но я не могу найти правильные варианты.
Я нашел вариант --remote-host
используется в посте с 2012 года, но в моей версии 1.5.1 эта опция отсутствует...
3) будучи потоковым =tar, как мне подготовить (при необходимости) tar перед восстановлением?
Заранее спасибо.
1 ответ
По поводу ваших вопросов:
1) как обычным способом восстановить БД из локального TAR, используя --move-back, чтобы распаковать все на месте и не использовать дополнительное место на диске?
Вы можете извлечь файл и направить вывод на конечный сервер с помощью командной строки:
# Execute the command where the backup is located
ssh <user>@<mysql_server> "cd <datadir> && tar -xvv" < backup.tar
Используя этот метод, вы избежите дополнительного места, необходимого для распаковки и копирования. Далее вам нужно подготовить резервную копию, которая является вашим вопросом № 3:
3) будучи потоковым =tar, как мне подготовить (при необходимости) tar перед восстановлением?
$ xtrabackup --prepare --target-dir=./<datadir>
Или с innobackupex
:
$ innobackupex --apply-log ./<datadir>
Обратите внимание, что, в конце концов, если операция завершится успешно, вы увидите сообщение:
InnoDB: Shutdown completed; log sequence number 9059880
180618 11:05:22 completed OK!
Тогда MySQL будет готов к запуску.
Более подробную информацию можно найти по этим ссылкам:
Подготовка бэкапа с помощью xtrabackup