MariaDB での遅延レプリケーションの設定
遅延レプリケーションは、災害対策用の戦略として使用できます。遅延レプリケーションでは、ソースからリードレプリカへのレプリケーションを遅延させる最小時間を秒数で指定します。障害発生時 (意図しないテーブルの削除など) には、以下のステップを実行して障害から早急に復旧します。
-
障害を起こした変更がリードレプリカに送られる前に、リードレプリカへのレプリケーションを停止します。
レプリケーションを停止するには、mysql.rds_stop_replication ストアドプロシージャを使用します。
-
「リードレプリカをスタンドアロン DB インスタンスに昇格させる」の手順を使用してリードレプリカを新しいソースの DB インスタンスに昇格させます。
注記
-
遅延レプリケーションは MariaDB 10.6 以降でサポートされています。
-
遅延レプリケーションを設定するには、ストアドプロシージャを使用します。遅延レプリケーションを AWS Management Console、AWS CLI、または Amazon RDS API で設定することはできません。
-
遅延レプリケーションの設定でグローバルなトランザクション識別子 (GTID) に基づくレプリケーションを使用できます。
リードレプリカ作成時の遅延レプリケーションの設定
DB インスタンスから今後作成するリードレプリカの遅延レプリケーションを設定するには、mysql.rds_set_configuration パラメータを指定して target delay
ストアドプロシージャを実行します。
リードレプリカの作成時に遅延レプリケーションを設定するには
-
MariaDB クライアントを使用して、マスターユーザーとしてリードレプリカのソースとなる MariaDB DB インスタンスに接続します。
-
mysql.rds_set_configuration パラメータを指定して
target delay
ストアドプロシージャを実行します。例えば、現在の DB インスタンスから作成されるリードレプリカへのレプリケーションを少なくとも 1 時間 (3600 秒) 遅延させるように指定するには、次のストアドプロシージャを実行します。
call mysql.rds_set_configuration('target delay', 3600);
注記
このストアドプロシージャを実行すると、AWS CLI または Amazon RDS API を使用して作成したリードレプリカには、指定した秒数で遅延するレプリケーションが設定されます。
既存のリードレプリカの遅延レプリケーションの変更
既存のリードレプリカの遅延レプリケーションを変更するには、mysql.rds_set_source_delay ストアドプロシージャを実行します。
既存のリードレプリカの遅延レプリケーションを変更するには
-
MariaDB クライアントを使用して、マスターユーザーとしてリードレプリカに接続します。
-
レプリケーションを停止するには、mysql.rds_stop_replication ストアドプロシージャを使用します。
-
mysql.rds_set_source_delay ストアドプロシージャを実行します。
例えば、リードレプリカへのレプリケーションを少なくとも 1 時間 (3600 秒) 遅延させるように指定するには、次のストアドプロシージャを実行します。
call mysql.rds_set_source_delay(3600);
-
mysql.rds_start_replication ストアドプロシージャを使用してレプリケーションを開始します。
リードレプリカの昇格
レプリケーションが停止したら、災害対策シナリオでリードレプリカを新しいソース DB インスタンスに昇格させます。リードレプリカの昇格については、「リードレプリカをスタンドアロン DB インスタンスに昇格させる」を参照してください。