バイナリログ構成の設定と表示
次のストアドプロシージャは、バイナリログファイルの保存などの設定パラメータを設定および表示します。
mysql.rds_set_configuration
バイナリログを保持する時間数またはレプリケーションを遅延させる秒数を指定します。
構文
CALL mysql.rds_set_configuration(
name
,value
);
パラメータ
-
name
-
設定する設定パラメータの名前。
-
value
-
設定パラメータの値。
使用に関する注意事項
mysql.rds_set_configuration
プロシージャは、以下の設定パラメータをサポートしています。
設定パラメータは永続的に保存され、DB インスタンスの再起動やフェイルオーバー後も存続します。
バイナリログの保持時間
binlog retention hours
パラメータは、バイナリログファイルを保持する時間数を指定するために使用されます。Amazon RDS では、通常、バイナリログは可能な限りすみやかに消去されますが、RDS の外部にある MySQL データベースでのレプリケーションのためにバイナリログが必要になる場合があります。
binlog retention hours
の初期値は NULL
です。RDS for MySQL の場合、NULL
はバイナリログが保持されないことを意味します (0 時間)。
DB インスタンスのバイナリログを保持する時間数を指定するには、mysql.rds_set_configuration
ストアドプロシージャを使用して、次の例のように、レプリケーションを実行するのに十分な期間を指定します。
call mysql.rds_set_configuration('binlog retention hours', 24);
注記
binlog retention hours
には、値 0
は使用できません。
MySQL DB インスタンスの場合、binlog retention hours
の最大値は 168 (7 日) です。
保持期間を設定したら、DB インスタンスのストレージ使用状況をモニタリングして、保持されたバイナリログに必要以上の容量が使用されないようにします。
マルチ AZ DB クラスターデプロイでは、ライター DB インスタンスからのみバイナリログ保持を設定でき、設定はすべてのリーダー DB インスタンスに非同期的に伝播されます。DB クラスターのバイナリログがローカルストレージ領域の合計の半分を超えると、Amazon RDS は自動的に古いログを EBS ボリュームに移動します。ただし、最新のログはローカルストレージに残るため、ホストの交換を必要とする障害が発生した場合、またはデータベースをスケールアップまたはスケールダウンした場合、ログは失われる可能性があります。
ソース遅延
リードレプリカで source delay
パラメータを使用して、リードレプリカからソース DB インスタンスへのレプリケーションを遅延させる秒数を指定します。Amazon RDS は、通常、変更をできるだけ早くレプリケートしますが、環境によっては、レプリケーションを遅延させたい場合があります。例えば、レプリケーションを遅延させると、遅延させたリードレプリカを災害発生直前の時点までロールフォワードできます。テーブルを誤って削除した場合は、遅延レプリケーションを使用して早急に復旧できます。target delay
のデフォルト値は 0
です (レプリケーションを遅延させません)。
このパラメータを使用すると、mysql.rds_set_source_delay を実行して、CHANGE primary TO MASTER_DELAY = 入力値が適用されます。成功すると、プロシージャは source delay
パラメータを mysql.rds_configuration
テーブルに保存します。
Amazon RDS でソース DB インスタンスへのレプリケーションを遅延させる秒数を指定するには、mysql.rds_set_configuration
ストアドプロシージャを使用して、レプリケーションを遅延させる秒数を指定します。次の例では、レプリケーションは少なくとも 1 時間 (3600 秒) 遅延されます。
call mysql.rds_set_configuration('source delay', 3600);
その後、プロシージャは mysql.rds_set_source_delay(3600)
を実行します。
source delay
パラメータの上限は 1 日 (86400 秒) です。
注記
source delay
パラメータは RDS for MySQL バージョン 8.0 または MariaDB バージョン 10.2 未満ではサポートされていません。
ターゲット遅延
target delay
パラメータを使用して、DB インスタンスと、このインスタンスから将来作成される RDS 管理リードレプリカとのレプリケーションを遅延させる秒数を指定します。このパラメータは、RDS で管理されていないリードレプリカでは無視されます。Amazon RDS は、通常、変更をできるだけ早くレプリケートしますが、環境によっては、レプリケーションを遅延させたい場合があります。例えば、レプリケーションを遅延させると、遅延させたリードレプリカを災害発生直前の時点までロールフォワードできます。テーブルを誤って削除した場合は、遅延レプリケーションを使用して早急に復旧できます。target delay
のデフォルト値は 0
です (レプリケーションを遅延させません)。
障害復旧のために、この設定パラメータを mysql.rds_start_replication_until ストアドプロシージャ、または、mysql.rds_start_replication_until_gtid ストアドプロシージャで使用できます。このパラメータを設定した mysql.rds_set_configuration
プロシージャを実行して、遅延させたリードレプリカへの変更を災害発生直前の時点までロールフォワードできます。mysql.rds_start_replication_until
、または mysql.rds_start_replication_until_gtid
プロシージャによりレプリケーションが停止したら、「リードレプリカをスタンドアロン DB インスタンスに昇格させる」の手順に従ってリードレプリカを新しいプライマリ DB インスタンスに昇格させることができます。
mysql.rds_rds_start_replication_until_gtid
プロシージャを使用するためには、GTID ベースのレプリケーションを有効にする必要があります。障害の原因となることが知られている特定の GTID ベースの処理をスキップするために、mysql.rds_skip_transaction_with_gtid ストアドプロシージャを使用できます。GTID ベースのレプリケーションの使用に関する詳細については、「GTID ベースレプリケーションを使用する」を参照してください。
Amazon RDS でリードレプリカへのレプリケーションを遅延させる秒数を指定するには、mysql.rds_set_configuration
ストアドプロシージャを使用し、レプリケーションを遅延させる秒数を指定します。次の例では、レプリケーションを少なくとも 1 時間 (3600 秒) 遅延させることを指定します。
call mysql.rds_set_configuration('target delay', 3600);
target delay
パラメータの上限は 1 日 (86400 秒) です。
注記
target delay
パラメータは RDS for MySQL バージョン 8.0 または MariaDB バージョン 10.2 未満ではサポートされていません。
mysql.rds_show_configuration
バイナリログを保持する時間数。
構文
CALL mysql.rds_show_configuration;
使用に関する注意事項
Amazon RDS がバイナリログを保持する時間数を確認するには、mysql.rds_show_configuration
ストアドプロシージャを使用します。
例
以下の例では、保持期間を表示しています。
call mysql.rds_show_configuration; name value description binlog retention hours 24 binlog retention hours specifies the duration in hours before binary logs are automatically deleted.