継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

Aurora MySQL でレプリケーションを行うためにバイナリログを有効化する

タダです.

Aurora MySQL のデータを DMS でのレプリケーションをやりたいと思い,バイナリログを有効化する機会がありました.初めてやったので設定について振り返っていきます.なお,Aurora のバージョンは 5.6.mysql_aurora.1.22.2で確認してます.

DB クラスターパラメーターグループの binlog_format を編集する

Aurora MySQL でバイナリログを有効化する方法として,DB クラスターパラメーターグループの binlog_format を編集する必要があります.パラメーターとしてROW/MIXED/STATEMENTがあります.変更前は下記のようになっていました.

mysql> show global variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+
mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | STATEMENT|
+---------------+-------+

DMS でのレプリケーションにおいてはバイナリログは ROW で設定することがドキュメントで記載されていたので ROW を設定しています.

Set the binlog_format parameter to "ROW".

docs.aws.amazon.com

binlog_format 設定変更後の作業

binlog_format 変更後は WRITER 側を再起動する必要があります.再起動後,再度パラメーターを確認するとlog_binbinlog_formatのパラメーターが変わりバイナリログが出力されたのを確認できます.

mysql> show global variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.01 sec)
mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW   |
+---------------+-------+
1 row in set (0.00 sec)
mysql> show binary logs;
+----------------------------+-----------+
| Log_name                   | File_size |
+----------------------------+-----------+
| mysql-bin-changelog.000001 |       120 |
| mysql-bin-changelog.000002 |     43424 |
+----------------------------+-----------+
2 rows in set (0.00 sec)

まとめ

Aurora MySQL でのバイナリログの有効化方法とその作業後の確認した点をまとめました.データベースでのオペレーションは経験値が低い分学びが多いので記録する記事を残していければと思います.