Spec-Zone.ru › MySQL 5.7

16.1.4.4 Проверка репликации анонимных транзакций

В этом разделе объясняется, как отслеживать топологию репликации и проверять, что все анонимные транзакции были реплицированы. Это полезно при онлайн-изменении режима репликации, так как позволяет убедиться в возможности безопасного перехода к транзакциям GTID.

Существует несколько способов ожидания репликации транзакций:

Самый простой метод, который работает независимо от топологии, но зависит от времени, заключается в следующем: если вы уверены, что реплика никогда не отстаёт более чем на N секунд, просто подождите немного больше N секунд. Или подождите день, или любой другой период времени, который вы считаете безопасным для вашей развёртывания.

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

  1. На источнике выполните:

    SHOW MASTER STATUS;

    Запишите значения в колонках File и Position.

  2. На каждой реплике используйте информацию о файле и позиции из источника для выполнения:

    SELECT MASTER_POS_WAIT(file, position);

Если у вас есть источник и несколько уровней реплик, другими словами, если у вас есть реплики реплик, повторите шаг 2 на каждом уровне, начиная с источника, затем со всеми прямыми репликами, затем со всеми репликами реплик и так далее.

Если вы используете циклическую топологию репликации, где несколько серверов могут иметь клиенты записи, выполните шаг 2 для каждого соединения источник-реплика, пока не будет пройден весь круг. Повторите весь процесс, чтобы пройти полный круг дважды.

Например, предположим, что у вас есть три сервера A, B и C, которые реплицируют данные по кругу, так что A -> B -> C -> A. Процедура в этом случае следующая:

  • Выполните шаг 1 на сервере A и шаг 2 на сервере B.

  • Выполните шаг 1 на сервере B и шаг 2 на сервере C.

  • Выполните шаг 1 на сервере C и шаг 2 на сервере A.

  • Выполните шаг 1 на сервере A и шаг 2 на сервере B.

  • Выполните шаг 1 на сервере B и шаг 2 на сервере C.

  • Выполните шаг 1 на сервере C и шаг 2 на сервере A.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/replication-mode-change-online-verify-transactions.html

Spec-Zone.ru

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