Spec-Zone.ru › MySQL 9.2

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

RESET REPLICA [ALL] [channel_option]

channel_option:
    FOR CHANNEL channel

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

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

Примечание

Все файлы журнала релеев удаляются, даже если они не были полностью выполнены потоком 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 репликации и поток ввода/вывода репликации (приемник) должны быть остановлены, поэтому на работающей реплике используйте 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 Cluster, 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-9.2-en/reset-replica.html

Spec-Zone.ru

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