Spec-Zone.ru › MySQL Enterprise Backup 4.1

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

MySQL Enterprise Backup позволяет настроить реплику, выполнив резервное копирование источника и восстановив копию на новом сервере реплики, не останавливая источник.

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

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

    Примечание

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

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

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

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

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

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

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

    CHANGE MASTER TO
    MASTER_LOG_FILE='hundin-bin.000006',
    MASTER_LOG_POS=128760128;
    
  6. Установите статусы любых событий, скопированных с источника, в SLAVESIDE_DISABLED. Например:

    mysql> UPDATE mysql.event SET status = 'SLAVESIDE_DISABLED';
  7. Удалите строку skip-slave-start и записи event_scheduler=off, которые вы добавили в файл my.cnf реплики на шаге 2. (Вы также можете оставить запись skip-slave-start, но тогда вам всегда нужно будет использовать оператор для запуска репликации при каждом перезапуске сервера реплики.)

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

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

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

  2. Измените файл my.cnf нового репликата и поместите skip-slave-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';
    

    Он также содержит закомментированную команду CHANGE MASTER TO для инициализации реплики:

    # Use the following command if you want to use the GTID handshake protocol:
    # CHANGE MASTER TO MASTER_AUTO_POSITION = 1;

    Разкомментируйте команду и добавьте необходимые параметры подключения и аутентификации (например, MASTER_HOST, MASTER_USER, MASTER_PASSWORD и MASTER_PORT):

    # Use the following command if you want to use the GTID handshake protocol:
    CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_USER='muser', MASTER_PASSWORD='mpass', MASTER_PORT=18675, MASTER_AUTO_POSITION = 1;

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

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

    mysql> UPDATE mysql.event SET status = 'SLAVESIDE_DISABLED';
  7. Удалите записи skip-slave-start и event_scheduler=off, которые вы добавили в файл my.cnf реплики на шаге 2. (Вы также можете оставить запись skip-slave-start, но тогда вам всегда нужно будет использовать оператор для запуска репликации при каждом перезапуске сервера реплики.)

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

Для получения дополнительной информации о GTID, см. .

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

Spec-Zone.ru

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