8

mysql のドキュメント ( Docs ) によると、手順 4 で innodb-log-file-size を変更するには、バイナリ ログを削除する必要があります。このことについて、いくつかの懸念と質問があります。innodb-log-file-size の現在の値は 5MB です。したがって、バイナリ ログ ファイルはそれぞれ 5MB (最大) であると想定します。bin-log ディレクトリを見ると、'mysql-bin.000001'、'mysql-bin.000002' などのようなファイル名がたくさんあります。これらはバイナリ ログ ファイルだと思いますが、すべてかなりの5MBより少し大きい。5 MB の 2 つのファイル (ib_logfile0、ib_logfile1) があります。だから私の質問は

  1. これらのファイルのうち、「バイナリ ログ」はどれですか?
  2. それらのどれを削除する必要がありますか?

前もって感謝します

4

2 に答える 2

13

InnoDB ログは ib_logfile0 と ib_logfile1 にあります。これらは、 によってサイズ設定されたファイルですinnodb_log_file_size

InnoDB ログのサイズを変更するには、最初に mysqld を完全にシャットダウンする必要があります。これにより、ログ内のすべての変更がテーブルスペースに既にフラッシュされていることが確認されます。この手順を実行しないと、データが失われる可能性が高くなるため、クリーン シャットダウンは重要です。

mysqld を正常にシャットダウンすると、ib_logfiles は不要になります。rmサイズを変更する必要があります。

mysqld を再起動すると、InnoDB はファイルが見つからないことを認識しinnodb_log_file_size、my.cnf ファイルの変数に従って新しいサイズで新しいファイルを作成します。そのため、再起動する前に必ずそのファイルを編集してください。そうしないと、新しい 5MB のファイルが作成されるだけです。

MySQL 5.6 では、このプロセスが少し簡単になります。ログ ファイルを作成する必要はありませんがrm、新しいログ ファイル サイズを有効にするために mysqld を再起動する必要があります。5.6 での動作方法は、これらのファイルのサイズが構成変数と異なる場合、MySQL は自動的に別のクリーンな再起動を行い (ファイルにフラッシュされていない変更が含まれていないことを確認するため)、次に InnoDB がファイルのサイズを変更します。最終起動時。

他のファイル (mysql-bin.000001 など) はバイナリ ログです。これらは最大でmax_binlog_size(デフォルトでは 1GB) まで大きくなる可能性がありますが、mysqld を再起動するか を実行するたびに新しいログが作成されるため、バイナリ ログのサイズはさまざまですFLUSH LOGS。とにかく、InnoDB ログとは何の関係もありません。

PS: この記事が好きかもしれません: How to calculate a good InnoDB log file size .

于 2013-11-11T17:06:00.013 に答える