Aurora MySQL をソースとして AWS DMS を使用するときに受け取ったバイナリログ記録エラーをトラブルシューティングする方法を教えてください。

最終更新日 : 2019 年 10 月 1 日

MySQL を実行している Amazon Aurora DB インスタンスがあり、バイナリログ記録が有効になっています。Aurora DB インスタンスを AWS Database Migration Service (AWS DMS) タスクのソースとして使用していますが、エラーが発生しました。このエラーをトラブルシューティングして解決するにはどうすれば良いですか?

簡単な説明

FULL LOAD AND CDC または CDC のみの AWS DMS タスクで変更データキャプチャ (CDC) を使用するには、ソース Aurora MySQL DB ライターインスタンスでバイナリログ記録を有効にする必要があります。リードレプリカは CDC オペレーションのソースとしてサポートされていないため、ライターインスタンスを使用する必要があります。詳細については、AWS DMS のソースとして MySQL データベースを使用する場合の制限を参照してください。

バイナリログ記録が有効になっていないか、リーダーインスタンスに接続している場合は、次のようなログエントリが表示されます。

メッセージ
[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 を使用してライターインスタンスに接続します。クラスターエンドポイントは常にクラスターの現在のライターを指すため、クラスターエンドポイントに接続するのがベストプラクティスです。

次に、クラスターエンドポイントを使用してソースの Aurora クラスターライターノードに接続し、バイナリログ記録が有効になっていることを確認します。

mysql> show global variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin        | OFF   |
+---------------+-------+

log_bin パラメータが OFF に設定されている場合は、Aurora クラスターの cluster parameter group をチェックして、binlog_format パラメータが ROW に設定されていることを確認します。binlog_formatROW に設定されていない場合は、パラメータを変更して Aurora for MySQL のバイナリログ記録を有効にします

注意: これは静的パラメータであるため、この変更を有効にするには Aurora インスタンスを再起動する必要があります。

binlog_format パラメータを ROW に設定したら、Aurora インスタンスに接続してバイナリログ記録が有効になっていることを確認します。

mysql> show global variables like "log_bin";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin        | ON    |
+---------------+-------+

バイナリログ記録を有効にし、AWS DMS でクラスターライターエンドポイントを使用していることを確認したら、タスクを再起動します。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合