Amazon Aurora => RDS for MySQL(レプリカ) へのレプリケーション
Aurora と MySQL との間、または Aurora と別の Aurora DB クラスターとの間のレプリケーション
前提
Aurora の更新は無い前提
1. Aurora 側でバイナリログ記録を有効にする
MIXED に変更
https://gyazo.com/9ab200d4393c4a5c736437124641552e
2. Aurora のバイナリログを保持期間を 14 日に変更
code:sql
mysql> CALL mysql.rds_set_configuration('binlog retention hours', 336);
3. マスターのバイナリログ情報を取得
code:sql
mysql> show master status;
+----------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------------+----------+--------------+------------------+-------------------+
| mysql-bin-changelog.000002 | 154 | | | |
+----------------------------+----------+--------------+------------------+-------------------+
スナップショットを取得した場合のイベントログにbinlog のファイル名とポジションが出力される
4. Aurora 側で mysqldump を取得
Amazon Aurora から mysqldump
5. レプリカに dump を読み込む
code:sql
mysql> source backup.sql
6. Aurora 上でレプリケーション用ユーザを作成
code:sql
mysql> CREATE USER 'repl_user'@'%' IDENTIFIED BY 'repl_user';
mysql> GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'%';
7. レプリカ上でレプリケーション設定
設定
code:sql
mysql> CALL mysql.rds_set_external_master ('Aurora_host', 3306, 'repl_user', 'repl_user', 'mysql-bin-changelog.000002', 154, 0);
開始
code:sql
mysql> CALL mysql.rds_start_replication;
8. レプリカをモニタリング
SHOW SLAVE STATUS
9. Aurora のバイナリログを保持期間を 3 日に変更
code:sql
CALL mysql.rds_set_configuration('binlog retention hours', 72);
#Amazon_RDS
#レプリケーション