Spec-Zone.ru › MySQL Enterprise Backup 8.4

8.1 Настройка нового реплики

MySQL Enterprise Backup позволяет настроить сервер-реплику (ниже именуемый «реплика») путем резервного копирования исходного сервера (ниже именуемого «источник») и восстановления резервной копии на новую реплику без остановки источника.

Для серверов, НЕ использующих GTID:

  1. Сделайте полную резервную копию источника и затем, например, используйте команду copy-back-and-apply-log, чтобы восстановить резервную копию и файлы журналов в соответствующие каталоги новой реплики и подготовить данные.

    Примечание

    Не используйте опцию --no-locking при резервном копировании сервера, иначе вы не сможете получить правильную позицию двоичного журнала на шаге 4 ниже для инициализации реплики.

  2. Отредактируйте файл my.cnf новой реплики и поместите event_scheduler=off (если источник использует ) в раздел [mysqld].

  3. Запустите новую реплику mysqld. В выводе сервера вы увидите следующее:

    …
    InnoDB: Last MySQL binlog file position 0 128760007, file name ./hundin-bin.000006
    …
    

    Хотя отображена позиция двоичного журнала, это НЕ обязательно самая последняя позиция двоичного журнала на резервном сервере, так как InnoDB не сохраняет информацию о позиции двоичного журнала для операций DDL или любых изменений в таблицах, не являющихся InnoDB. Не используйте эту позицию двоичного журнала для инициализации реплики. Следующий шаг объясняет, как найти правильную позицию двоичного журнала для использования.

  4. Найдите файл datadir/meta/backup_variables.txt, где datadir - это каталог данных новой реплики. Просмотрите файл, чтобы извлечь последнюю позицию двоичного журнала и соответствующий номер файла журнала:

    binlog_position=hundin-bin.000006:128760128
  5. Используйте SQL-запрос CHANGE REPLICATION SOURCE TO и информацию, полученную на последнем шаге, для правильной инициализации реплики:

    CHANGE REPLICATION SOURCE TO
    SOURCE_LOG_FILE='hundin-bin.000006',
    SOURCE_LOG_POS=128760128;
    
  6. Установите статус любых событий, скопированных с источника, в DISABLE ON REPLICA. Например:

    mysql> ALTER EVENT mysql.event DISABLE ON REPLICA;
  7. Удалите строку skip-replica-start и записи event_scheduler=off, добавленные в файл my.cnf реплики на шаге 2. (Вы также можете оставить запись skip-replica-start, но тогда вам всегда потребуется использовать запрос для запуска репликации при каждом перезапуске сервера реплики.)

  8. Перезапустите сервер реплики. Репликация начнется.

Для серверов, использующих GTID (см. , как настроить серверы для использования GTID):

  1. Сделайте полную резервную копию источника и затем, например, используйте команду copy-back-and-apply-log, чтобы восстановить резервную копию и файлы журналов в соответствующие каталоги новой реплики с поддержкой GTID и подготовить данные.

  2. Отредактируйте файл my.cnf новой реплики и поместите skip-replica-start и event_scheduler=off (если источник использует ) в раздел [mysqld].

  3. Запустите новый сервер реплики.

  4. Подключитесь к серверу реплики с помощью клиента mysql. Затем выполните следующую команду, чтобы сбросить двоичный журнал:

    mysql> RESET MASTER;
    

    И выполните следующую команду, чтобы остановить двоичную запись:

    mysql> SET sql_log_bin=0;
  5. При резервном копировании сервера с функцией GTID, mysqlbackup создаёт файл с именем backup_gtid_executed.sql, который можно найти в восстановленном каталоге данных нового сервера реплики. Файл содержит SQL-запрос, который устанавливает параметр конфигурации GTID_PURGED на реплике:

    # On a new replica, issue the following command if GTIDs are enabled:
    SET @@GLOBAL.GTID_PURGED='f65db8e2-0e1a-11e5-a980-080027755380:1-3';
    

    Он также содержит закомментированный запрос для инициализации реплики:

    # Use the following command if you want to use the GTID handshake protocol:
    # CHANGE REPLICATION SOURCE TO SOURCE_AUTO_POSITION = 1;

    Раскомментируйте команду и добавьте необходимые параметры подключения и аутентификации (например, SOURCE_HOST, SOURCE_USER, SOURCE_PASSWORD и SOURCE_PORT):

    # Use the following command if you want to use the GTID handshake protocol:
    CHANGE REPLICATION SOURCE TO SOURCE_HOST='127.0.0.1', SOURCE_USER='muser', SOURCE_PASSWORD='mpass', SOURCE_PORT=18675, SOURCE_AUTO_POSITION = 1;

    Выполните файл с помощью клиента mysql

    mysql> source /path-to-backup_gtid_executed.sql/backup_gtid_executed.sql
  6. Установите статус любых событий, скопированных с источника, в DISABLE ON REPLICA. Например:

    mysql> ALTER EVENT mysql.event DISABLE ON REPLICA;
  7. Удалите записи skip-replica-start и event_scheduler=off, добавленные в файл my.cnf реплики на шаге 2. (Вы также можете оставить запись skip-replica-start, но тогда вам всегда потребуется использовать запрос для запуска репликации при каждом перезапуске сервера реплики.)

  8. Перезапустите сервер реплики. Репликация начнется.

Дополнительную информацию о GTID см. в .

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

Spec-Zone.ru

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