19.1.2.4 Получение координат двоичного лога источника репликации
Для настройки реплики на запуск процесса репликации в правильной точке необходимо записать текущие координаты источника в его двоичном логе.
Эта процедура использует FLUSH TABLES WITH
READ LOCK, которая блокирует операции COMMIT для таблиц InnoDB.
Если планируется остановить источник для создания снимка данных, можно пропустить эту процедуру и вместо этого сохранить копию файла индекса двоичного лога вместе со снимком данных. В этом случае источник создаст новый файл двоичного лога при перезапуске. Координаты двоичного лога источника, с которых должна начаться репликация, будут соответствовать началу этого нового файла, то есть следующему файлу двоичного лога после файлов, указанных в скопированном файле индекса двоичного лога.
Для получения координат двоичного лога источника выполните следующие шаги:
-
Запустите сеанс на источнике, подключившись к нему с помощью командной строки, и очистите все таблицы, заблокировав операторы записи, выполнив оператор
FLUSH TABLES WITH READ LOCK:mysql>
FLUSH TABLES WITH READ LOCK;ПредупреждениеОставьте запущенным клиент, с которого вы выполнили оператор
FLUSH TABLES, чтобы блокировка чтения оставалась активной. Если вы выйдете из клиента, блокировка будет снята. -
В другом сеансе на источнике используйте оператор
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.