DMS のタスクが Errors in MySQL server binary logging configuration というエラーで失敗する時の対処方法を教えてください

2022.08.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

今までエラーなく動作していた Aurora MySQL をソースに設定した DMS タスクが以下のエラーで失敗します。

Errors in MySQL server binary logging configuration

このエラーを解消し、タスクを成功させるにはどうしたらよいでしょうか。

どう対応すればいいの?

DMS のソースとして MySQL を使用する際の制限事項の一つに、DMS の移行タイプがフルロードの Migrate existing data でない限り、リーダーインスタンスは使用できないという項目がございます。 その制限に接触した場合、前述のエラーでタスクが失敗致します。

以下は、AWS 公式ドキュメントからの抜粋です。

You can't use Aurora MySQL replicas as a source for AWS DMS unless your DMS migration task mode is Migrate existing data—full load only.

メッセージを翻訳します。

DMSの移行タスクモードがMigrate existing data-full load onlyでない限り、Aurora MySQL replicasをAWS DMSのソースとして使用することはできません。

事前にフェイルオーバーが発生し、ライターインスタンスとリーダーインスタンスが切り替わることでエラーが発生する可能性もございます。 突然タスクがエラーになった場合、直近でフェイルオーバーが発生していないかご確認ください。

クラスターエンドポイントを指定する

DMS ソースエンドポイントのサーバー名にクラスターエンドポイントを指定いただければ、接続先がライターインスタンスとなるため、前述のようなフェイルオーバーの発生にも対応できます。

以下は、AWS 公式ドキュメントからの抜粋です。

フェイルオーバー機構によって別の DB インスタンスがクラスターの読み取り/書き込みのプライマリインスタンスに昇格されると、クラスターエンドポイントがポイントする物理 IP アドレスは変わります。何らかの形式の接続プールや他の多重化を使用している場合は、キャッシュされた DNS 情報の有効時間をフラッシュまたは削減する必要があります。これにより、フェイルオーバー後に使用不可または読み取り専用になった DB インスタンスに読み取り/書き込み接続を試行できないようにします。

参考

Limitations on using a MySQL database as a source for AWS DMS | Using a MySQL-compatible database as a source for AWS DMS - AWS Database Migration Service

クラスターエンドポイントの使用