

# Replicación de transacciones mediante GTID
<a name="mysql-stored-proc-gtid"></a>

Los siguientes procedimientos almacenados controlan cómo se replican las transacciones mediante identificadores de transacciones globales (GTID) con Aurora MySQL. Para conocer cómo utilizar la replicación basada en GTID con Aurora MySQL, consulte [Uso de la replicación basada en GTID](mysql-replication-gtid.md).

**Topics**
+ [mysql.rds\$1assign\$1gtids\$1to\$1anonymous\$1transactions (Aurora MySQL versión 3)](#mysql_assign_gtids_to_anonymous_transactions)
+ [mysql.rds\$1gtid\$1purged (Aurora MySQL versión 3)](#mysql_rds_gtid_purged)
+ [mysql.rds\$1skip\$1transaction\$1with\$1gtid(Aurora MySQL versión 2 y 3)](#mysql_rds_skip_transaction_with_gtid)
+ [mysql.rds\$1start\$1replication\$1until\$1gtid(Aurora MySQL versión 3)](#mysql_rds_start_replication_until_gtid)

## mysql.rds\$1assign\$1gtids\$1to\$1anonymous\$1transactions (Aurora MySQL versión 3)
<a name="mysql_assign_gtids_to_anonymous_transactions"></a>

Configura la opción `ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS` de la instrucción `CHANGE REPLICATION SOURCE TO`. Hace que el canal de replicación asigne un GTID a las transacciones replicadas que no tienen uno. De esta forma, puede realizar la replicación de registros binarios desde un origen que no utiliza la replicación basada en GTID en una réplica que sí. Para obtener más información, consulte la [instrucción CHANGE REPLICATION SOURCE TO](https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html) y [Replicación desde un origen sin GTID a una réplica con GTID](https://dev.mysql.com/doc/refman/8.0/en/replication-gtids-assign-anon.html) en el *Manual de referencia de MySQL*.

### Sintaxis
<a name="mysql_assign_gtids_to_anonymous_transactions-syntax"></a>

```
CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);
```

### Parameters
<a name="mysql_assign_gtids_to_anonymous_transactions-parameters"></a>

 *gtid\$1option*  
Valor de cadena. Los valores permitidos son `OFF`, `LOCAL` o un UUID especificado.

### Notas de uso
<a name="mysql_assign_gtids_to_anonymous_transactions-usage-notes"></a>

Este procedimiento tiene el mismo efecto que la emisión de la instrucción `CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = gtid_option` en la comunidad MySQL.

 El GTID debe dirigirse a `ON` para *gtid\$1option* que se configurará en `LOCAL` o un UUID específico. 

El valor predeterminado es `OFF`, lo que significa que la característica no se utiliza.

`LOCAL` asigna un GTID que incluye el UUID de la réplica (la configuración `server_uuid`).

Al pasar un parámetro que es UUID se asigna un GTID que incluye el UUID especificado, como la configuración `server_uuid` para el servidor de origen de replicación.

### Ejemplos
<a name="mysql_assign_gtids_to_anonymous_transactions-examples"></a>

Para desactivar esta característica:

```
mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('OFF');
+-------------------------------------------------------------+
| Message  |
+-------------------------------------------------------------+
| ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: OFF |
+-------------------------------------------------------------+
1 row in set (0.07 sec)
```

Para utilizar el UUID de la réplica:

```
mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('LOCAL');
+---------------------------------------------------------------+
| Message  |
+---------------------------------------------------------------+
| ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: LOCAL |
+---------------------------------------------------------------+
1 row in set (0.07 sec)
```

Para utilizar un UUID especificado:

```
mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('317a4760-f3dd-3b74-8e45-0615ed29de0e');
+----------------------------------------------------------------------------------------------+
| Message |
+----------------------------------------------------------------------------------------------+
| ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: 317a4760-f3dd-3b74-8e45-0615ed29de0e |
+----------------------------------------------------------------------------------------------+
1 row in set (0.07 sec)
```

## mysql.rds\$1gtid\$1purged (Aurora MySQL versión 3)
<a name="mysql_rds_gtid_purged"></a>



Establece el valor global de la variable de sistema `gtid_purged` a un conjunto de identificadores de transacciones globales (GTID) determinado. La variable de sistema `gtid_purged` es un conjunto de GTID que consta de los GTID de todas las transacciones que se han confirmado en el servidor, pero que no existen en ningún archivo de registro binario del servidor.

Hay dos maneras de establecer el valor de `gtid_purged` para que sea compatible con MySQL 8.0:
+ Reemplace el valor de `gtid_purged` con el conjunto de GTID especificado.
+ Anexe el conjunto de GTID especificado al conjunto de GTID que ya contiene `gtid_purged`.

### Sintaxis
<a name="mysql_rds_gtid_purged-syntax"></a>

Para reemplazar el valor de `gtid_purged` con el conjunto de GTID especificado:

```
CALL mysql.rds_gtid_purged (gtid_set);
```

Para anexar el valor de `gtid_purged` al conjunto de GTID especificado:

```
CALL mysql.rds_gtid_purged (+gtid_set);
```

### Parameters
<a name="mysql_rds_gtid_purged-parameters"></a>

*gtid\$1set*  
El valor de *gtid\$1set* debe ser un superconjunto del valor actual de `gtid_purged`, y no puede cruzarse con `gtid_subtract(gtid_executed,gtid_purged)`. Es decir, el nuevo conjunto de GTID debe incluir todos los GTID que ya estuvieron en `gtid_purged`, y no puede incluir ningún GTID en `gtid_executed` que aún no se haya purgado. El parámetro *gtid\$1set* tampoco puede incluir ningún GTID que esté en el conjunto `gtid_owned` global, los GTID de las transacciones que se están procesando actualmente en el servidor.

### Notas de uso
<a name="mysql_rds_gtid_purged-usage-notes"></a>

El usuario maestro debe ejecutar el procedimiento `mysql.rds_gtid_purged`.

Este procedimiento es compatible con la versión 3.04 y versiones posteriores de Aurora MySQL.

### Ejemplos
<a name="mysql_rds_gtid_purged-examples"></a>

En el siguiente ejemplo, se asigna el GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23` a la variable global `gtid_purged`.

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

## mysql.rds\$1skip\$1transaction\$1with\$1gtid(Aurora MySQL versión 2 y 3)
<a name="mysql_rds_skip_transaction_with_gtid"></a>

Omite la replicación de una transacción con el identificador de transacción global (GTID) especificado en una instancia principal de Aurora.

Puede utilizar este procedimiento para la recuperación ante desastres cuando se sabe que una transacción de GTID específica causa un problema. Utilice este procedimiento almacenado para omitir la transacción problemática. Entre los ejemplos de transacciones problemáticas se incluyen transacciones que inhabilitan la replicación, eliminan datos importantes o provocan que la instancia de base de datos no esté disponible.

### Sintaxis
<a name="mysql_rds_skip_transaction_with_gtid-syntax"></a>

 

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

### Parameters
<a name="mysql_rds_skip_transaction_with_gtid-parameters"></a>

 *gtid\$1to\$1skip*   
El GTID de la transacción de replicación que se debe omitir.

### Notas de uso
<a name="mysql_rds_skip_transaction_with_gtid-usage-notes"></a>

El usuario maestro debe ejecutar el procedimiento `mysql.rds_skip_transaction_with_gtid`.

Este procedimiento se admite para Aurora MySQL versión 2 y 3.

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

En el ejemplo siguiente se omite la replicación de la transacción con el 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(Aurora MySQL versión 3)
<a name="mysql_rds_start_replication_until_gtid"></a>

Inicia la replicación desde un clúster de base de datos de Aurora MySQL y detiene la replicación inmediatamente después del identificador de transacción global (GTID) especificado.

### Sintaxis
<a name="mysql_rds_start_replication_until_gtid-syntax"></a>

 

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

### Parameters
<a name="mysql_rds_start_replication_until_gtid-parameters"></a>

 *gtid*   
El GTID después del cual debe detenerse la replicación.

### Notas de uso
<a name="mysql_rds_start_replication_until_gtid-usage-notes"></a>

El usuario maestro debe ejecutar el procedimiento `mysql.rds_start_replication_until_gtid`.

Este procedimiento es compatible con la versión 3.04 y versiones posteriores de Aurora MySQL.

El procedimiento almacenado `mysql.rds_start_replication_until_gtid` no es compatible con la replicación administrada, que incluye lo siguiente:
+ [Reproducción de clústeres de base de datos de Amazon Aurora MySQL entre Regiones de AWS](AuroraMySQL.Replication.CrossRegion.md)
+ [Migración de datos desde una instancia de base de datos de RDS para MySQL a un clúster de base de datos de Amazon Aurora MySQL con una réplica de lectura de Aurora](AuroraMySQL.Migrating.RDSMySQL.Replica.md)

Cuando el parámetro `gtid` especifica una transacción que ya ha ejecutado la réplica, la replicación se detiene de inmediato.

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

En el ejemplo siguiente se inicia la replicación y se replican los cambios hasta que alcanza el GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23`.

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