본문 바로가기
MySQL 에러 처리법

13. MySQL 이 알수없는 에러로 Restart 된 경우 1

by 모모레 2015. 1. 27.

1. 서버 문제 발생

MySQL이 Restart가 되었다는 사실을 확인함.


2. 들어가 확인하니 MySQL은 떠있고, 에러로그에 다시 재시작한 로그만 있음.
InnoDB: Warning: a long semaphore wait: 
150127 20:41:14 mysqld_safe Number of processes running now: 0 
150127 20:41:14 mysqld_safe mysqld restarted 


3. 확인해야 하는 사항
프로세스 문제 없는지 확인 (로긴 되는지 확인, 접속한 세션들 확인)
리플리케이션 문제 없는지 확인
서버 uptime 확인
--------------------> 확인해 보니...MySQL의 문제가 없음을 확인


4. 그러면 왜?

4.1 에러 로그를 다시 보자.

InnoDB: Warning: a long semaphore wait:   <--- 뭔가 문제가 있었음......
150127 20:41:14 mysqld_safe Number of processes running now: 0   <---- mysqld 프로세스가 다 사라짐.
150127 20:41:14 mysqld_safe mysqld restarted   <----- mysqld_safe가 그것을 감지하고 다시 재시작함.


4.2 OS 로그를 확인해 보자.

/var/log/messages


Jan 27 20:36:35 xxx kernel: Call Trace:
Jan 27 20:41:13 xxx kernel:  [<ffffffff800c95e5>] out_of_memory+0x8e/0x2f3
Jan 27 20:41:13 xxx kernel:  [<ffffffff8002e261>] __wake_up+0x38/0x4f
Jan 27 20:41:13 xxx kernel:  [<ffffffff8000f569>] __alloc_pages+0x27f/0x308
Jan 27 20:41:13 xxx kernel:  [<ffffffff80012f32>] __do_page_cache_readahead+0x96/0x179
Jan 27 20:41:13 xxx kernel:  [<ffffffff8001386d>] filemap_nopage+0x14c/0x360
Jan 27 20:41:13 xxx kernel:  [<ffffffff8000895e>] __handle_mm_fault+0x1fb/0x1039
Jan 27 20:41:13 xxx kernel:  [<ffffffff8006720b>] do_page_fault+0x4cb/0x874
Jan 27 20:41:13 xxx kernel:  [<ffffffff8001ce41>] vma_link+0x70/0xfd
Jan 27 20:41:13 xxx kernel:  [<ffffffff8000e1e9>] do_mmap_pgoff+0x615/0x780
Jan 27 20:41:13 xxx kernel:  [<ffffffff8005dde9>] error_exit+0x0/0x84


즉, Out of Memory를 확인하고 OS가 mysqld 프로세스를 죽였고, mysqld_safe가 그것을 감지하고 다시 재시작을 한 경우입니다.