

# GTID を使用したトランザクションのレプリケーション
<a name="mysql-stored-proc-gtid"></a>

以下のストアドプロシージャは、RDS for MySQL でグローバルトランザクション識別子 (GTID) を使用してトランザクションをレプリケートする方法を制御します。RDS for MySQL での GTID ベースのレプリケーションの詳細については、「[GTID ベースレプリケーションを使用する](mysql-replication-gtid.md)」を参照してください。

`caching_sha2_password` で設定されたレプリケーションユーザーによるレプリケーションを、ストアドプロシージャを使用して管理する場合は、`SOURCE_SSL=1` を指定して TLS を設定する必要があります。`caching_sha2_password` は RDS for MySQL 8.4 のデフォルトの認証プラグインです。

**Topics**
+ [mysql.rds\$1skip\$1transaction\$1with\$1gtid](#mysql_rds_skip_transaction_with_gtid)
+ [mysql.rds\$1start\$1replication\$1until\$1gtid](#mysql_rds_start_replication_until_gtid)

## mysql.rds\$1skip\$1transaction\$1with\$1gtid
<a name="mysql_rds_skip_transaction_with_gtid"></a>

MySQL DB インスタンスで、指定されたグローバルトランザクション識別子 (GTID) のあるトランザクションのレプリケーションをスキップします。

特定の GTID トランザクションが問題の原因となることが知られている場合、障害復旧のためにこのプロシージャを使用できます。このストアドプロシージャを使用して、問題となるトランザクションをスキップします。問題のあるトランザクションの例には、レプリケーションを無効にしたり、重要なデータを削除したり、DB インスタンスを利用不可にするトランザクションが含まれます。

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

 

```
CALL mysql.rds_skip_transaction_with_gtid (
gtid_to_skip
);
```

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

 *gtid\$1to\$1skip*   
スキップするレプリケーショントランザクションの GTID。

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

マスターユーザーが `mysql.rds_skip_transaction_with_gtid` を実行する必要があります。

この手順はすべての RDS for MySQL 5.7 バージョン、すべての RDS for MySQL 8.0 バージョン、すべての RDS for MySQL 8.4 バージョンでサポートされています。

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

次の例では、GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23` を使用したトランザクションのレプリケーションをスキップします。

```
CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
```

## mysql.rds\$1start\$1replication\$1until\$1gtid
<a name="mysql_rds_start_replication_until_gtid"></a>

RDS for MySQL DB インスタンスからのレプリケーションを開始し、指定したグローバルトランザクション識別子 (GTID) の後でレプリケーションを停止します。

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

 

```
CALL mysql.rds_start_replication_until_gtid(gtid);
```

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

 *gtid*   
レプリケーションがその後で停止する GTID。

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

マスターユーザーが `mysql.rds_start_replication_until_gtid` を実行する必要があります。

この手順はすべての RDS for MySQL 5.7 バージョン、すべての RDS for MySQL 8.0 バージョン、すべての RDS for MySQL 8.4 バージョンでサポートされています。

このプロシージャは、災害対策用の遅延レプリケーションで使用できます。遅延レプリケーションを設定している場合は、このプロシージャを使用して、遅延したリードレプリカへの変更を災害発生直前の時点までロールフォワードできます。このプロシージャでのレプリケーションが停止したら、「[リードレプリカをスタンドアロン DB インスタンスに昇格させる](USER_ReadRepl.Promote.md)」の手順に従ってリードレプリカを新しいプライマリ DB インスタンスに昇格させることができます。

次のストアドプロシージャを使用して遅延レプリケーションを設定できます。
+ [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS for MariaDB および RDS for MySQL メジャーバージョン 8.0 以前)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS for MySQL メジャーバージョン 8.4 以降)](mysql-stored-proc-replicating.md#mysql_rds_set_external_source_with_delay)
+ [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay)

`gtid`パラメータで指定したトランザクションがレプリカによって既に実行されている場合、レプリケーションは即座に停止します。

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

次の例では、レプリケーションをスタートし、GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23` に達するまで変更をレプリケートします。

```
call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
```