Восстановить InnoDB на другой машине

В настоящее время у меня есть резервные копии, которые были сделаны с помощью Percona XtraBackup всех моих баз данных MySQL.

Мой конкретный сценарий заключается в том, что я хочу восстановить месячный снимок базы данных InnoDB на своем локальном компьютере для тестирования, но я не могу найти инструкции для этого в документации Percona.

Читая в Google, я пришел к выводу, что мне нужно извлечь файл tar.gz на моем компьютере и "воспроизвести" журнал транзакций, но журнал находится на удаленном компьютере.

Поэтому мой вопрос заключается в том, какие конкретные шаги необходимы и каковы предосторожности для восстановления снимка БД на моем компьютере.

Наконец, кажется, что использование XtraBackup само по себе не гарантирует, что вы сможете восстановить свои данные, если что-то пойдет не так. Например, если сервер должен был умереть, резервные копии, которые я имею, были бы бесполезны без журнала транзакций. Таким образом, общая формулировка моего вопроса может состоять в том, какие шаги необходимо предпринять, чтобы гарантировать, что я могу восстановить свои данные на любой машине, которую я захочу.

Пожалуйста, имейте в виду, что моя основная специализация - не управление серверами!

1 ответ

После распаковки архива XtraBackup содержимое каталога должно выглядеть следующим образом:

[root@twindb-dev 2014-07-15_02-15-02]# ll
total 77872
-rw-r--r-- 1 root root      357 Jul 15 02:15 backup-my.cnf
drwx------ 2 root root     4096 Jul 15 02:15 dictionary
-rw-r----- 1 root root 79691776 Jul 15 02:15 ibdata1
drwx------ 2 root root     4096 Jul 15 02:15 mysql
drwxr-xr-x 2 root root     4096 Jul 15 02:15 performance_schema
drwx------ 2 root root     4096 Jul 15 02:15 sakila
drwx------ 2 root root     4096 Jul 15 02:15 sakila_recovered
drwx------ 2 root root     4096 Jul 15 02:15 test
drwx------ 2 root root     4096 Jul 15 02:15 twindb
-rw-r--r-- 1 root root       13 Jul 15 02:15 xtrabackup_binary
-rw-r----- 1 root root       93 Jul 15 02:15 xtrabackup_checkpoints
-rw-r----- 1 root root     2560 Jul 15 02:15 xtrabackup_logfile
[root@twindb-dev 2014-07-15_02-15-02]#

Журнал транзакций, о котором вы говорили xtrabackup_logfileэто не на удаленной машине, это включено в архив XtraBackup.

Итак, теперь вы должны применить журнал (они называют его "воспроизвести" журнал или "подготовить" резервное копирование)

Для этого запустите innobackupex с параметром --apply-log.

[root@twindb-dev 2014-07-15_02-15-02]# innobackupex --apply-log .

Если вы видите успешное завершение:

InnoDB: Shutdown completed; log sequence number 666258394
140715 02:20:30  innobackupex: completed OK!
[root@twindb-dev 2014-07-15_02-15-02]#

тогда контент 2014-07-15_02-15-02 готов к использованию.

Скопируйте все файлы из 2014-07-15_02-15-02 в свой каталог данных (по умолчанию в Linux это /var/lib/mysql)

[root@twindb-dev 2014-07-15_02-15-02]# cp -R * /var/lib/mysql

Исправить владение

# chown -R mysql:mysql  /var/lib/mysql

И запустить MySQL

# /etc/init.d/mysql start
Другие вопросы по тегам