

# 使用 GTID 复制事务


以下存储过程控制如何使用 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
mysql.rds\$1skip\$1transaction\$1with\$1gtid

在 MySQL 数据库实例上跳过复制具有指定全局事务标识符 (GTID) 的事务。

在已知特定 GTID 事务导致问题时，您可以使用该过程进行灾难恢复。请使用该存储过程跳过有问题的事务。有问题的事务示例包括禁用复制、删除重要数据或导致数据库实例变得不可用的事务。

### 语法
语法

 

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

### 参数
参数

 *gtid\$1to\$1skip*   
要跳过的复制事务的 GTID。

### 使用说明
使用说明

主用户必须运行 `mysql.rds_skip_transaction_with_gtid` 过程。

所有 RDS for MySQL 5.7 版本、所有 RDS for MySQL 8.0 版本和所有 RDS for MySQL 8.4 版本均支持此过程。

### 示例
示例

以下示例将跳过复制具有 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
mysql.rds\$1start\$1replication\$1until\$1gtid

从 RDS for MySQL 数据库实例中启动复制，并在指定的全局事务标识符（GTID）后面立即停止复制。

### 语法
语法

 

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

### 参数
参数

 *gtid*   
停止复制前的 GTID。

### 使用说明
使用说明

主用户必须运行 `mysql.rds_start_replication_until_gtid` 过程。

所有 RDS for MySQL 5.7 版本、所有 RDS for MySQL 8.0 版本和所有 RDS for MySQL 8.4 版本均支持此过程。

您可以对延迟复制使用该过程以进行灾难恢复。如果您已配置延迟复制，则可以使用该过程来将延迟只读副本的更改向前滚动到灾难之前的时间。在该过程停止复制后，您可以通过使用[将只读副本提升为独立的数据库实例](USER_ReadRepl.Promote.md)中的说明，将只读副本提升为新的主数据库实例。

您可以使用以下存储过程配置延迟复制：
+ [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` 参数指定副本已运行的事务时，将会立即停止复制。

### 示例
示例

以下示例启动复制并复制更改，直至到达 GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23`。

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