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ć?
knorv
źródło

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.

womble
źródło
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