Spec-Zone.ru › MySQL 9.2

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

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

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

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

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

Для получения координат двоичного лога источника выполните следующие шаги:

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

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

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

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

    mysql> SHOW BINARY LOG 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 BINARY LOG STATUS или mysqldump --source-data, будут пустыми. В этом случае значения, которые вам нужно будет использовать позже при указании файла двоичного лога и позиции источника, — это пустая строка ('') и 4.

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

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

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

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

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

Spec-Zone.ru

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