Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zawieszanie bazy na "waiting for table metadata lock"
Forum PHP.pl > Forum > Bazy danych > MySQL
damian.1923
Witam,

po zmigrowaniu bazy na nowy serwer, MySQL regularnie zawiesza się,
na liście aktywnych procesów zawsze wtedy widać jak wiszą jakieś zapytania (wyglądają na zwyczajne)
na statusie waiting for table metadata lock

dlaczego tak się dzieje? pomaga jedynie restart serwera mysql, ale to nie jest rozwiązanie...
kartin
Pewnie rozwiązaniem będzie poprawienie aplikacji, aby nie wysypywała się pomiędzy rozpoczęciem transakcji a jej zatwierdzeniem lub wycofaniem.
damian.1923
@Pyton_000, dziękuję, ale z tego linku nic nie zrozumiałem, czy możecie jaśniej? dodam że nie korzystam z transakcji i mam tylko tabele na MyISAM, na poprzednim serwerze ze starszym MYSQL-em nie było nigdy żadnych problemów.
DarkAbso
@Pyton_000 dał linka z zapytaniami, które pokażą gdzie są trzymane transakcje w danym momencie. Czyli jak pojawi się Tobie wyżej napisany błąd to puszczasz takie zapytanie na bazie i wiesz co jest trzymane w transakcji i możesz dalej sensownie debugować aplikację.
damian.1923
polecenie SHOW PROCESSLIST pokazuje mi wtedy wiszące zapytania, ale one tylko czekają (waiting for table metadata lock), tzn. chyba nie one spowodowały nałożenie blokady,
z dokumentacji właściwie niewiele rozumiem:
http://dev.mysql.com/doc/refman/5.5/en/metadata-locking.html

czy INNODB STATUS powie o blokadach nakładanych na tabele MYISAM?
na INNODB funkcjonuje u mnie tylko kilka tabel i one są zupelnie nieznaczące.
Pyton_000
Zamiast gdybać i zadawać pytania sprawdź. Zajmie Ci to mniej czasu niż czekanie na odpowiedź stylu "A sprawdziłeś to w końcu?questionmark.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.