Spec-Zone.ru › MySQL 5.7

21.7.5 Подготовка NDB кластера для репликации

Подготовка NDB кластера для репликации состоит из следующих шагов:

  1. Проверьте совместимость версий всех серверов MySQL (см. Раздел 21.7.2, «Общие требования к репликации NDB Cluster»).

  2. Создайте учетную запись репликации на исходном кластере с соответствующими привилегиями, используя следующие два SQL-запроса:

    mysqlS> CREATE USER 'replica_user'@'replica_host'
         -> IDENTIFIED BY 'replica_password';
    
    mysqlS> GRANT REPLICATION SLAVE ON *.*
         -> TO 'replica_user'@'replica_host';
    

    В предыдущем запросе replica_user — имя пользователя учетной записи репликации, replica_host — имя хоста или IP-адрес реплики, а replica_password — пароль для этой учетной записи.

    Например, чтобы создать учетную запись пользователя реплики с именем myreplica, подключение с хоста replica-host и паролем 53cr37, используйте следующие CREATE USER и GRANT запросы:

    mysqlS> CREATE USER 'myreplica'@'replica-host'
         -> IDENTIFIED BY '53cr37';
    
    mysqlS> GRANT REPLICATION SLAVE ON *.*
         -> TO 'myreplica'@'replica-host';
    

    По соображениям безопасности рекомендуется использовать уникальную учетную запись — не используемую для других целей — для учетной записи репликации.

  3. Настройте реплику для использования источника. Используя клиент mysql, это можно сделать с помощью следующего CHANGE MASTER TO запроса:

    mysqlR> CHANGE MASTER TO
         -> MASTER_HOST='source_host',
         -> MASTER_PORT=source_port,
         -> MASTER_USER='replica_user',
         -> MASTER_PASSWORD='replica_password';
    

    В предыдущем запросе source_host — имя хоста или IP-адрес источника репликации, source_port — порт, используемый репликой при подключении к источнику, replica_user — имя пользователя, настроенное для реплики на источнике, а replica_password — пароль, заданный для этой учетной записи на предыдущем шаге.

    Например, чтобы указать реплике использовать MySQL-сервер с именем хоста rep-source с учетной записью репликации, созданной на предыдущем шаге, используйте следующий запрос:

    mysqlR> CHANGE MASTER TO
         -> MASTER_HOST='rep-source',
         -> MASTER_PORT=3306,
         -> MASTER_USER='myreplica',
         -> MASTER_PASSWORD='53cr37';
    

    Полный список опций, которые можно использовать с этим запросом, см. в Разделе 13.4.2.1, «Запрос CHANGE MASTER TO».

    Для обеспечения возможности резервного копирования репликации также необходимо добавить опцию --ndb-connectstring в файл конфигурации my.cnf реплики перед запуском процесса репликации. Подробности см. в Разделе 21.7.9, «Резервное копирование NDB Cluster с репликацией NDB Cluster».

    Дополнительные параметры, которые можно задать в файле конфигурации my.cnf для реплик, см. в Разделе 16.1.6, «Параметры и переменные репликации и двоичного логгирования».

  4. Если исходный кластер уже используется, можно создать резервную копию источника и загрузить её на реплику, чтобы сократить время синхронизации реплики с источником. Если реплика также работает с NDB Cluster, это можно сделать, используя процедуру резервного копирования и восстановления, описанную в Разделе 21.7.9, «Резервное копирование NDB Cluster с репликацией NDB Cluster».

    ndb-connectstring=management_host[:port]
    

    В случае, если вы не используете NDB Cluster на реплике, вы можете создать резервную копию с помощью этой команды на источнике:

    shellS> mysqldump --master-data=1
    

    Затем импортируйте полученные данные в реплику, скопировав файл дампа на неё. После этого вы можете использовать клиент mysql для импорта данных из файла дампа в базу данных реплики, как показано здесь, где dump_file — имя файла, созданного с помощью mysqldump на источнике, а db_name — имя базы данных для репликации:

    shellR> mysql -u root -p db_name < dump_file
    

    Полный список опций для использования с mysqldump см. в Разделе 4.5.4, «mysqldump — Программа резервного копирования базы данных».

    Примечание

    Если вы копируете данные в реплику таким образом, убедитесь, что реплика запущена с опцией --skip-slave-start в командной строке или включите skip-slave-start в файле конфигурации my.cnf реплики, чтобы предотвратить попытку подключения к источнику для начала репликации до загрузки всех данных. После завершения загрузки данных выполните дополнительные шаги, описанные в следующих двух разделах.

  5. Убедитесь, что каждому MySQL-серверу, выступающему в роли источника репликации, присвоен уникальный идентификатор сервера и включено двоичное протоколирование в формате с строками (см. Раздел 16.2.1, «Форматы репликации»). Кроме того, рекомендуется включить переменную системы slave_allow_batching; начиная с NDB 7.6.23, выдается предупреждение, если эта переменная установлена в значение OFF. Также следует рассмотреть увеличение значений, используемых с опциями --ndb-batch-size и --ndb-blob-write-batch-bytes. Все эти параметры можно настроить либо в файле конфигурации my.cnf исходного сервера, либо в командной строке при запуске процесса исходного mysqld. Дополнительная информация приведена в Разделе 21.7.6, «Запуск репликации NDB Cluster (один канал репликации)».

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

Spec-Zone.ru

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