Spec-Zone.ru › MySQL 8.4

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

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

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

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

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

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

    SHOW BINARY LOG STATUS;
    

    Запишите значения, отображаемые в столбцах File и Position вывода.

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

    SELECT SOURCE_POS_WAIT(file, position);
    

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

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

Например, если есть три сервера A, B и C, которые реплицируют в круге, так что A реплицирует на B, B реплицирует на C, а 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-8.4-en/replication-mode-change-online-verify-transactions.html

Spec-Zone.ru

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