Spec-Zone.ru › MySQL 8.4

15.4.2.3 Заявление RESET REPLICA

RESET REPLICA [ALL] [channel_option]

channel_option:
    FOR CHANNEL channel

RESET REPLICA заставляет реплику забыть свое положение в двоичном журнале источника.

Это утверждение предназначено для чистой перезагрузки; оно очищает репозитории метаданных репликации, удаляет все файлы журнала релея и запускает новый файл журнала релея. Оно также сбрасывает значение задержки репликации, указанной с помощью параметра SOURCE_DELAY утверждения CHANGE REPLICATION SOURCE TO.

Примечание

Все файлы журнала релея удаляются, даже если они еще не были полностью выполнены потоком SQL репликации. (Это состояние, вероятно, будет существовать на реплике, если вы выдали утверждение STOP REPLICA или если реплика сильно загружена.)

Для сервера, где используются GTID (gtid_mode равно ON), выполнение RESET REPLICA не влияет на историю выполнения GTID. Утверждение не изменяет значения gtid_executed или gtid_purged, или таблицу mysql.gtid_executed. Если вам необходимо сбросить историю выполнения GTID, используйте RESET BINARY LOGS AND GTIDS, даже если сервер с поддержкой GTID является репликой, где двоичная регистрация отключена.

RESET REPLICA требует привилегии RELOAD.

Для использования RESET REPLICA, поток репликации SQL и поток репликации I/O (приемник) должны быть остановлены, поэтому на работающей реплике используйте STOP REPLICA перед выполнением RESET REPLICA. Для использования RESET REPLICA на узле группы репликации, статус узла должен быть OFFLINE, что означает, что плагин загружен, но узел в данный момент не принадлежит ни к какой группе. Узел группы можно вывести из строя с помощью утверждения STOP GROUP REPLICATION.

Необязательная клауза FOR CHANNEL channel позволяет указать, к какому каналу репликации применяется утверждение. Применение клаузы FOR CHANNEL channel применяет утверждение RESET REPLICA к определённому каналу репликации. Объединение клаузы FOR CHANNEL channel с опцией ALL удаляет указанный канал. Если канал не указан и не существует дополнительных каналов, утверждение применяется к по умолчанию каналу. Выполнение утверждения RESET REPLICA ALL без клаузы FOR CHANNEL channel, когда существует несколько каналов репликации, удаляет все каналы репликации и воссоздаёт только канал по умолчанию. Дополнительную информацию см. в Разделе 19.2.2, «Каналы репликации».

RESET REPLICA не изменяет параметры подключения репликации, которые включают имя хоста и порт источника, учётную запись пользователя репликации и её пароль, учётную запись PRIVILEGE_CHECKS_USER, параметр REQUIRE_ROW_FORMAT, параметр REQUIRE_TABLE_PRIMARY_KEY_CHECK и параметр ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS. Если вы хотите изменить параметры подключения репликации, вы можете сделать это, используя утверждение CHANGE REPLICATION SOURCE TO после запуска сервера. Если вы хотите удалить все параметры подключения репликации, используйте RESET REPLICA ALL. RESET REPLICA ALL также очищает список IGNORE_SERVER_IDS, заданный CHANGE REPLICATION SOURCE TO. После использования RESET REPLICA ALL, если вы хотите снова использовать экземпляр в качестве реплики, вам необходимо выполнить утверждение CHANGE REPLICATION SOURCE TO после запуска сервера, чтобы указать новые параметры подключения.

Можно задать параметр GTID_ONLY в утверждении CHANGE REPLICATION SOURCE TO, чтобы остановить сохранение имён файлов и позиций файлов в репозиториях метаданных репликации. При выполнении RESET REPLICA, репозитории метаданных репликации синхронизируются. RESET REPLICA ALL удаляет, а не обновляет репозитории, поэтому они неявно синхронизируются.

В случае неожиданного завершения работы сервера или преднамеренной перезагрузки после выполнения RESET REPLICA, но перед выполнением START REPLICA, параметры подключения репликации сохраняются в безопасных для сбоев таблицах InnoDB mysql.slave_master_info и mysql.slave_relay_log_info как часть операции RESET REPLICA. Они также сохраняются в памяти. В случае неожиданного завершения работы сервера или преднамеренной перезагрузки после выполнения RESET REPLICA, но перед выполнением START REPLICA, параметры подключения репликации извлекаются из таблиц и повторно применяются к каналу. Это относится как к параметрам подключения, так и к репозиториям метаданных приложения.

RESET REPLICA не изменяет настройки фильтров репликации (например, --replicate-ignore-table) для каналов, затронутых утверждением. Однако RESET REPLICA ALL удаляет фильтры репликации, которые были установлены на каналах, удалённых утверждением. Когда удалённый канал или каналы воссоздаются, все глобальные фильтры репликации, указанные для реплики, копируются в них, и никакие специфичные для канала фильтры репликации не применяются. Для получения дополнительной информации см. Раздел 19.2.5.4, «Фильтры репликации, основанные на каналах».

RESET REPLICA вызывает неявную фиксацию текущей транзакции. См. Раздел 15.3.3, «Утверждения, вызывающие неявную фиксацию».

Если поток SQL репликации находился в середине репликации временных таблиц, когда он был остановлен, и выполняется RESET REPLICA, эти временные таблицы реплицируются на реплике удаляются.

Примечание

При использовании на реплике узла SQL кластера NDB RESET REPLICA очищает таблицу mysql.ndb_apply_status. При использовании данного утверждения следует помнить, что ndb_apply_status использует движок хранилища NDB и, следовательно, совместно используется всеми узлами SQL, подключенными к кластеру.

Можно переопределить это поведение, выполнив SET GLOBAL @@ndb_clear_apply_status=OFF перед выполнением RESET REPLICA, что предотвращает очистку таблицы ndb_apply_status в таких случаях.

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

Spec-Zone.ru

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