バイナリロギングが有効になっている Amazon Aurora MySQL 互換エディション DB インスタンスを使用しています。その DB インスタンスを AWS Database Migration Service (AWS DMS) タスクのソースとして使用すると、エラーが発生するため、この問題をトラブルシューティングしたいです。
簡単な説明
フルロードと変更データキャプチャ (CDC) を使用する AWS DMS タスク、または CDC のみの AWS DMS タスクで CDC を使用するには、ソース DB のライターインスタンスでバイナリロギングを有効にします。リードレプリカは CDC 操作をサポートしていないため、ライターインスタンスを使用してください。詳細については、「MySQL データベースを AWS DMS のソースとして使用する場合の制限」を参照してください。
バイナリロギングを有効にしていない場合や、リーダーインスタンスに接続している場合は、次のようなログエントリが表示されます。
Messages
[SOURCE_CAPTURE ]I: System var 'log_bin' = 'OFF'
[SOURCE_CAPTURE ]E: Error Code [10001] : Binary Logging must be enabled for MySQL server [1020418] (mysql_endpoint_capture.c:366)
解決策
リーダーインスタンスに接続する場合は、ライターインスタンスを特定してから、AWS DMS を使用してライターインスタンスに接続します。クラスターエンドポイントは常にクラスターの現在のライターを指すため、クラスターエンドポイントに接続することをおすすめします。
バイナリロギングが有効になっているかどうかを確認するには、クラスターエンドポイントを使用してソースクラスターのライターノードに接続します。
mysql> show global variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
log_bin パラメータが OFF に設定されている場合は、クラスターのパラメータグループで binlog_format パラメータが ROW に設定されているかどうかを確認します。binlog_format が ROW に設定されていない場合は、このパラメータを変更して Aurora MySQL 互換のバイナリロギングを有効にします。
注: これは静的パラメータなので、この変更を有効にするには Aurora MySQL 互換インスタンスを再起動する必要があります。
binlog_format パラメータを ROW に設定した後、バイナリロギングが有効になっていることを確認するために、Aurora MySQL 互換インスタンスに接続します。
mysql> show global variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
バイナリロギングを有効にし、AWS DMS でクラスターのライターエンドポイントを使用していることを確認した後、タスクを再開します。
関連情報
MySQL 互換データベースを AWS DMS のソースとして使用する