DBAtlas · Атлас эксплуатации баз данных

Плановое переключение primary в InnoDB Cluster

MySQLInnoDB Cluster

Команда

# Shell: planned switchover
mysqlsh icadmin@db1:3306 -- cluster set-primary-instance db2:3306

-- SQL alternative: target member's server_uuid, 30 s timeout for open transactions
SELECT MEMBER_HOST, MEMBER_ID, MEMBER_ROLE FROM performance_schema.replication_group_members;
SELECT group_replication_set_as_primary('3f06e651-c356-11f1-8aac-927a9034ef99', 30);

Что делает

Контролируемо переносит роль primary на другого участника в режиме single-primary; старый primary становится super_read_only, новый применяет накопившееся и открывается для записи. MySQL Router узнаёт о новом primary автоматически.

Когда использовать

Перед обслуживанием, патчингом ОС или обновлением primary и при переносе оборудования.

Внимание

Открытые транзакции на старом primary прерываются по истечении тайм-аута; без тайм-аута переключение ждёт их и занимает больше времени. Если приложение подключается не через Router, перенаправить его нужно самостоятельно. При BEFORE_ON_PRIMARY_FAILOVER запись ждёт, пока новый primary не применит накопившееся; сначала убедитесь в cluster status, что apply_queue пуста. В InnoDB Cluster предпочтительнее команда Shell; она остаётся согласованной с метаданными.

Открыть в DBAtlas →

Связанные материалы