Я использую версию Percona MySQL Server v5.6, и каждые несколько дней MySQL, похоже, падает, а затем автоматически перезапускается. Как мне выяснить причину сбоя? Я видел, как у других людей MySQL неожиданно останавливался, и, похоже, это было связано с проблемами памяти, но в их случаях журнал ошибок упоминает об этом. В моем случае в файле журнала ничего не появляется, пока он не перезапускается.
Я включаю соответствующий файл журнала ниже с последней "ожидаемой" ошибкой, а затем то, что он регистрирует при перезапуске MySQL. Он состоит из различных предупреждений "Unsafe statementwritten to the binary log" до сбоя, но я не думаю, что они являются причиной сбоя. (Я скоро обновлю операторы, чтобы не использовать конструкцию, ON DUPLICATE KEY
чтобы остановить их и не дать журналу переполняться. Я также должен упомянуть, что я не занимаюсь репликацией, поэтому не думаю, что они слишком важны в данный момент.)
Сервер представляет собой 64-битную версию Centos 6.6, работающую на виртуальной машине (Virtuozzo).
Надеюсь, кто-нибудь сможет указать мне верное направление, чтобы определить, что является причиной сбоя. Спасибо!
Файл журнала ниже:
2018-03-19 08:39:51 21476 [Предупреждение] Небезопасный оператор, записанный в двоичный журнал с использованием формата оператора, поскольку BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE для таблицы с более чем одним UNIQUE KEY является небезопасным Оператор: INSERT INTO xxxx ON DUPLICATE KEY UPDATE xxxx 180319 08:39:52 mysqld_safe Количество запущенных сейчас процессов: 0 180319 08:39:52 mysqld_safe mysqld перезапущен 2018-03-19 08:39:53 0 [Предупреждение] TIMESTAMP с неявным значением DEFAULT устарел. Используйте серверную опцию --explicit_defaults_for_timestamp (подробнее см. в документации). 2018-03-19 08:39:53 20217 [Предупреждение] Использование уникального префикса опции myisam-recover вместо myisam-recover-options устарело и будет удалено в будущем выпуске. Пожалуйста, используйте вместо этого полное имя. 2018-03-19 08:39:53 20217 [Примечание] Плагин «FEDERATED» отключен. 2018-03-19 08:39:53 20217 [Примечание] InnoDB: использование атомарных операций для подсчета ссылок на страницы пула буферов 2018-03-19 08:39:53 20217 [Примечание] InnoDB: куча памяти InnoDB отключена 2018-03-19 08:39:53 20217 [Примечание] InnoDB: Мьютексы и rw_locks используют встроенные атомарные функции GCC 2018-03-19 08:39:53 20217 [Примечание] InnoDB: барьер памяти не используется 2018-03-19 08:39:53 20217 [Примечание] InnoDB: сжатые таблицы используют zlib 1.2.3 2018-03-19 08:39:53 20217 [Примечание] InnoDB: использование собственного Linux AIO 2018-03-19 08:39:53 20217 [Примечание] InnoDB: использование инструкций CPU crc32 2018-03-19 08:39:53 20217 [Примечание] InnoDB: Инициализация буферного пула, размер = 3,0 ГБ 2018-03-19 08:39:54 20217 [Примечание] InnoDB: завершена инициализация буферного пула 2018-03-19 08:39:54 20217 [Примечание] InnoDB: наивысший поддерживаемый формат файла — Barracuda. 2018-03-19 08:39:54 20217 [Примечание] InnoDB: сканирование журнала прошло после контрольной точки lsn 123717382274 2018-03-19 08:39:54 20217 [Примечание] InnoDB: База данных не была нормально завершена! 2018-03-19 08:39:54 20217 [Примечание] InnoDB: Начало восстановления после сбоя. 2018-03-19 08:39:54 20217 [Примечание] InnoDB: Чтение информации о табличном пространстве из файлов .ibd... 2018-03-19 08:39:54 20217 [Примечание] InnoDB: Восстановление возможных наполовину записанных страниц данных 2018-03-19 08:39:54 20217 [Примечание] InnoDB: из буфера двойной записи... InnoDB: Выполнение восстановления: сканирование до номера последовательности журнала 123717811056 InnoDB: транзакция 790235434 находилась в состоянии подготовки XA. InnoDB: 1 транзакция(и), которые необходимо откатить или очистить InnoDB: всего 0 операций со строками для отмены InnoDB: счетчик идентификаторов Trx равен 790235904 2018-03-19 08:39:55 20217 [Примечание] InnoDB: Начинается пакетное применение записей журнала к базе данных... InnoDB: Прогресс в процентах: 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 7 InnoDB: Применение пакета завершено InnoDB: Последняя позиция файла binlog MySQL 0 697177863, имя файла mysql-bin.000227 InnoDB: Запуск в фоновом режиме отката незавершенных транзакций 2018-03-19 08:39:56 20217 [Примечание] InnoDB: активны 128 сегментов отката. 2018-03-19 08:39:56 7f481bd03700 InnoDB: Откат неподготовленных транзакций завершен 2018-03-19 08:39:56 20217 [Примечание] InnoDB: Ожидание начала очистки 2018-03-19 08:39:56 20217 [Примечание] InnoDB: Percona XtraDB (http://www.percona.com) 5.6.22-71.0 запущен; номер последовательности журнала 123717811056 2018-03-19 08:39:56 20217 [Примечание] Восстановление после сбоя с помощью /var/lib/mysql/mysql-bin 2018-03-19 08:46:36 20217 [Примечание] Запуск восстановления после сбоя... 2018-03-19 08:46:36 7f491ce677e0 InnoDB: Начало восстановления для транзакций XA... 2018-03-19 08:46:36 7f491ce677e0 InnoDB: Транзакция 790235434 в подготовленном состоянии после восстановления 2018-03-19 08:46:36 7f491ce677e0 InnoDB: Транзакция содержит изменения в 1 строках 2018-03-19 08:46:36 7f491ce677e0 InnoDB: 1 транзакция в подготовленном состоянии после восстановления 2018-03-19 08:46:36 20217 [Примечание] Найдено 1 подготовленная транзакция(и) в InnoDB 2018-03-19 08:46:36 20217 [Примечание] Восстановление после сбоя завершено. 2018-03-19 08:46:36 20217 [Примечание] Файл закрытого ключа RSA не найден: /var/lib/mysql//private_key.pem. Некоторые плагины аутентификации не будут работать. 2018-03-19 08:46:36 20217 [Примечание] Файл открытого ключа RSA не найден: /var/lib/mysql//public_key.pem. Некоторые плагины аутентификации не будут работать. 2018-03-19 08:46:36 20217 [Примечание] Имя хоста сервера (адрес привязки): '*'; порт: 3306 2018-03-19 08:46:36 20217 [Примечание] IPv6 доступен. 2018-03-19 08:46:36 20217 [Примечание] - «::» преобразуется в «::»; 2018-03-19 08:46:36 20217 [Примечание] Сокет сервера создан на IP: '::'. 2018-03-19 08:46:37 20217 [Примечание] Планировщик событий: Загружено 0 событий 2018-03-19 08:46:37 20217 [Примечание] /usr/sbin/mysqld: готов к подключениям. Версия: «5.6.22-71.0-log» сокет: «/var/lib/mysql/mysql.sock» порт: 3306 Percona Server (GPL), выпуск 71.0, редакция 726 2018-03-19 08:46:38 20217 [Предупреждение] Небезопасный оператор, записанный в двоичный журнал с использованием формата оператора, поскольку BINLOG_FORMAT = STATEMENT. INSERT... ON DUPLICATE KEY UPDATE для таблицы с более чем одним UNIQUE KEY является небезопасным Оператор: INSERT INTO xxxx ON DUPLICATE KEY UPDATE xxxx
Редактировать: Согласно вопросу @impimp в комментариях, вот содержание/var/log/messages
18 марта 04:02:22 ИМЯ ХОСТА rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="474" x-info="http://www.rsyslog.com"] rsyslogd был HUPed 19 марта 08:39:52 HOSTNAME ядро: [103311785.405884] Недостаточно памяти в UB 650543: OOM завершил процесс 21476 (mysqld) оценка 0 vm:6363484kB, rss:4024500kB, swap:45536kB 20 марта 09:17:35 HOSTNAME ядро: [103400050.711461] Недостаточно памяти в UB 650543: OOM завершил процесс 20217 (mysqld) оценка 0 vm:6382720kB, rss:4066652kB, swap:0kB