Spec-Zone.ru › MySQL Enterprise Backup 4.1

5.1 Восстановление базы данных

  • 5.1.1 Восстановление сжатого резервного копирования
  • 5.1.2 Восстановление зашифрованного резервного образа
  • 5.1.3 Восстановление инкрементального резервного копирования
  • 5.1.4 Восстановление резервных копий, созданных с опцией --use-tts
  • 5.1.5 Восстановление резервной копии из облачного хранилища на сервер MySQL
  • 5.1.6 Восстановление внешних табличных пространств InnoDB в разные расположения
  • 5.1.7 Расширенное: Подготовка и восстановление резервной копии каталога

Команды mysqlbackup для выполнения операции восстановления — copy-back-and-apply-log и copy-back (только для резервных копий каталогов; см. раздел 5.1.7 «Расширенное: Подготовка и восстановление резервной копии каталога»). Обычно процесс восстановления требует, чтобы сервер базы данных был уже остановлен (или, по крайней мере, не работал с каталогом, в который восстанавливаются данные), за исключением восстановления резервных копий, созданных с опцией --use-tts; см. ниже объяснения в разделе. Процесс копирует файлы данных, журналы и другие файлы резервной копии из каталога резервной копии обратно в их исходные расположения и выполняет необходимые последующие обработки.

Пример 5.1 Восстановление базы данных

mysqlbackup --defaults-file=<my.cnf> -uroot --backup-image=<image_name> \
  --backup-dir=<backupTmpDir> --datadir=<restoreDir> copy-back-and-apply-log

Команда copy-back-and-apply-log достигает двух целей:

  • Извлекает резервную копию из файла образа и копирует её в каталог данных на восстанавливаемом сервере.

  • Выполняет операцию применения журнала к восстановленным данным, чтобы привести их к актуальному состоянию.

См. раздел 4.2.4 «Восстановление базы данных» для объяснения важных опций, используемых в операции восстановления, таких как --datadir, --backup-image и --backup-dir.

Восстановленные данные включают таблицу backup_history, где MySQL Enterprise Backup записывает подробности каждой резервной копии. Таблица позволяет выполнять будущие инкрементные резервные копии, используя опцию --incremental-base=history:{last_backup | last_full_backup}.

Важно
  • При выполнении восстановления убедитесь, что целевые каталоги для восстанавливаемых данных чистые, не содержат старых или нежелательных файлов данных (это может потребовать ручного удаления файлов в указанных расположениях параметрами --datadir, --innodb_data_home_dir, --innodb_log_group_home_dir и --innodb_undo_directory). Такая очистка не требуется при восстановлении резервных копий, созданных с опцией --use-tts (в этом случае применяются другие требования, описанные в разделе 5.1.4 «Восстановление резервных копий, созданных с опцией --use-tts»).

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

    $ chown -R mysql:mysql /path/to/datadir
  • Поскольку mysqlbackup не поддерживает функцию сервера MySQL, резервная копия может стать повреждённой, если во время процесса резервного копирования произошла операция DDL, которая использовала эту функцию. Чтобы избежать этой проблемы, mysqlbackup устанавливает системную переменную сервера в “1” в начале резервного копирования, если она равна “0”, чтобы все операции DDL, происходящие во время резервного копирования, обрабатывались с помощью старого метода копирования таблиц. mysqlbackup затем возвращает переменную к “0” в конце операции резервного копирования.

    Обратите внимание, что в тех случаях, когда mysqlbackup неожиданно завершается и не возвращает переменную к исходному значению, пользователю необходимо вручную установить её значение обратно в “0” на сервере, чтобы вернуть сервер в исходную конфигурацию. Это необходимо выполнить, если сообщение “Server system variable 'old_alter_table' was set to '0'. Setting it to '1'” появляется в начальном выводе mysqlbackup, но сообщение “Setting server system variable 'old_alter_table' back to '0'” не появляется до завершения работы mysqlbackup.

В следующих подразделах описываются различные сценарии восстановления резервной копии.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-enterprise-backup-4.1-en/restore.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API