Spec-Zone.ru › MySQL 5.7

16.1.2.3 Получение координат двоичного журнала источника репликации

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

Предупреждение

Эта процедура использует FLUSH TABLES WITH READ LOCK, которая блокирует операции COMMIT для таблиц InnoDB.

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

Чтобы получить координаты двоичного журнала источника, выполните следующие действия:

  1. Запустите сеанс на источнике, подключившись к нему с помощью командной строки, и очистите все таблицы, заблокировав операторы записи, выполнив оператор FLUSH TABLES WITH READ LOCK:

    mysql> FLUSH TABLES WITH READ LOCK;
    
    Предупреждение

    Оставьте клиент, с которого вы выдали оператор FLUSH TABLES, работающим, чтобы блокировка чтения оставалась активной. Если вы выйдете из клиента, блокировка будет снята.

  2. В другом сеансе на источнике используйте оператор SHOW MASTER STATUS для определения текущего имени файла двоичного журнала и позиции:

    mysql> SHOW MASTER STATUS\G
    *************************** 1. row ***************************
                 File: mysql-bin.000003
             Position: 73
         Binlog_Do_DB: test
     Binlog_Ignore_DB: manual, mysql
    Executed_Gtid_Set: 3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5
    1 row in set (0.00 sec)
    

    Столбец File показывает имя файла журнала, а столбец Position показывает позицию внутри файла. В этом примере файл двоичного журнала — mysql-bin.000003, а позиция — 73. Запишите эти значения. Вам понадобятся они позже при настройке реплики. Они представляют координаты репликации, с которых реплика должна начать обработку новых обновлений со стороны источника.

    Если источник ранее работал без включенного двоичного журналирования, значения имени файла журнала и позиции, отображаемые оператором SHOW MASTER STATUS или mysqldump --master-data, будут пустыми. В этом случае значения, которые вам понадобятся позже при указании файла журнала и позиции источника, — это пустая строка ('') и 4.

Теперь у вас есть информация, необходимая для того, чтобы реплика начала чтение из двоичного журнала в нужном месте для начала репликации.

Следующий шаг зависит от наличия существующих данных на источнике. Выберите один из следующих вариантов:

  • Если у вас есть существующие данные, которые необходимо синхронизировать с репликой перед началом репликации, оставьте клиент работающим, чтобы блокировка сохранялась. Это предотвратит внесение любых дальнейших изменений, так что данные, скопированные в реплику, будут синхронизированы с источником. Перейдите к разделу 16.1.2.4 «Выбор метода для моментальных копий данных».

  • Если вы настраиваете новую топологию репликации, вы можете выйти из первого сеанса, чтобы снять блокировку чтения. См. раздел 16.1.2.5.3 «Настройка репликации между новым источником и репликами» для получения дальнейших инструкций.

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

Spec-Zone.ru

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