MySQL:InnoDB:エラー:最後のチェックポイントの経過時間はXで、ロググループの容量Yを超えていますか?


10

本番MySQL環境では、次のエラーメッセージが/var/log/mysql/error.log4分ごとに書き込まれます。

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.

エラーメッセージの解析方法がわかりません。

より具体的には、チェックポイントの経過時間が「ロググループの容量」にどのように関係しているのか、また、大規模なBLOB/ TEXT列を持つ行のサイズにどのように関係しているのかがわかりません。

基本的に、この問題のトラブルシューティングと修正の進め方が分からなくなっています。私の質問は:

  • エラーメッセージはどういう意味ですか?
  • 何が悪いのですか?
  • どうすれば修正できますか?

回答:


11

エラーメッセージは、InnoDBに挿入するデータが多すぎると、データをメインデータファイルにフラッシュする前にInnoDBログがいっぱいになることを意味します。

これを解決するには、MySQLを完全に停止し(非常に重要)、既存のInnoDBログファイル(おそらくlb_logfile*移動していない限り、MySQLデータディレクトリにあります)を削除し、innodb_log_file_size必要に応じてを調整してから、MySQLを再起動する必要があります。 。 MySQLパフォーマンスブログのこの記事は参考になるかもしれません。


1
エラーメッセージを無視するとどうなりますか?
マットヒーリー

1
冗談だよね?データベースのストレージに関するエラーメッセージを無視することを真剣に検討していますか?修正に約10秒のダウンタイムがかかるのはいつですか?
ウォンブル

6
いいえ、それは実際には冗談ではなく、本物の質問でした。サーバーはクラッシュしますか?データは失われますか?パフォーマンスは低下しますか?上記のすべて?
Matt Healy

1
ウォンブル、素晴らしい答え!私はすでに問題を修正しましたが、構成が正しくない場合にエラーがどのような結果をもたらすか知りたいです。問題は、断続的な速度低下が見られたことと、それがこのエラーに関連していたのか、それとも別のエラーだったのか知りたいです。ありがとう!
knorv

4
はい、データベースサーバーは、ログがいっぱいになると、InnoDBテーブルへの更新があると事実上ハングします。それはサイトを不自由にすることができます。
ウォンブル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.