

# バイナリログ構成の設定と表示
<a name="mysql-stored-proc-configuring"></a>

次のストアドプロシージャは、バイナリログファイルの保存などの設定パラメータを設定および表示します。

**Topics**
+ [mysql.rds\$1set\$1configuration](#mysql_rds_set_configuration)
+ [mysql.rds\$1show\$1configuration](#mysql_rds_show_configuration)

## mysql.rds\$1set\$1configuration
<a name="mysql_rds_set_configuration"></a>

バイナリログを保持する時間数またはレプリケーションを遅延させる秒数を指定します。

### 構文
<a name="mysql_rds_set_configuration-syntax"></a>

 

```
CALL mysql.rds_set_configuration(name,value);
```

### パラメータ
<a name="mysql_rds_set_configuration-parameters"></a>

 *.name*   
設定する設定パラメータの名前。

 *値*   
設定パラメータの値。

### 使用に関する注意事項
<a name="mysql_rds_set_configuration-usage-notes"></a>

`mysql.rds_set_configuration` プロシージャは、以下の設定パラメータをサポートしています。
+ [バイナリログの保持時間](#mysql_rds_set_configuration-usage-notes.binlog-retention-hours)
+ [ソース遅延](#mysql_rds_set_configuration-usage-notes.source-delay)
+ [ターゲット遅延](#mysql_rds_set_configuration-usage-notes.target-delay)

設定パラメータは永続的に保存され、DB インスタンスの再起動やフェイルオーバー後も存続します。

#### バイナリログの保持時間
<a name="mysql_rds_set_configuration-usage-notes.binlog-retention-hours"></a>

`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 ボリュームに移動します。ただし、最新のログはローカルストレージに残るため、ホストの交換を必要とする障害が発生した場合、またはデータベースをスケールアップまたはスケールダウンした場合、ログは失われる可能性があります。

#### ソース遅延
<a name="mysql_rds_set_configuration-usage-notes.source-delay"></a>

リードレプリカで `source delay` パラメータを使用して、リードレプリカからソース DB インスタンスへのレプリケーションを遅延させる秒数を指定します。Amazon RDS は、通常、変更をできるだけ早くレプリケートしますが、環境によっては、レプリケーションを遅延させたい場合があります。例えば、レプリケーションを遅延させると、遅延させたリードレプリカを災害発生直前の時点までロールフォワードできます。テーブルを誤って削除した場合は、遅延レプリケーションを使用して早急に復旧できます。`target delay` のデフォルト値は `0` です (レプリケーションを遅延させません)。

このパラメータを使用すると、[mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay) を実行して、CHANGE primary TO MASTER\$1DELAY = 入力値が適用されます。成功すると、プロシージャは `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 秒) です。

#### ターゲット遅延
<a name="mysql_rds_set_configuration-usage-notes.target-delay"></a>

`target delay` パラメータを使用して、DB インスタンスと、このインスタンスから将来作成される RDS 管理リードレプリカとのレプリケーションを遅延させる秒数を指定します。このパラメータは、RDS で管理されていないリードレプリカでは無視されます。Amazon RDS は、通常、変更をできるだけ早くレプリケートしますが、環境によっては、レプリケーションを遅延させたい場合があります。例えば、レプリケーションを遅延させると、遅延させたリードレプリカを災害発生直前の時点までロールフォワードできます。テーブルを誤って削除した場合は、遅延レプリケーションを使用して早急に復旧できます。`target delay` のデフォルト値は `0` です (レプリケーションを遅延させません)。

障害復旧のために、この設定パラメータを [mysql.rds\$1start\$1replication\$1until](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until) ストアドプロシージャ、または、[mysql.rds\$1start\$1replication\$1until\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) ストアドプロシージャで使用できます。このパラメータを設定した `mysql.rds_set_configuration` プロシージャを実行して、遅延させたリードレプリカへの変更を災害発生直前の時点までロールフォワードできます。`mysql.rds_start_replication_until`、または `mysql.rds_start_replication_until_gtid` プロシージャによりレプリケーションが停止したら、「[リードレプリカをスタンドアロン DB インスタンスに昇格させる](USER_ReadRepl.Promote.md)」の手順に従ってリードレプリカを新しいプライマリ DB インスタンスに昇格させることができます。

`mysql.rds_rds_start_replication_until_gtid` プロシージャを使用するためには、GTID ベースのレプリケーションを有効にする必要があります。障害の原因となることが知られている特定の GTID ベースの処理をスキップするために、[mysql.rds\$1skip\$1transaction\$1with\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) ストアドプロシージャを使用できます。GTID ベースのレプリケーションの使用に関する詳細については、「[GTID ベースレプリケーションを使用する](mysql-replication-gtid.md)」を参照してください。

Amazon RDS でリードレプリカへのレプリケーションを遅延させる秒数を指定するには、`mysql.rds_set_configuration` ストアドプロシージャを使用し、レプリケーションを遅延させる秒数を指定します。次の例では、レプリケーションを少なくとも 1 時間 (3600 秒) 遅延させることを指定します。

`call mysql.rds_set_configuration('target delay', 3600);`

`target delay` パラメータの上限は 1 日 (86400 秒) です。

## mysql.rds\$1show\$1configuration
<a name="mysql_rds_show_configuration"></a>

バイナリログを保持する時間数。

### 構文
<a name="mysql_rds_show_configuration-syntax"></a>

 

```
CALL mysql.rds_show_configuration;
```

### 使用に関する注意事項
<a name="mysql_rds_show_configuration-usage-notes"></a>

Amazon RDS がバイナリログを保持する時間数を確認するには、`mysql.rds_show_configuration` ストアドプロシージャを使用します。

### 例
<a name="mysql_rds_show_configuration-examples"></a>

以下の例では、保持期間を表示しています。

```
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.
```