Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


5.2.4.1 バイナリロギング形式

サーバーはバイナリログに情報を記録するために、いくつかのロギング形式を使用します。採用される形式は、使用される MySQL のバージョンによって異なります。ロギング形式は 3 つあります。

  • MySQL のもともとのレプリケーション機能は、マスターからスレーブへの SQL ステートメントの伝播に基づいていました。これはステートメントベースのロギングと呼ばれます。--binlog-format=STATEMENT を指定してサーバーを起動することによって、この形式を使用できます。

  • 行ベースのロギングでは、マスターは個々のテーブル行が受ける影響を示すイベントをバイナリログに書き込みます。--binlog-format=ROW を指定してサーバーを起動することによって、サーバーが行ベースのロギングを使用するようにすることができます。

  • 3 番目のオプションである混合形式ロギングも選択できます。混合形式ロギングの場合、デフォルトではステートメントベースのロギングが使用されますが、次に示すような特定の状況ではロギングモードが自動的に行ベースに切り替わります。--binlog-format=MIXED オプションを指定して mysqld を開始することによって、MySQL に混合形式ロギングを使用させることができます。

MySQL 5.6 では、デフォルトのバイナリロギング形式は STATEMENT です。

ロギング形式は、使用されているストレージエンジンによって設定または制限される可能性があります。これによって、異なるストレージエンジンを使用しているマスターとスレーブの間で特定のステートメントをレプリケーションするときの問題を除去するのに役立ちます。

ステートメントベースのレプリケーションでは、非決定的なステートメントのレプリケーションに関して問題があることがあります。所定のステートメントがステートメントベースのレプリケーションについて安全かどうかを判断するために、MySQL は、ステートメントベースのロギングを使用してステートメントをレプリケーションできることを保証できるかどうかを判断します。MySQL がこれを保証できない場合、潜在的に信頼できないステートメントにマークを付け、警告 Statement may not be safe to log in statement format を発行します。

これらの問題は、代わりに MySQL の行ベースのレプリケーションを使用することで回避できます。


User Comments
Sign Up Login You must be logged in to post a comment.