ВЫКЛЮЧЕНИЕ
Синтаксис
SHUTDOWN [WAIT FOR ALL { SLAVES | REPLICAS } ]
Описание
Команда SHUTDOWN выключает сервер.
ОЖИДАНИЕ ВСЕХ РЕПЛИК/ВСЕХ ВТОРИЧНЫХ СЕРВЕРОВ
Опция WAIT FOR ALL SLAVES была добавлена впервые в MariaDB 10.4.4. WAIT FOR ALL REPLICAS является синонимом с MariaDB 10.5.1.
При выключении первичного сервера и выполнении стандартной процедуры выключения, первичный сервер убивает потоки клиентов в случайном порядке. По умолчанию первичный сервер также рассматривает свои потоки выгрузки двоичного лога как обычные потоки клиентов. В результате, потоки выгрузки двоичного лога могут быть убиты, в то время как потоки клиентов всё ещё существуют, что означает, что данные могут быть записаны на первичном сервере во время нормального выключения и не будут реплицированы. Это верно даже при использовании полусинхронной репликации.
В MariaDB 10.4 и более поздних версиях, эта проблема может быть решена путём выключения сервера с помощью команды SHUTDOWN и предоставления опции WAIT FOR ALL REPLICAS/WAIT FOR ALL SLAVES этой команде. Например:
SHUTDOWN WAIT FOR ALL REPLICAS;
Когда предоставляется опция WAIT FOR ALL REPLICAS, сервер убивает свои потоки выгрузки двоичного лога только после того, как все потоки клиентов были убиты, и завершает выключение только после отправки последнего двоичного лога всем подключенным репликам.
Дополнительную информацию см. в разделе Потоки репликации: Потоки выгрузки двоичного лога и процесс выключения.
Необходимые права
Для использования этой команды необходимо право SHUTDOWN (см. GRANT). Это то же право, которое необходимо для использования команды mariadb-admin shutdown.
Выключение для обновлений
Если вы выполняете выключение для перехода на другую основную версию MariaDB, убедитесь, что переменная innodb_fast_shutdown не равна 2 (быстрое аварийное выключение). Значение по умолчанию для этой переменной — 1.
Пример
Следующий пример демонстрирует, как создать событие, которое отключает сервер в определенное время:
CREATE EVENT `test`.`shutd`
ON SCHEDULE
EVERY 1 DAY
STARTS '2014-01-01 20:00:00'
COMMENT 'Shutdown Maria when the office is closed'
DO BEGIN
SHUTDOWN;
END;
Другие способы остановки mariadbd
Вы можете использовать команду mariadb-admin shutdown для аккуратной остановки mariadbd.
Вы также можете использовать системную команду kill на Unix с сигналом SIGTERM (15)
kill -SIGTERM pid-of-mariadbd-process
Номер процесса серверного процесса можно найти в файле, который заканчивается .pid в вашем каталоге данных.
Вышесказанное идентично mariadb-admin shutdown.
В Windows следует использовать:
NET STOP MariaDB
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/shutdown/