Назад | Перейти на главную страницу

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

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

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

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

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

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

Имейте в виду, что моя основная область знаний - это не управление серверами!

После распаковки архива 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