Ieri mi-am actualizat site-ul web Wordpress la cea mai recentă versiune de WordPress (6.0) și am actualizat câteva alte plugin-uri la cele mai recente versiuni ale acestora.După actualizări, totul părea să funcționeze bine, așa că mi-am dezactivat pagina de întreținere. Câteva ore mai târziu, serverul meu MySQL de la distanță (utilizat pentru baza de date WP) s-a prăbușit și în această dimineață serverul meu Web (Nginx) nu s-a putut conecta la baza de date.
Mi-am restaurat serverele de producție din backup și am atașat volumul potențial corupt de pe serverul MySQL la o instanță nouă. MySQL nu pornește și am examinat jurnalele, dar acestea sunt cu mult peste nivelul meu de expertiză.
Mai jos sunt două secțiuni ale jurnalelor. Primul descrie potențiala corupție? Am adăugat innodb_force_recovery = 6 la fișierul meu CNF și asta permite MySQL să pornească, dar nu știu cu adevărat ce înseamnă asta. Asta înseamnă că există o garanție de 100% a corupției și, dacă da, cum aș afla cauza/unde?
A doua secțiune are o eroare de pool-buffer, care este puțin mai ușor de înțeles pentru mine. Am comentat setarea mea innodb_buffer_pool_size în fișierul meu CNF, dar asta nu a avut niciun efect asupra pornirii MySQL fără innodb_force_recovery setat la 6.
Sper că cineva poate explica erorile și, eventual, cum să aflu cauza/cele?
MySQL8.0.29
R6G.Large (2 nuclee, 16 gb ram)
Bazin tampon: 12000M
Sectiunea 1:
InnoDB: Generăm în mod intenționat o capcană de memorie.
InnoDB: Trimiteți un raport de eroare detaliat la http://bugs.mysql.com.
InnoDB: Dacă primiți erori de afirmare repetate sau blocări, chiar
InnoDB: imediat după pornirea mysqld, poate exista
InnoDB: corupție în spațiul tabel InnoDB. Va rog, referiti-va la
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: despre forțarea recuperării.
18:49:04 UTC - mysqld a primit semnalul 6;
Cel mai probabil, ați lovit o eroare, dar această eroare poate fi cauzată și de o funcționare defectuoasă a hardware-ului.
Indicator de fir: 0xfffc28000b20
Încercarea de întoarcere. Puteți folosi următoarele informații pentru a afla
unde mysqld a murit. Dacă nu vedeți niciun mesaj după aceasta, ceva a mers
teribil de gresit...
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*) [+0x1fcc]) [+0x1]
/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]
Încerc să obțin câteva variabile.
Unele indicatoare pot fi nevalide și pot duce la anularea dump-ului.
Interogare (0): ID conexiune (ID fir): 0
Stare: NOT_KILLED
Pagina de manual de la http://dev.mysql.com/doc/mysql/en/crashing.html conține
informații care ar trebui să vă ajute să aflați care este cauza accidentului.
2022-05-25T18:49:04.565524Z 0 [Avertisment] [MY-010918] [Server] „default_authentication_plugin” este învechit și va fi eliminat într-o versiune viitoare. Vă rugăm să utilizați în schimb authentication_policy.
2022-05-25T18:49:04.565544Z 0 [Sistem] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.29) începând cu procesul 6679
2022-05-25T18:49:04.571539Z 1 [Sistem] [MY-013576] [InnoDB] Inițializarea InnoDB a început.
2022-05-25T18:49:05.807854Z 1 [Sistem] [MY-013577] [InnoDB] Inițializarea InnoDB s-a încheiat.
2022-05-25T18:49:06.622221Z 0 [Sistem] [MY-010229] [Server] Se pornește recuperarea în caz de accident XA...
2022-05-25T18:49:06.625449Z 0 [Sistem] [MY-010232] [Server] Recuperarea în caz de accident XA sa încheiat.
2022-05-25T18:49:07.251794Z 0 [Avertisment] [MY-010068] [Server] Certificatul CA ca.pem este autosemnat.
2022-05-25T18:49:07.251829Z 0 [Sistem] [MY-013602] [Server] Canal mysql_main configurat pentru a suporta TLS. Conexiunile criptate sunt acum acceptate pentru acest canal.
2022-05-25T18:49:07.272581Z 0 [Sistem] [MY-011323] [Server] X Plugin gata pentru conexiuni. Adresă de legătură: port '::': 33060, socket: /var/run/mysqld/mysqlx.sock
2022-05-25T18:49:07.272631Z 0 [Sistem] [MY-010931] [Server] /usr/sbin/mysqld: gata pentru conexiuni. Versiunea: „8.0.29” socket: „/var/lib/mysql/mysql.sock” port: 3306 MySQL Community Server - GPL.
2022-05-25T18:49:07.347411Z 0 [EROARE] [MY-012687] [InnoDB] [FATAL] Rec offset 99, cur1 offset 4038, cur2 offset 16004
2022-05-25T18:49:07.347449Z 0 [EROARE] [MY-013183] [InnoDB] Eșec de afirmare: page0page.cc:502:ib::fir declanșat fatal 281457662619536
Sectiunea 2:
Pagina de manual de la http://dev.mysql.com/doc/mysql/en/crashing.html conține
informații care ar trebui să vă ajute să aflați care este cauza accidentului.
2022-05-26T12:27:29.518146Z 0 [Avertisment] [MY-010918] [Server] „default_authentication_plugin” este învechit și va fi eliminat într-o versiune viitoare. Vă rugăm să utilizați în schimb authentication_policy.
2022-05-26T12:27:29.518165Z 0 [Sistem] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.29) începând cu procesul 17135
2022-05-26T12:27:29.524074Z 1 [Sistem] [MY-013576] [InnoDB] Inițializarea InnoDB a început.
2022-05-26T13:20:40.613066Z 0 [Avertisment] [MY-010918] [Server] „default_authentication_plugin” este depreciat și va fi eliminat într-o versiune viitoare. Vă rugăm să utilizați în schimb authentication_policy.
2022-05-26T13:20:40.613087Z 0 [Sistem] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.29) începând cu procesul 1086
2022-05-26T13:20:41.866918Z 1 [Sistem] [MY-013576] [InnoDB] Inițializarea InnoDB a început.
2022-05-26T13:20:49.824464Z 0 [Avertisment] [MY-012681] [InnoDB] page_aligned_alloc mmap(137232384 bytes) a eșuat; eroare 12
2022-05-26T13:20:49.844869Z 0 [Avertisment] [MY-012681] [InnoDB] page_aligned_alloc mmap(137232384 bytes) a eșuat; eroare 12
2022-05-26T13:20:49.961232Z 1 [EROARE] [MY-012956] [InnoDB] Nu se poate aloca memorie pentru pool-ul de buffer
2022-05-26T13:20:49.961279Z 1 [EROARE] [MY-012930] [InnoDB] Inițializarea pluginului a fost anulată cu eroare Eroare generică.
2022-05-26T13:20:49.962080Z 1 [EROARE] [MY-010334] [Server] Nu s-a inițializat DD Storage Engine
2022-05-26T13:20:49.962240Z 0 [EROARE] [MY-010020] [Server] Inițializarea dicționarului de date a eșuat.
2022-05-26T13:20:49.962355Z 0 [EROARE] [MY-010119] [Server] Se anulează
2022-05-26T13:20:49.966630Z 0 [Sistem] [MY-010910] [Server] /usr/sbin/mysqld: Închidere finalizată (mysqld 8.0.29) MySQL Community Server - GPL.
Orice ajutor ar fi grozav.
Actualizare: am rulat mysqlcheck pe baza mea de date defectuoasă și a găsit corupție. Se pare că cauza este WooCommerce?
Iată eroarea pe care mysqlcheck returnează:
production.wp_wc_admin_note_actions
Avertisment: InnoDB: Arborele B al indexului PRIMARY este corupt.
Avertisment: InnoDB: indexul „note_id” conține 1004 intrări, ar trebui să fie 18446744073709551615.
eroare: corupt
Jack