MySQL: InnoDB: ERROR: wiek ostatniego punktu kontrolnego to X, co przekracza pojemność grupy logów Y?


10

W produkcyjnym środowisku MySQL /var/log/mysql/error.logco cztery minuty zapisywany jest następujący komunikat o błędzie :

110723 18:36:02  InnoDB: ERROR: the age of the last checkpoint is 9433856,
InnoDB: which exceeds the log group capacity 9433498.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.

Nie jestem pewien, jak przeanalizować komunikat o błędzie.

Mówiąc dokładniej, nie rozumiem, w jaki sposób wiek punktu kontrolnego odnosi się do „pojemności grupy logów” i jak to z kolei odnosi się do wielkości wierszy z dużymi BLOB/ TEXTkolumnami.

Zasadniczo jestem zagubiony w rozwiązywaniu tego problemu. Moje pytania to:

  • Co oznacza komunikat o błędzie?
  • Co ja robię źle?
  • Jak mogę to naprawić?

Odpowiedzi:


11

Komunikat o błędzie oznacza, że ​​próbujesz zbyt szybko wstawić zbyt dużo danych do InnoDB, a dziennik InnoDB zapełnia się, zanim dane zostaną wpompowane do głównych plików danych.

Aby go rozwiązać, musisz całkowicie zatrzymać MySQL (bardzo ważne), usunąć istniejące pliki dziennika InnoDB (prawdopodobnie lb_logfile*w katalogu danych MySQL, chyba że zostały przeniesione), a następnie dostosować je innodb_log_file_sizedo swoich potrzeb, a następnie ponownie uruchomić MySQL . Ten artykuł z bloga wydajności MySQL może być pouczający.


1
Jakie są konsekwencje zignorowania komunikatów o błędach?
Matt Healy

1
Żartujesz, prawda? Poważnie zastanawiasz się nad zignorowaniem komunikatu o błędzie dotyczącego PRZECHOWYWANIA TWOJEJ BAZY DANYCH? Kiedy poprawka zajmuje około 10 sekund przestoju?
womble

6
Nie, to właściwie nie był żart, to było prawdziwe pytanie. Czy serwer ulegnie awarii? Czy dane zostaną utracone? Czy wydajność ulegnie pogorszeniu? Wszystkie powyższe?
Matt Healy

1
womble, świetna odpowiedź! Naprawiłem już problem, ale jestem ciekawy, jakie konsekwencje miał błąd, gdy konfiguracja była niepoprawna. Chodzi o to, że widziałem jakieś przerywane spowolnienia i jestem ciekawy, czy to było związane z tym błędem, czy też było to coś innego. Dzięki!
knorv

4
Tak, serwer bazy danych skutecznie zawiesi się na wszelkie aktualizacje tabel InnoDB, gdy dziennik się zapełni. Może uszkodzić witrynę.
womble
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.