เมื่อวานฉันอัปเดตเว็บไซต์ Wordpress เป็น WordPress เวอร์ชันล่าสุด (6.0) และอัปเดตปลั๊กอินอื่นๆ อีกหลายตัวเป็นเวอร์ชันล่าสุดหลังจากการอัปเดตดูเหมือนว่าทุกอย่างจะทำงานได้ดี ฉันจึงปิดใช้งานหน้าการบำรุงรักษาของฉัน หลายชั่วโมงต่อมา เซิร์ฟเวอร์ MySQL ระยะไกลของฉัน (ใช้สำหรับฐานข้อมูล WP) ขัดข้อง และเช้านี้ WebServer (Nginx) ของฉันไม่สามารถเชื่อมต่อกับฐานข้อมูลได้
ฉันคืนค่าเซิร์ฟเวอร์ที่ใช้งานจริงจากการสำรองข้อมูล และฉันได้แนบวอลุ่มที่อาจเสียหายจากเซิร์ฟเวอร์ MySQL เข้ากับอินสแตนซ์ใหม่ MySQL ไม่เริ่มทำงาน และฉันได้ตรวจสอบบันทึกแล้ว แต่บันทึกเหล่านี้อยู่เหนือระดับความเชี่ยวชาญของฉัน
ด้านล่างนี้เป็นบันทึกสองส่วน ครั้งแรกที่อธิบายถึงการทุจริตที่อาจเกิดขึ้น? ฉันเพิ่ม innodb_force_recovery = 6 ลงในไฟล์ CNF ของฉัน และนั่นทำให้ MySQL เริ่มทำงาน แต่ฉันไม่รู้จริงๆ ว่าหมายความว่าอย่างไร แปลว่ามีการทุจริตแน่นอน 100% แล้วถ้ามี จะหาสาเหตุได้อย่างไร / ที่ไหน?
ส่วนที่สองมีข้อผิดพลาดของบัฟเฟอร์พูล ซึ่งง่ายกว่าเล็กน้อยสำหรับฉันที่จะเข้าใจ ฉันแสดงความคิดเห็นเกี่ยวกับการตั้งค่า innodb_buffer_pool_size ในไฟล์ CNF ของฉัน แต่นั่นไม่มีผลกับ MySQL ที่เริ่มต้นโดยไม่ได้ตั้งค่า innodb_force_recovery เป็น 6
ฉันหวังว่าจะมีคนอธิบายข้อผิดพลาดและเป็นไปได้ว่าจะหาสาเหตุได้อย่างไร
MySQL8.0.29
R6G.Large (2 คอร์ แรม 16GB)
บัฟเฟอร์พูล: 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(char const* ที่ไม่ได้ลงชื่อ, 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*, บูล, 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, 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
สถานะ: NOT_KILLED
หน้าคู่มือที่ http://dev.mysql.com/doc/mysql/en/crashing.html ประกอบด้วย
ข้อมูลที่จะช่วยให้คุณทราบว่าอะไรเป็นสาเหตุของความผิดพลาด
2022-05-25T18:49:04.565524Z 0 [คำเตือน] [MY-010918] [เซิร์ฟเวอร์] 'default_authentication_plugin' เลิกใช้แล้วและจะถูกลบออกในรุ่นต่อไป โปรดใช้การยืนยันตัวตน_นโยบายแทน
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 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] Rec offset 99, cur1 offset 4038, cur2 offset 16004
2022-05-25T18:49:07.347449Z 0 [ข้อผิดพลาด] [MY-013183] [InnoDB] การยืนยันล้มเหลว: page0page.cc:502:ib::fatal triggered thread 281457662619536
ส่วนที่ 2:
หน้าคู่มือที่ http://dev.mysql.com/doc/mysql/en/crashing.html ประกอบด้วย
ข้อมูลที่จะช่วยให้คุณทราบว่าอะไรเป็นสาเหตุของความผิดพลาด
2022-05-26T12:27:29.518146Z 0 [คำเตือน] [MY-010918] [เซิร์ฟเวอร์] 'default_authentication_plugin' เลิกใช้แล้วและจะถูกลบออกในรุ่นต่อๆ ไป โปรดใช้การยืนยันตัวตน_นโยบายแทน
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' เลิกใช้แล้วและจะถูกลบออกในรุ่นต่อๆ ไป โปรดใช้การยืนยันตัวตน_นโยบายแทน
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 Storage Engine
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 Community Server - GPL
ความช่วยเหลือใด ๆ จะดีมาก
อัปเดต: ฉันรัน mysqlcheck บนฐานข้อมูลที่ผิดพลาดและพบความเสียหาย ดูเหมือนว่าสาเหตุคือ WooCommerce?
นี่คือข้อผิดพลาดที่ mysqlcheck ส่งคืน:
การผลิต wp_wc_admin_note_actions
คำเตือน: InnoDB: B-tree ของดัชนีหลักเสียหาย
คำเตือน : InnoDB: ดัชนี 'note_id' มี 1,004 รายการ ควรเป็น 18446744073709551615
ข้อผิดพลาด: เสียหาย
แจ็ค