서버가 crash 되면서 mysql 데이터가 깨진듯 하다.
이런.
다음과 같은 메시지를 뿌리면서 실행이 안된다.
crash ... errors..
t eD iI N;
InnoDB: End of page dump
140915 12:19:26 InnoDB: Page checksum 1570298453 (32bit_calc: 3018546506), prior-to-4.0.14-form checksum 1152805193
InnoDB: stored checksum 1570298453, prior-to-4.0.14-form stored checksum 1152805193
InnoDB: Page lsn 69 2816875854, low 4 bytes of lsn at page end 2816875854
InnoDB: Page number (if stored to page already) 4,
InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) 0
InnoDB: Page may be an update undo log page
InnoDB: Page may be an index page where index id is 18446744069414584320
140915 12:19:26 InnoDB: Assertion failure in thread 139780984702912 in file page0cur.c line 905
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
140915 12:19:26 [ERROR] mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
To report this bug, see http://kb.askmonty.org/en/reporting-bugs
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
Server version: 5.5.39-MariaDB-1~saucy-log
key_buffer_size=134217728
read_buffer_size=2097152
max_used_connections=0
max_threads=302
thread_count=0
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1991930 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
Thread pointer: 0x0x0
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 = 0x0 thread_stack 0x48000
/usr/sbin/mysqld(my_print_stacktrace+0x2e)[0x7f214c7efdae]
/usr/sbin/mysqld(handle_fatal_signal+0x457)[0x7f214c3e1f07]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfbb0)[0x7f214b491bb0]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37)[0x7f214a4aef77]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x148)[0x7f214a4b25e8]
/usr/sbin/mysqld(+0x816543)[0x7f214c730543]
/usr/sbin/mysqld(+0x7f9e4c)[0x7f214c713e4c]
/usr/sbin/mysqld(+0x7fbea6)[0x7f214c715ea6]
/usr/sbin/mysqld(+0x780253)[0x7f214c69a253]
/usr/sbin/mysqld(+0x791518)[0x7f214c6ab518]
/usr/sbin/mysqld(+0x77ab5b)[0x7f214c694b5b]
/usr/sbin/mysqld(+0x7dc453)[0x7f214c6f6453]
/usr/sbin/mysqld(+0x795b75)[0x7f214c6afb75]
/usr/sbin/mysqld(+0x72d009)[0x7f214c647009]
/usr/sbin/mysqld(+0x6e8b9e)[0x7f214c602b9e]
/usr/sbin/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x48)[0x7f214c3e4938]
/usr/sbin/mysqld(+0x38dbd5)[0x7f214c2a7bd5]
/usr/sbin/mysqld(_Z11plugin_initPiPPci+0x531)[0x7f214c2acb51]
/usr/sbin/mysqld(+0x2f1282)[0x7f214c20b282]
/usr/sbin/mysqld(_Z11mysqld_mainiPPc+0x5ca)[0x7f214c2101ca]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f214a499de5]
/usr/sbin/mysqld(+0x2ec6f7)[0x7f214c2066f7]
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
140915 12:19:26 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
일단 force recovery 로 해봐야 겠다.
위 옵션을 넣고, 재실행해 본다.
잘 되야 할텐데...
1차실패 - 옵션값 1 을 주니 실패.
2차시도 - 옵션값을 6 으로 해봤다.
실행까지는 되는데, 로그에 다음과 같은 메시지가 계속 나온다.
140915 12:46:04 InnoDB: Waiting for the background threads to start
140915 12:46:05 InnoDB: Waiting for the background threads to start
찾아보니, 다음 옵션을 추가하라고 한다.
mysqlcheck --all-databases 를 해본다.
InnoDB: space id 74 did not exist in memory. Retrying an open.
140915 13:24:47 InnoDB: Warning: allocated tablespace 74, old maximum was 9
....
InnoDB: space id 83 did not exist in memory. Retrying an open
다음과 같은 메시지가 나온다.
점점 골치가 아파진다. 나에겐 InnoDB 는 사치인가?
이런 에러도 보인다.
140915 20:04:43 InnoDB: Assertion failure in thread 140280661518080 in file fsp0fsp.c line 2113
이 방법으로 다시 해봐야 겠다.
댓글을 달아 주세요