

# 管理主动-主动集群
<a name="mysql-stored-proc-active-active-clusters"></a>

以下存储过程用于设置和管理 RDS for MySQL 主动-主动集群。有关更多信息，请参阅 [为 RDS for MySQL 配置主动-主动集群](mysql-active-active-clusters.md)。

这些存储过程仅适用于运行以下版本的 RDS for MySQL 数据库实例：
+ 所有 MySQL 8.4 版本
+ MySQL 8.0.35 及更高的次要版本

**Topics**
+ [mysql.rds\$1group\$1replication\$1advance\$1gtid](#mysql_rds_group_replication_advance_gtid)
+ [mysql.rds\$1group\$1replication\$1create\$1user](#mysql_rds_group_replication_create_user)
+ [mysql.rds\$1group\$1replication\$1set\$1recovery\$1channel](#mysql_rds_group_replication_set_recovery_channel)
+ [mysql.rds\$1group\$1replication\$1start](#mysql_rds_group_replication_start)
+ [mysql.rds\$1group\$1replication\$1stop](#mysql_rds_group_replication_stop)

## mysql.rds\$1group\$1replication\$1advance\$1gtid
<a name="mysql_rds_group_replication_advance_gtid"></a>

在当前数据库实例上创建占位符 GTID。

### 语法
<a name="mysql_rds_group_replication_advance_gtid-syntax"></a>

```
CALL mysql.rds_group_replication_advance_gtid(
begin_id
, end_id
, server_uuid
);
```

### 参数
<a name="mysql_rds_group_replication_advance_gtid-parameters"></a>

 *begin\$1id*   
要创建的开始事务 ID。

 *end\$1id*   
要创建的结束事务 ID。

 *begin\$1id*   
要创建的事务的 `group_replication_group_name`。在与数据库实例关联的数据库参数组中将 `group_replication_group_name` 指定为 UUID。

### 使用说明
<a name="mysql_rds_group_replication_advance_gtid-usage-notes"></a>

在主动-主动集群中，要使数据库实例加入组，在新数据库实例上执行的所有 GTID 事务都必须存在于集群中的其它成员上。在不寻常的情况下，在将实例加入组之前执行事务时，新的数据库实例可能会有更多的事务。在这种情况下，您无法移除任何现有事务，但您可以使用此过程在组中的其它数据库实例上创建相应的占位符 GTID。在执行此操作之前，请验证事务*不会影响复制的数据*。

当您调用此过程时，将创建 `server_uuid:begin_id-end_id` 的 GTID 事务，但内容为空。为避免复制问题，请勿在任何其它条件下使用此过程。

**重要**  
避免在主动-主动集群运行正常时调用此过程。除非您了解正在创建的事务可能产生的后果，否则不要调用此过程。调用此过程可能会导致数据不一致。

### 示例
<a name="mysql_rds_group_replication_advance_gtid-examples"></a>

以下示例在当前数据库实例上创建占位符 GTID：

```
CALL mysql.rds_group_replication_advance_gtid(5, 6, '11111111-2222-3333-4444-555555555555');
```

## mysql.rds\$1group\$1replication\$1create\$1user
<a name="mysql_rds_group_replication_create_user"></a>

为数据库实例上的组复制创建复制用户 `rdsgrprepladmin`。

### 语法
<a name="mysql_rds_group_replication_create_user-syntax"></a>

```
CALL mysql.rds_group_replication_create_user(
replication_user_password
);
```

### 参数
<a name="mysql_rds_group_replication_create_user-parameters"></a>

 *replication\$1user\$1password*   
复制用户 `rdsgrprepladmin` 的密码。

### 使用说明
<a name="mysql_rds_group_replication_create_user-usage-notes"></a>
+ 在主动-主动集群中的所有数据库实例上，复制用户 `rdsgrprepladmin` 的密码必须相同。
+ `rdsgrprepladmin` 用户名保留用于组复制连接。任何其他用户（包括主用户）都不能拥有此用户名。

### 示例
<a name="mysql_rds_group_replication_create_user-examples"></a>

以下示例为数据库实例上的组复制创建复制用户 `rdsgrprepladmin`：

```
CALL mysql.rds_group_replication_create_user('password');
```

## mysql.rds\$1group\$1replication\$1set\$1recovery\$1channel
<a name="mysql_rds_group_replication_set_recovery_channel"></a>

设置主动-主动集群的 `group_replication_recovery` 通道。该过程使用保留的 `rdsgrprepladmin` 用户来配置通道。

### 语法
<a name="mysql_rds_group_replication_set_recovery_channel-syntax"></a>

```
CALL mysql.rds_group_replication_set_recovery_channel(
replication_user_password);
```

### 参数
<a name="mysql_rds_group_replication_set_recovery_channel-parameters"></a>

 *replication\$1user\$1password*   
复制用户 `rdsgrprepladmin` 的密码。

### 使用说明
<a name="mysql_rds_group_replication_set_recovery_channel-usage-notes"></a>

在主动-主动集群中的所有数据库实例上，复制用户 `rdsgrprepladmin` 的密码必须相同。调用 `mysql.rds_group_replication_create_user` 可指定密码。

### 示例
<a name="mysql_rds_group_replication_set_recovery_channel-examples"></a>

以下示例为主动-主动集群设置 `group_replication_recovery` 通道：

```
CALL mysql.rds_group_replication_set_recovery_channel('password');
```

## mysql.rds\$1group\$1replication\$1start
<a name="mysql_rds_group_replication_start"></a>

在当前数据库实例上启动组复制。

### 语法
<a name="mysql_rds_group_replication_start-syntax"></a>

```
CALL mysql.rds_group_replication_start(
bootstrap
);
```

### 参数
<a name="mysql_rds_group_replication_start-parameters"></a>

 *bootstrap*   
一个值，它指定是初始化新组还是加入现有组。值为 `1` 时，将使用当前数据库实例初始化新组。值为 `0` 时，将通过连接到在与当前数据库实例关联的数据库参数组的 `group_replication_group_seeds` 参数中定义的端点，将该数据库实例加入到现有组。

### 示例
<a name="mysql_rds_group_replication_start-examples"></a>

以下示例使用当前数据库实例初始化新组：

```
CALL mysql.rds_group_replication_start(1);
```

## mysql.rds\$1group\$1replication\$1stop
<a name="mysql_rds_group_replication_stop"></a>

在当前数据库实例上停止组复制。

### 语法
<a name="mysql_rds_group_replication_stop-syntax"></a>

```
CALL mysql.rds_group_replication_stop();
```

### 使用说明
<a name="mysql_rds_group_replication_stop-usage-notes"></a>

当您在数据库实例上停止复制时，它不会影响主动-主动集群中的任何其它数据库实例。