Percona

沒有 innodb_recovery 4 PerconaDB 無法執行

  • May 18, 2016

我的 Percona 5.7.11-4 無故崩潰。現在我只能使用 innodb force recovery = 4 執行。這是來自日誌的回溯。你能幫我嗎?謝謝你。

> Thread pointer: 0x0 Attempting backtrace. You can use the following
> information to find out where mysqld died. If you see no messages
> after this, something went terribly wrong... stack_bottom = 0
> thread_stack 0x40000
> /usr/sbin/mysqld(my_print_stacktrace+0x2c)[0xec0a9c]
> /usr/sbin/mysqld(handle_fatal_signal+0x461)[0x79b8c1]
> /lib64/libpthread.so.0[0x3b47c0f7e0]
> /lib64/libc.so.6(gsignal+0x35)[0x3b47832625]
> /lib64/libc.so.6(abort+0x175)[0x3b47833e05] /usr/sbin/mysqld[0x76a54c]
> /usr/sbin/mysqld(_Z32page_cur_search_with_match_bytesPK11buf_block_tPK12dict_index_tPK8dtuple_t15page_cur_mode_tPmS9_S9_S9_P10page_cur_t+0x969)[0xf7ff69]
> /usr/sbin/mysqld(_Z27btr_cur_search_to_nth_levelP12dict_index_tmPK8dtuple_t15page_cur_mode_tmP9btr_cur_tmPKcmP5mtr_t+0x97d)[0x10a6cfd]
> /usr/sbin/mysqld(_Z30btr_pcur_open_on_user_rec_funcP12dict_index_tPK8dtuple_t15page_cur_mode_tmP10btr_pcur_tPKcmP5mtr_t+0x96)[0x10b00c6]
> /usr/sbin/mysqld[0x111bbda]
> /usr/sbin/mysqld(_Z39dict_check_tablespaces_and_store_max_idb+0xa29)[0x111d499]
> /usr/sbin/mysqld(_Z34innobase_start_or_create_for_mysqlv+0x45f3)[0x1034253]
> /usr/sbin/mysqld[0xef89b8]
> /usr/sbin/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x51)[0x7fa171]
> /usr/sbin/mysqld[0xcc5566]
> /usr/sbin/mysqld(_Z11plugin_initPiPPci+0x600)[0xccc430]
> /usr/sbin/mysqld[0x79439d]
> /usr/sbin/mysqld(_Z11mysqld_mainiPPc+0x62a)[0x7957da]
> /lib64/libc.so.6(__libc_start_main+0xfd)[0x3b4781ed5d]
> /usr/sbin/mysqld[0x78b575] You may download the Percona Server
> operations manual by visiting
> http://www.percona.com/software/percona-server/. You may find
> information in the manual which will help you identify the cause of
> the crash. 2016-05-18T19:53:28.676862Z mysqld_safe mysqld from pid
> file /var/run/mysqld/mysqld.pid ended

我的幫助包括將您指向相關文件。您應該仔細閱讀並了解innodb 強制恢復的目的。

尤其

如果您能夠以 3 或更低的 innodb_force_recovery 值轉儲您的表,那麼您相對安全,只有損壞的單個頁面上的一些數據會失去。4 或更大的值被認為是危險的,因為數據文件可能會永久損壞。

是相關的。原樣

僅在緊急情況下將 innodb_force_recovery 設置為大於 0 的值,以便您可以啟動 InnoDB 並轉儲表。在這樣做之前,請確保您擁有數據庫的備份副本,以防需要重新創建它。

完成後,您應該啟動數據庫伺服器,然後除了轉儲所有數據庫之外什麼也不做。

現在您可以刪除相關的數據庫/表並從轉儲中恢復它們。

引用自:https://serverfault.com/questions/777615