Назад | Перейти на главную страницу

Завершение работы сервера несколько часов

У меня относительно большая база данных (> 500 ГБ), и я запустил yum update прошлой ночью это улучшило mysql-community-server.

С тех пор сервер MySQL находится в состоянии «Выполняется завершение работы сервера» вот уже 16 часов:

# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mysqld.service.d
           └─override.conf
   Active: deactivating (stop-sigterm) since Mon 2020-07-20 01:18:28 CEST; 14h ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 8318 (mysqld)
   Status: "Server shutdown in progress"
   CGroup: /system.slice/mysqld.service
           └─8318 /usr/sbin/mysqld

Плюс, mysqld теперь постоянно использует 300% ЦП.

Есть ли проблема или это просто следствие большого размера базы данных? Есть ли способ получить некоторое представление об оставшемся времени или посмотреть, что на самом деле делает сервер?

И что я могу сделать, чтобы ускорить этот процесс?

Для информации, сервер представляет собой 6-ядерный Xeon с 128 ГБ ОЗУ и накопителями NVMe, поэтому он довольно быстрый.

Имеется достаточно свободного места на диске и свободной оперативной памяти.

# free -m
              total        used        free      shared  buff/cache   available
Mem:         128889       88292       11189        2225       29407       37145
Swap:         16381        5168       11213

Обновить: Сейчас прошло 72 часа. Ничего не изменилось.

Кажется, это известная ошибка и причина, по которой это произошло, потому что вы не остановили базу данных перед обновлением и выполнялся некоторый запрос.

Вы можете найти более подробную информацию на Статья Percona

Попробуйте использовать утилиту командной строки mytop чтобы увидеть, что происходит. Но вы упомянули, что не можете получить доступ к базе данных, попробуйте под пользователем root. Если это возможно, сделайте резервную копию базы данных, если вы не можете, в худшем случае, вы попытаетесь восстановить БД, используя команды в Документация MySQL

В этом ответ Предполагается, что это может быть связано с настройками времени на вашем сервере.

Чтобы получить информацию о зависшем процессе, вы можете использовать lsof -c mysqld должен дать вам подсказку.

Вместо того, чтобы убить процесс mysqld, попробуйте перезапустить сервер с помощью команды systemctl reboot или shutdown -r now, не вынимайте его из розетки.