MySQL バイナリログにアクセスする
mysqlbinlog ユーティリティを使用して、RDS for MySQL DB インスタンスからバイナリログをダウンロードまたはストリーミングできます。バイナリログはローカルコンピュータにダウンロードされ、mysql ユーティリティを使用してログの再生などの操作を実行できます。mysqlbinlog ユーティリティの使用の詳細については、MySQL ドキュメントの「バイナリログファイルのバックアップのための mysqlbinlog の使用
Amazon RDS インスタンスに対して mysqlbinlog ユーティリティを実行するには、以下のオプションを使用します。
-
--read-from-remote-server
– 必須。 -
--host
- インスタンスのエンドポイントからの DNS 名。 -
--port
- インスタンスによって使用されるポート。 -
--user
–REPLICATION SLAVE
アクセス許可を付与された MySQL ユーザー。 -
--password
- MySQL ユーザーのパスワード。パスワード値を省略省略した場合、ユーティリティによってパスワードの入力を求められます。 -
--raw
— バイナリ形式のファイルをダウンロードします。 -
--result-file
- raw 出力を受け取るローカルファイル。 -
--stop-never
— バイナリログファイルをストリーミングします。 -
--verbose
—ROW
binlog 形式を使用するとき、このオプションを含めると、行イベントが疑似 SQL ステートメントとして表示されます。--verbose
オプションの詳細については、MySQL ドキュメントの「mysqlbinlog row event display」(mysqlbinlog の行イベントの表示) を参照してください。 -
1 つ以上のバイナリログファイルの名前を指定します。使用可能なログのリストを取得するには、SQL コマンド
SHOW BINARY LOGS
を使用します。
mysqlbinlog のオプションの詳細については、MySQL ドキュメントの「mysqlbinlog - バイナリログファイルを処理するためのユーティリティ
以下の例では、mysqlbinlog ユーティリティの使用方法を示します。
Linux、macOS、Unix の場合:
mysqlbinlog \ --read-from-remote-server \ --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com \ --port=3306 \ --user ReplUser \ --password \ --raw \ --verbose \ --result-file=/tmp/ \ binlog.00098
Windows の場合:
mysqlbinlog ^ --read-from-remote-server ^ --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com ^ --port=3306 ^ --user ReplUser ^ --password ^ --raw ^ --verbose ^ --result-file=/tmp/ ^ binlog.00098
Amazon RDS では、通常、バイナリログはできる限り早く消去されますが、mysqlbinlog によってアクセスされるバイナリログはインスタンスで保持される必要があります。RDS でバイナリログを保持する時間数を指定するには、mysql.rds_set_configuration ストアドプロシージャを使用して、ログのダウンロードするのに十分な期間を指定します。保持期間を設定したら、DB インスタンスのストレージ使用状況をモニタリングして、保持されたバイナリログに必要以上の容量が使用されないようにします。
以下の例では、保持期間を 1 日に設定しています。
call mysql.rds_set_configuration('binlog retention hours', 24);
現在の設定を表示するには、mysql.rds_show_configuration ストアドプロシージャを使用します。
call mysql.rds_show_configuration;