Вчера я обновил свой веб-сайт Wordpress до последней версии WordPress (6.0) и обновил несколько других плагинов до их последних версий.После обновлений все работало нормально, поэтому я отключил свою страницу обслуживания. Несколько часов спустя мой удаленный сервер MySQL (используемый для базы данных WP) вышел из строя, и сегодня утром мой веб-сервер (Nginx) не смог подключиться к базе данных.
Я восстановил рабочие серверы из резервной копии и подключил потенциально поврежденный том с сервера MySQL к новому экземпляру. MySQL не запускается, и я просматривал журналы, но они намного выше моего уровня знаний.
Ниже приведены два раздела журналов. Первый описывает потенциальную коррупцию? Я добавил innodb_force_recovery = 6 в свой CNF-файл, и это позволяет запускать MySQL, но я действительно не знаю, что это значит. Означает ли это, что есть 100% гарантия порчи, и если да, то как мне узнать причину / где?
Во втором разделе есть ошибка буферного пула, которую мне немного легче понять. Я закомментировал параметр innodb_buffer_pool_size в своем файле CNF, но это не повлияло на запуск MySQL без значения 6 для параметра innodb_force_recovery.
Я надеюсь, что кто-то может объяснить ошибки и, возможно, как выяснить причину/причины?
MySQL8.0.29
R6G.Large (2 ядра, 16 ГБ оперативной памяти)
Буферный пул: 12000M
Секция 1:
InnoDB: мы намеренно создаем ловушку памяти.
InnoDB: Отправьте подробный отчет об ошибке на http://bugs.mysql.com.
InnoDB: если вы сталкиваетесь с повторяющимися ошибками утверждения или сбоями, даже
InnoDB: сразу после запуска mysqld может быть
InnoDB: повреждение в табличном пространстве InnoDB. Пожалуйста, обратитесь к
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: о принудительном восстановлении.
18:49:04 UTC - mysqld получил сигнал 6 ;
Скорее всего, вы столкнулись с ошибкой, но эта ошибка также может быть вызвана неисправностью оборудования.
Указатель темы: 0xfffc28000b20
Попытка обратного следа. Вы можете использовать следующую информацию, чтобы узнать
где mysqld умер. Если вы не видите сообщений после этого, что-то пошло
ужасно неправильно...
stack_bottom = fffc488565f0 thread_stack 0x100000
/usr/sbin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x44) [0x1d0e2a4]
/usr/sbin/mysqld(print_fatal_signal(int)+0x28c) [0xe3278c]
/usr/sbin/mysqld(my_server_abort()+0xa0) [0xe32920]
/usr/sbin/mysqld(my_abort()+0x14) [0x1d08244]
/usr/sbin/mysqld(ut_dbg_assertion_failed(char const*, char const*, unsigned long)+0x290) [0x1f79ba0]
/usr/sbin/mysqld() [0x1f7c42c]
/usr/sbin/mysqld(page_copy_rec_list_end_no_locks(buf_block_t*, buf_block_t*, unsigned char*, dict_index_t*, mtr_t*)+0x2dc) [0x1ec1dec]
/usr/sbin/mysqld(page_copy_rec_list_end(buf_block_t*, buf_block_t*, unsigned char*, dict_index_t*, mtr_t*)+0x300) [0x1ec2270]
/usr/sbin/mysqld(btr_compress(btr_cur_t*, bool, mtr_t*)+0x624) [0x1fa53f4]
/usr/sbin/mysqld(btr_cur_pessimistic_delete(dberr_t*, bool, btr_cur_t*, unsigned int, bool, unsigned long, unsigned long, unsigned long, mtr_t*, btr_pcur_t*, purge_node_t*)+0x1cc) [0x1fb130c]
/usr/sbin/mysqld() [0x1f02bf8]
/usr/sbin/mysqld(row_purge_step(que_thr_t*)+0x4f4) [0x1f05364]
/usr/sbin/mysqld(que_run_threads(que_thr_t*)+0x578) [0x1ece5e8]
/usr/sbin/mysqld(srv_worker_thread()+0x21c) [0x1f3184c]
/usr/sbin/mysqld(std::thread::_State_impl<std::thread::_Invoker<std::tuple<Detached_thread, void (*)()> > >::_M_run()+0xd4) [0x1e85774]
/usr/sbin/mysqld() [0x244623c]
/lib64/libpthread.so.0(+0x722c) [0xffffab1ec22c]
/lib64/libc.so.6(+0xd2e5c) [0xffffaaa99e5c]
Попытка получить некоторые переменные.
Некоторые указатели могут быть недействительными и привести к прерыванию дампа.
Запрос (0): идентификатор соединения (идентификатор потока): 0
Статус: НЕ УБИТО
Страница руководства по адресу http://dev.mysql.com/doc/mysql/en/crashing.html содержит
информация, которая должна помочь вам выяснить, что вызывает сбой.
2022-05-25T18:49:04.565524Z 0 [Предупреждение] [MY-010918] [Сервер] 'default_authentication_plugin' устарел и будет удален в будущем выпуске. Пожалуйста, используйте вместо этого authentication_policy.
2022-05-25T18:49:04.565544Z 0 [Система] [MY-010116] [Сервер] /usr/sbin/mysqld (mysqld 8.0.29), начиная с процесса 6679
2022-05-25T18:49:04.571539Z 1 [Система] [MY-013576] [InnoDB] Началась инициализация InnoDB.
2022-05-25T18:49:05.807854Z 1 [Система] [MY-013577] [InnoDB] Инициализация InnoDB завершена.
2022-05-25T18:49:06.622221Z 0 [Система] [MY-010229] [Сервер] Запуск аварийного восстановления XA...
2022-05-25T18:49:06.625449Z 0 [Система] [MY-010232] [Сервер] Восстановление XA после сбоя завершено.
2022-05-25T18:49:07.251794Z 0 [Предупреждение] [MY-010068] [Сервер] Сертификат ЦС ca.pem является самозаверяющим.
2022-05-25T18:49:07.251829Z 0 [Система] [MY-013602] [Сервер] Канал mysql_main настроен для поддержки TLS. Для этого канала теперь поддерживаются зашифрованные соединения.
2022-05-25T18:49:07.272581Z 0 [Система] [MY-011323] [Сервер] X Плагин готов к подключению. Адрес привязки: '::' порт: 33060, сокет: /var/run/mysqld/mysqlx.sock
2022-05-25T18:49:07.272631Z 0 [Система] [MY-010931] [Сервер] /usr/sbin/mysqld: готово для подключения. Версия: '8.0.29' сокет: '/var/lib/mysql/mysql.sock' порт: 3306 MySQL Community Server - GPL.
2022-05-25T18:49:07.347411Z 0 [ОШИБКА] [MY-012687] [InnoDB] [FATAL] Смещение записи 99, смещение cur1 4038, смещение cur2 16004
2022-05-25T18:49:07.347449Z 0 [ОШИБКА] [MY-013183] [InnoDB] Ошибка утверждения: page0page.cc:502:ib::фатальный запущенный поток 281457662619536
Раздел 2:
Страница руководства по адресу http://dev.mysql.com/doc/mysql/en/crashing.html содержит
информация, которая должна помочь вам выяснить, что вызывает сбой.
2022-05-26T12:27:29.518146Z 0 [Предупреждение] [MY-010918] [Сервер] 'default_authentication_plugin' устарел и будет удален в будущем выпуске. Пожалуйста, используйте вместо этого authentication_policy.
2022-05-26T12:27:29.518165Z 0 [Система] [MY-010116] [Сервер] /usr/sbin/mysqld (mysqld 8.0.29), начиная с процесса 17135
2022-05-26T12:27:29.524074Z 1 [Система] [MY-013576] [InnoDB] Началась инициализация InnoDB.
2022-05-26T13:20:40.613066Z 0 [Предупреждение] [MY-010918] [Сервер] 'default_authentication_plugin' устарел и будет удален в будущем выпуске. Пожалуйста, используйте вместо этого authentication_policy.
2022-05-26T13:20:40.613087Z 0 [Система] [MY-010116] [Сервер] /usr/sbin/mysqld (mysqld 8.0.29), начиная с процесса 1086
2022-05-26T13:20:41.866918Z 1 [Система] [MY-013576] [InnoDB] Началась инициализация InnoDB.
2022-05-26T13:20:49.824464Z 0 [Предупреждение] [MY-012681] [InnoDB] page_aligned_alloc mmap (137232384 байт) не удалось; ошибка 12
2022-05-26T13:20:49.844869Z 0 [Предупреждение] [MY-012681] [InnoDB] page_aligned_alloc mmap (137232384 байт) не удалось; ошибка 12
2022-05-26T13:20:49.961232Z 1 [ОШИБКА] [MY-012956] [InnoDB] Не удается выделить память для пула буферов
2022-05-26T13:20:49.961279Z 1 [ОШИБКА] [MY-012930] [InnoDB] Инициализация плагина прервана из-за ошибки Общая ошибка.
2022-05-26T13:20:49.962080Z 1 [ОШИБКА] [MY-010334] [Сервер] Не удалось инициализировать механизм хранения DD
2022-05-26T13:20:49.962240Z 0 [ОШИБКА] [MY-010020] [Сервер] Ошибка инициализации словаря данных.
2022-05-26T13:20:49.962355Z 0 [ОШИБКА] [MY-010119] [Сервер] Прерывание
2022-05-26T13:20:49.966630Z 0 [Система] [MY-010910] [Сервер] /usr/sbin/mysqld: завершение работы (mysqld 8.0.29) Сервер сообщества MySQL — GPL.
Любая помощь будет здорово.
Обновление: я запустил mysqlcheck в своей неисправной базе данных и обнаружил повреждение. Похоже, причина в WooCommerce?
Вот ошибка, которую возвращает mysqlcheck:
production.wp_wc_admin_note_actions
Предупреждение: InnoDB: B-дерево индекса PRIMARY повреждено.
Предупреждение: InnoDB: индекс «note_id» содержит 1004 записи, должно быть 18446744073709551615.
ошибка: повреждено
разъем