Spec-Zone.ru › MySQL 8.4

14.18.4 Функции синхронизации по позиции

Функции, перечисленные в этом разделе, используются для управления синхронизацией по позиции серверов-источников и реплик в MySQL Replication.

Таблица 14.28 Функции синхронизации по позиции

Таблица 14.28 Функции синхронизации по позиции
Имя Описание Устарело
MASTER_POS_WAIT() Ожидает, пока реплика прочитает и применит все обновления до указанной позиции Да
SOURCE_POS_WAIT() Ожидает, пока реплика прочитает и применит все обновления до указанной позиции

  • MASTER_POS_WAIT(log_name,log_pos[,timeout][,channel])

    Устаревший псевдоним для SOURCE_POS_WAIT().

  • SOURCE_POS_WAIT(log_name,log_pos[,timeout][,channel])

    Эта функция предназначена для управления синхронизацией источника и реплики. Она ожидает, пока реплика прочитает и применит все обновления до указанной позиции в двоичном журнале источника.

    Возвращаемое значение — количество событий журнала, которые реплике пришлось ждать, чтобы перейти к указанной позиции. Функция возвращает NULL, если поток SQL репликации не запущен, информация о источнике реплики не инициализирована, аргументы неверны или произошла ошибка. Она возвращает -1, если истекло время ожидания. Если поток SQL репликации останавливается, в то время как SOURCE_POS_WAIT() ожидает, функция возвращает NULL. Если реплика уже прошла указанную позицию, функция возвращает значение немедленно.

    Если позиция файла двоичного журнала помечена как недействительная, функция ожидает, пока не будет известна действительная позиция файла. Позиция файла двоичного журнала может быть помечена как недействительная, когда параметр CHANGE REPLICATION SOURCE TO GTID_ONLY установлен для канала репликации, и сервер перезапущен или репликация остановлена. Позиция файла становится действительной после успешного применения транзакции за указанной позицией файла. Если применитель не достигает указанной позиции, функция ожидает до истечения времени ожидания. Используйте оператор SHOW REPLICA STATUS, чтобы проверить, была ли позиция файла двоичного журнала помечена как недействительная.

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

    Если используется сжатие транзакций двоичного журнала и полезная нагрузка транзакции в указанной позиции сжата (как Transaction_payload_event), функция ожидает, пока вся транзакция не будет прочитана и применена, а позиции не обновятся.

    Если указано значение timeout, SOURCE_POS_WAIT() прекращает ожидание, когда истекло timeout секунд. timeout должно быть больше или равно 0. (При работе сервера в строгом режиме SQL отрицательное значение timeout сразу же отклоняется; в противном случае функция возвращает NULL и выводит предупреждение.)

    Необязательное значение channel позволяет указать, к какому каналу репликации применяется функция. Дополнительную информацию см. в Разделе 19.2.2, «Каналы репликации».

    Эта функция небезопасна для репликации на основе заявлений. Предупреждение записывается в журнал, если вы используете эту функцию, когда binlog_format установлено в STATEMENT.

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

Spec-Zone.ru

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