Spec-Zone.ru › MySQL 5.7

13.4.2.3 Выполнение оператора RESET SLAVE

RESET SLAVE [ALL] [channel_option]

channel_option:
    FOR CHANNEL channel

RESET SLAVE заставляет реплика забыть свою позицию репликации в двоичном журнале источника. Этот оператор предназначен для чистого запуска: он очищает хранилища метаданных репликации, удаляет все файлы журнала ретрансляции и начинает новый файл журнала ретрансляции. Он также сбрасывает до 0 задержку репликации, указанную с помощью опции MASTER_DELAY для CHANGE MASTER TO.

Примечание

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

Для сервера, где используются GTID (gtid_mode равен ON), выполнение RESET SLAVE не влияет на историю выполнения GTID. Оператор не меняет значения gtid_executed или gtid_purged, или таблицу mysql.gtid_executed. Если вам нужно сбросить историю выполнения GTID, используйте RESET MASTER, даже если сервер с поддержкой GTID является репликой, где двоичная регистрация отключена.

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

Для использования RESET SLAVE, потоки репликации должны быть остановлены, поэтому на работающей реплике используйте STOP SLAVE перед выполнением RESET SLAVE. Для использования RESET SLAVE на члене группы Group Replication, статус члена должен быть OFFLINE, что означает, что плагин загружен, но член в данный момент не принадлежит к группе. Член группы может быть выведен из строя с помощью оператора STOP GROUP REPLICATION.

Необязательная клауза FOR CHANNEL channel позволяет указать канал репликации, к которому применяется оператор. Указание клаузы FOR CHANNEL channel применяет оператор RESET SLAVE к определённому каналу репликации. Сочетание клаузы FOR CHANNEL channel с опцией ALL удаляет указанный канал. Если канал не указан и дополнительных каналов не существует, оператор применяется к каналу по умолчанию. Выполнение оператора RESET SLAVE ALL без клаузы FOR CHANNEL channel, когда существует несколько каналов репликации, удаляет все каналы репликации и создаёт только канал по умолчанию. Более подробную информацию см. в Разделе 16.2.2, «Каналы репликации».

RESET SLAVE не изменяет параметры соединения репликации, такие как имя хоста и порт источника, имя пользователя репликации и его пароль.

  • С MySQL 5.7.24, когда master_info_repository=TABLE установлено на сервере, параметры соединения репликации сохраняются в безопасной при сбоях таблице InnoDB mysql.slave_master_info как часть операции RESET SLAVE. Они также сохраняются в памяти. В случае неожиданного выхода из строя сервера или преднамеренной перезагрузки после выполнения RESET SLAVE, но до выполнения START SLAVE, параметры соединения репликации извлекаются из таблицы и повторно используются для нового соединения.

  • Когда master_info_repository=FILE установлено на сервере (что является значением по умолчанию в MySQL 5.7), параметры соединения репликации сохраняются только в памяти. Если реплика mysqld перезагружается сразу после выполнения RESET SLAVE из-за неожиданного выхода из строя сервера или преднамеренной перезагрузки, параметры соединения теряются. В этом случае необходимо выполнить оператор CHANGE MASTER TO после запуска сервера, чтобы снова указать параметры соединения, прежде чем выполнять START SLAVE.

Если вы хотите намеренно сбросить параметры соединения, вам нужно использовать RESET SLAVE ALL, что очистит параметры соединения. В этом случае необходимо выполнить оператор CHANGE MASTER TO после запуска сервера, чтобы указать новые параметры соединения.

RESET SLAVE вызывает неявное подтверждение текущей транзакции. Смотрите Раздел 13.3.3, «Операторы, вызывающие неявное подтверждение».

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

До MySQL 5.7.5, RESET SLAVE также имел эффект сброса как периода ожидания сердцебиения (Slave_heartbeat_period), так и SSL_VERIFY_SERVER_CERT. Эта проблема исправлена в MySQL 5.7.5 и более поздних версиях. (Ошибка #18777899, Ошибка #18778485)

До MySQL 5.7.5, RESET SLAVE ALL не очищал список IGNORE_SERVER_IDS, заданный оператором CHANGE MASTER TO. В MySQL 5.7.5 и более поздних версиях оператор очищает этот список. (Ошибка #18816897)

Примечание

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

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

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

Spec-Zone.ru

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