MySQL バイナリログにアクセスする - Amazon Relational Database Service

MySQL バイナリログにアクセスする

mysqlbinlog ユーティリティを使用して、MySQL 5.6 以降を実行している Amazon RDS インスタンスからバイナリログをダウンロードまたはストリーミングできます。バイナリログはローカルコンピューターにダウンロードされ、mysql ユーティリティを使用してログの再生などの操作を実行できます。mysqlbinlog ユーティリティの使用の詳細については、「バイナリログファイルのバックアップのための mysqlbinlog の使用」を参照してください。

Amazon RDS インスタンスに対して mysqlbinlog ユーティリティを実行するには、以下のオプションを使用します。

  • --read-from-remote-server オプションを指定します。

  • --host: インスタンスのエンドポイントからの DNS 名を指定します。

  • --port: インスタンスによって使用されるポートを指定します。

  • --user: レプリケーションスレーブアクセス許可を付与された MySQL ユーザーを指定します。

  • --password: ユーザーのパスワードを指定するか、パスワード値を省略します。省略した場合、ユーティリティによってパスワードの入力を求められます。

  • ファイルをバイナリ形式でダウンロードするには、--raw オプションを指定します。

  • --result-file: raw 出力を受け取るローカルファイルを指定します。

  • 1 つ以上のバイナリログファイルの名前を指定します。使用可能なログのリストを取得するには、SQL コマンド SHOW BINARY LOGS を使用します。

  • バイナリログファイルをストリーミングするには、--stop-never オプションを指定します。

mysqlbinlog のオプションの詳細については、「mysqlbinlog - バイナリログファイルを処理するためのユーティリティ」を参照してください。

例えば、次のようになります。

Linux、macOS、Unix の場合:

mysqlbinlog \ --read-from-remote-server \ --host=MySQL56Instance1.cg034hpkmmjt.region.rds.amazonaws.com \ --port=3306 \ --user ReplUser \ --password \ --raw \ --result-file=/tmp/ \ binlog.00098

Windows の場合:

mysqlbinlog ^ --read-from-remote-server ^ --host=MySQL56Instance1.cg034hpkmmjt.region.rds.amazonaws.com ^ --port=3306 ^ --user ReplUser ^ --password ^ --raw ^ --result-file=/tmp/ ^ binlog.00098

Amazon RDS では、通常、バイナリログはできる限り早く消去されますが、mysqlbinlog によってアクセスされるバイナリログはインスタンスで保持される必要があります。RDS でバイナリログを保持する時間数を指定するには、mysql.rds_set_configuration ストアドプロシージャを使用して、ログのダウンロードするのに十分な期間を指定します。保持期間を設定したら、DB インスタンスのストレージ使用状況をモニタリングして、保持されたバイナリログに必要以上の容量が使用されないようにします。

注記

mysql.rds_set_configuration ストアドプロシージャは、MySQL バージョン 5.6 以降でのみ使用できます。

以下の例では、保持期間を 1 日に設定しています。

call mysql.rds_set_configuration('binlog retention hours', 24);

現在の設定を表示するには、mysql.rds_show_configuration ストアドプロシージャを使用します。

call mysql.rds_show_configuration;