Spec-Zone.ru › MySQL 5.7

16.3.1.2 Архивирование исходных данных с реплики

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

Для остановки сервера и архивации файлов:

  1. Остановите репликационный сервер MySQL:

    $> mysqladmin shutdown
  2. Скопируйте файлы данных. Вы можете использовать любой подходящий инструмент копирования или архивации, включая cp, tar или WinZip. Например, предполагая, что каталог данных находится в текущем каталоге, вы можете заархивировать весь каталог следующим образом:

    $> tar cf /tmp/dbbackup.tar ./data
  3. Запустите сервер MySQL снова. В Unix-подобных системах:

    $> mysqld_safe &

    В Windows:

    C:\> "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld"

Обычно вы должны архивировать весь каталог данных для реплики сервера MySQL. Если вы хотите иметь возможность восстановить данные и работать как реплика (например, в случае сбоя реплики), то помимо данных реплики, вы также должны архивировать файлы состояния реплики, репозитории метаданных репликации и файлы релейного журнала. Эти файлы необходимы для возобновления репликации после восстановления данных реплики.

Если вы потеряете релейные журналы, но у вас есть файл relay-log.info, вы можете проверить его, чтобы определить, насколько далеко выполнил свою работу поток SQL репликации в двоичных журналах источника. Затем вы можете использовать CHANGE MASTER TO с опциями MASTER_LOG_FILE и MASTER_LOG_POS, чтобы сказать реплике перечитать двоичные журналы с этой точки. Для этого требуется, чтобы двоичные журналы все еще существовали на сервере источника.

Если ваша реплика копирует инструкции LOAD DATA, вы также должны архивировать любые файлы SQL_LOAD-*, которые существуют в каталоге, который реплика использует для этой цели. Реплике нужны эти файлы, чтобы возобновить репликацию любых прерванных операций LOAD DATA. Расположение этого каталога является значением системной переменной slave_load_tmpdir. Если сервер не запускался с установленной этой переменной, расположение каталога является значением системной переменной tmpdir.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/replication-solutions-backups-rawdata.html

Spec-Zone.ru

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