2013-10-31 2 views
2

현재 응용 프로그램이 다운 된 다음과 같은 문제가 있습니다. 우리가하는 모든 쿼리는 "테이블 대기 중"상태가되어 거기에 머물러있어 MySQL 서버 연결이 끊어 질 수 있습니다. 모든 쿼리가 Amazon RDS 인스턴스에서 "Waiting for table"상태가됩니다.

우리는 MySQL의 설명서

스레드가 테이블의 기본 구조는 알림을 가지고, 테이블을 기다리는 테이블 대기에 따르면, 문제를 조사하고 무슨 뜻인지 알게 새 구조를 얻으려면 테이블을 다시 열어야합니다. 그러나 테이블을 다시 열려면 다른 모든 스레드가 해당 테이블을 닫을 때까지 기다려야합니다. , 표를 ALTER TABLE, 수리 TABLE의 이름을 변경 표를 분석, 또는 TABLE을 최적화 FLUSH 테이블 tbl_name에 : 다른 스레드가 FLUSH TABLES 또는 문제의 테이블에 다음 문 중 하나를 사용하는 경우

이 알림은 일어난다.

나는 SHOW PROCESSLIST로 실행중인 프로세스를 검사했으며 데이터 정의 언어 문이나 위의 목록에있는 문을 발견하지 못했습니다.

다른 원인은 무엇일까요?

+0

복제 스레드는 어떻게됩니까? – ProTom

+0

우리의 Sysadmin은 복제가 단지 회전하는 로그 파일이기 때문에 복제와 관련이 없다고 말했지만 (나는 다시 물어볼지도 모른다). 우리는 그것을 백업으로 사용할 수도 있지만, 현재 쓸모가 없으므로 쓸모가 없습니다. 현재 RDS 외부의 다른 인스턴스로 데이터를 내보내려고하고 있지만이 작업은 다소 시간이 걸릴 수 있습니다. ... 하지만 도움 주셔서 감사합니다. Tom : D –

답변

1

문제의 원인에 대한 답변을 찾지 못했지만 아마존의 자동 백업 기능이 문제의 원인이었던 것처럼 보입니다. 아마존 지원팀에 연락을 취한 후 이제 다시 가동 될 것입니다.

1

오늘 같은 문제가 있습니다. 마지막으로, 큰 쿼리와 백업 프로세스의 동시성 때문에 발생하는 것으로 나타났습니다. -master-data를 사용하여 Mysqldump를 실행하면 flush table 명령이 발생할 수 있습니다. 여기를 참조하십시오. http://bugs.mysql.com/bug.php?id=35157.

내 상황은 다음과 같습니다. flush 명령이 큰 쿼리를 기다리고있었습니다. 다른 쿼리가 플러시 테이블 명령이 완료 될 때까지 기다렸으므로 차단되었습니다. 큰 쿼리가 완료되면 문제가 해결되었습니다.

그래서 나는 그 때 큰 질문을했을지 모릅니다.

+0

https://bugs.mysql.com/bug.php?id=44884도 참조하십시오. –