錯誤 1067:程序意外終止一世nnoDB一世nn○D乙InnoDB
昨晚意外關閉數據庫伺服器後嘗試重新啟動 MySQL 服務時,我遇到以下錯誤。
無法在本地電腦上啟動 MySQL 服務。
錯誤 1067:程序意外終止。
當我檢查 MySql 數據文件夾下的 .err 日誌文件時,日誌詳細資訊如下所示。
InnoDB:日誌掃描通過檢查點 lsn 804 2135184621 150513 12:20:39 InnoDB:數據庫未正常關閉!
InnoDB:開始崩潰恢復。
InnoDB:從 .ibd 文件中讀取表空間資訊…
InnoDB:從雙寫恢復可能的半寫入數據頁
InnoDB:緩衝區…
InnoDB:進行恢復:掃描到日誌序列號 804 2136195241 150513 12:20:50 InnoDB:開始將一批日誌記錄應用到數據庫…
InnoDB:百分比進度:0 1 2 3 150513 12:20:50 InnoDB:文件中執行緒 2412 中的斷言失敗。\rem\rem0rec.c 第 337 行
InnoDB : 我們故意產生一個記憶體陷阱。
InnoDB:向 http://bugs.mysql.com 送出詳細的錯誤報告。
InnoDB:如果你得到重複的斷言失敗或崩潰,即使是
InnoDB: 在 mysqld 啟動後立即,也可能存在
InnoDB: InnoDB 表空間損壞。
150513 12:20:51 - mysqld 出現異常 0xc0000005 ;
這可能是因為您遇到了錯誤。此二進製文件或與之鍊接的庫之一也可能已損壞、建構不正確或配置錯誤。此錯誤也可能是由硬體故障引起的。我們將盡最大努力收集一些資訊,希望能幫助診斷問題,但由於我們已經崩潰,肯定有問題,這可能會失敗。
key_buffer_size=135266304
read_buffer_size=65536
max_used_connections=0
max_threads=400
threads_connected=0
mysqld 可能最多可以使用
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 262617 K 字節的記憶體
希望沒關係;如果不是,減少方程中的一些變數。
thd: 0x0
正在嘗試回溯。您可以使用以下資訊找出 mysqld 死在哪裡。如果您在此之後沒有看到任何消息,則出現嚴重錯誤…
InnoDB:執行緒 164 在文件中停止 .\os\os0sync.c 第 391 行
0070A1A8 mysqld.exe!rec_get_offsets_func()
$$ rem0rec.c:337 $$
0071B498 mysqld.exe!page_cur_parse_insert_rec()$$ page0cur.c:798 $$
0071512F mysqld.exe!recv_parse_or_apply_log_rec_body()$$ log0recv.c:814 $$
00715CF1 mysqld.exe!recv_recover_page()$$ log0recv.c:1294 $$
006EBE0F mysqld.exe!buf_page_io_complete()$$ buf0buf.c:2033 $$
006E4472 mysqld.exe!fil_aio_wait()$$ fil0fil.c:4273 $$
006BCDCD mysqld.exe!io_handler_thread()$$ srv0start.c:437 $$
77E6482F kernel32.dll!GetModuleHandleA()
事件查看器中顯示的錯誤日誌:
mysqld.exe 中出現未處理的 win32 異常
$$ 1200 $$. 即時調試此異常失敗並出現以下錯誤:調試器無法啟動,因為沒有使用者登錄。
MySQL 版本:5.1
表類型:InnoDB
ibdata1 大小:28GB
製作的表沒有 SQL 轉儲備份文件,只有 SQL 物理數據文件。我迫切需要恢復這些數據並使網站恢復線上。
請幫忙。
聽起來您的數據文件已損壞。您可以嘗試使用innodb Force Recover啟動伺服器,然後使用Select Into Command轉儲表數據。如果您在崩潰前啟用了二進制日誌文件,您可以通過Point In Time Recovery恢復數據