В настоящее время у меня есть резервные копии всех моих баз данных 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