

# Referencia de procedimientos almacenados de RDS para MySQL
<a name="Appendix.MySQL.SQLRef"></a>

En estos temas, se describen los procedimientos almacenados del sistema que están disponibles para las instancias de Amazon RDS que ejecutan el motor de base de datos de MySQL. El usuario maestro debe ejecutar estos procedimientos.

**Topics**
+ [

# Recopilación y mantenimiento del historial de estado global
](mysql-stored-proc-gsh.md)
+ [

# Configuración, inicio y detención de la replicación del registro binario (binlog)
](mysql-stored-proc-replicating.md)
+ [

# Finalización de una sesión o una consulta
](mysql-stored-proc-ending.md)
+ [

# Administración de clústeres activo-activo
](mysql-stored-proc-active-active-clusters.md)
+ [

# Administración de la replicación de varios orígenes
](mysql-stored-proc-multi-source-replication.md)
+ [

# Replicación de transacciones mediante GTID
](mysql-stored-proc-gtid.md)
+ [

# Rotación de los registros de consultas
](mysql-stored-proc-logging.md)
+ [

# Establecimiento y muestra de la configuración del registro binario
](mysql-stored-proc-configuring.md)
+ [

# Calentamiento de caché de InnoDB
](mysql-stored-proc-warming.md)

# Recopilación y mantenimiento del historial de estado global
<a name="mysql-stored-proc-gsh"></a>

Amazon RDS proporciona un conjunto de procedimientos que crean instantáneas de los valores de las variables de estado a lo largo del tiempo y los escriben en una tabla, junto con cualquier cambio desde la última instantánea. Esta infraestructura se denomina Historial de estado global. Para obtener más información, consulte [Administración de Historial de estado global de RDS para MySQL](Appendix.MySQL.CommonDBATasks.GoSH.md) (Administrar el historial de estado global).

Los siguientes procedimientos almacenados administran la forma en que se recopila y mantiene el historial de estado global.

**Topics**
+ [

## mysql.rds\$1collect\$1global\$1status\$1history
](#mysql_rds_collect_global_status_history)
+ [

## mysql.rds\$1disable\$1gsh\$1collector
](#mysql_rds_disable_gsh_collector)
+ [

## mysql.rds\$1disable\$1gsh\$1rotation
](#mysql_rds_disable_gsh_rotation)
+ [

## mysql.rds\$1enable\$1gsh\$1collector
](#mysql_rds_enable_gsh_collector)
+ [

## mysql.rds\$1enable\$1gsh\$1rotation
](#mysql_rds_enable_gsh_rotation)
+ [

## mysql.rds\$1rotate\$1global\$1status\$1history
](#mysql_rds_rotate_global_status_history)
+ [

## mysql.rds\$1set\$1gsh\$1collector
](#mysql_rds_set_gsh_collector)
+ [

## mysql.rds\$1set\$1gsh\$1rotation
](#mysql_rds_set_gsh_rotation)

## mysql.rds\$1collect\$1global\$1status\$1history
<a name="mysql_rds_collect_global_status_history"></a>

Toma una instantánea bajo demanda para el historial de estado global.

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

 

```
CALL mysql.rds_collect_global_status_history;
```

## mysql.rds\$1disable\$1gsh\$1collector
<a name="mysql_rds_disable_gsh_collector"></a>

Desactiva las instantáneas tomadas por el historial de estado global.

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

 

```
CALL mysql.rds_disable_gsh_collector;
```

## mysql.rds\$1disable\$1gsh\$1rotation
<a name="mysql_rds_disable_gsh_rotation"></a>

Desactiva la rotación de la tabla `mysql.global_status_history`.

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

 

```
CALL mysql.rds_disable_gsh_rotation;
```

## mysql.rds\$1enable\$1gsh\$1collector
<a name="mysql_rds_enable_gsh_collector"></a>

Activa el historial de estado global para tomar instantáneas predeterminadas a los intervalos especificados por `rds_set_gsh_collector`.

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

 

```
CALL mysql.rds_enable_gsh_collector;
```

## mysql.rds\$1enable\$1gsh\$1rotation
<a name="mysql_rds_enable_gsh_rotation"></a>

Activa la rotación del contenido de la tabla `mysql.global_status_history` a `mysql.global_status_history_old` a los intervalos especificados por `rds_set_gsh_rotation`.

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

 

```
CALL mysql.rds_enable_gsh_rotation;
```

## mysql.rds\$1rotate\$1global\$1status\$1history
<a name="mysql_rds_rotate_global_status_history"></a>

Rota el contenido de la tabla `mysql.global_status_history` a `mysql.global_status_history_old` a petición.

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

 

```
CALL mysql.rds_rotate_global_status_history;
```

## mysql.rds\$1set\$1gsh\$1collector
<a name="mysql_rds_set_gsh_collector"></a>

Especifica el intervalo, en minutos, entre las instantáneas tomadas por el historial de estado global.

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

 

```
CALL mysql.rds_set_gsh_collector(intervalPeriod);
```

### Parámetros
<a name="mysql_rds_set_gsh_collector-parameters"></a>

 *intervalPeriod*   
El intervalo, en minutos, entre snapshots. El valor predeterminado es `5`.

## mysql.rds\$1set\$1gsh\$1rotation
<a name="mysql_rds_set_gsh_rotation"></a>

Especifica el intervalo, en días, entre rotaciones de la tabla `mysql.global_status_history`.

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

 

```
CALL mysql.rds_set_gsh_rotation(intervalPeriod);
```

### Parámetros
<a name="mysql_rds_set_gsh_rotation-parameters"></a>

 *intervalPeriod*   
El intervalo, en días, entre rotaciones de la tabla. El valor predeterminado es `7`.

# Configuración, inicio y detención de la replicación del registro binario (binlog)
<a name="mysql-stored-proc-replicating"></a>

Los siguientes procedimientos almacenados controlan la forma en la que se replican las transacciones desde una base de datos externa en RDS para MySQL o desde RDS para MySQL a una base de datos externa.

Cuando utilice estos procedimientos almacenados para administrar la replicación con un usuario de replicación configurado con `caching_sha2_password`, debe configurar TLS especificando `SOURCE_SSL=1`. `caching_sha2_password` es el complemento de autenticación predeterminado de RDS para MySQL 8.4. Para obtener más información, consulte [Cifrado con SSL/TLS](mysql-ssl-connections.md).

Para obtener más información acerca de la configuración, el uso y la administración de réplicas de lectura, consulte [Uso de réplicas de lectura de MySQL](USER_MySQL.Replication.ReadReplicas.md). 

**Topics**
+ [

## mysql.rds\$1next\$1master\$1log (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)
](#mysql_rds_next_master_log)
+ [

## mysql.rds\$1next\$1source\$1log (RDS para las versiones principales de MySQL 8.4 y superiores)
](#mysql_rds_next_source_log)
+ [

## mysql.rds\$1reset\$1external\$1master (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)
](#mysql_rds_reset_external_master)
+ [

## mysql.rds\$1reset\$1external\$1source (RDS para las versiones principales de MySQL 8.4 y superiores)
](#mysql_rds_reset_external_source)
+ [

## mysql.rds\$1set\$1external\$1master (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)
](#mysql_rds_set_external_master)
+ [

## mysql.rds\$1set\$1external\$1source (RDS para las versiones principales de MySQL 8.4 y superiores)
](#mysql_rds_set_external_source)
+ [

## mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position (RDS para las versiones principales de MySQL 8.0 e inferiores)
](#mysql_rds_set_external_master_with_auto_position)
+ [

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (RDS para las versiones principales de MySQL 8.4 y superiores)
](#mysql_rds_set_external_source_with_auto_position)
+ [

## mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)
](#mysql_rds_set_external_master_with_delay)
+ [

## mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS para las versiones principales de MySQL 8.4 y superiores)
](#mysql_rds_set_external_source_with_delay)
+ [

## mysql.rds\$1set\$1external\$1source\$1gtid\$1purged
](#mysql_rds_set_external_source_gtid_purged)
+ [

## mysql.rds\$1set\$1master\$1auto\$1position (RDS para las versiones principales de MySQL 8.0 e inferiores)
](#mysql_rds_set_master_auto_position)
+ [

## mysql.rds\$1set\$1source\$1auto\$1position (RDS para las versiones principales de MySQL 8.4 y superiores)
](#mysql_rds_set_source_auto_position)
+ [

## mysql.rds\$1set\$1source\$1delay
](#mysql_rds_set_source_delay)
+ [

## mysql.rds\$1skip\$1repl\$1error
](#mysql_rds_skip_repl_error)
+ [

## mysql.rds\$1start\$1replication
](#mysql_rds_start_replication)
+ [

## mysql.rds\$1start\$1replication\$1until
](#mysql_rds_start_replication_until)
+ [

## mysql.rds\$1stop\$1replication
](#mysql_rds_stop_replication)

## mysql.rds\$1next\$1master\$1log (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)
<a name="mysql_rds_next_master_log"></a>

Cambia la posición del registro de instancia de base de datos de origen al inicio del siguiente registro binario en la instancia de base de datos de origen. Use este procedimiento únicamente si aparece el error de E/S de replicación 1236 en una réplica de lectura.

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

 

```
CALL mysql.rds_next_master_log(
curr_master_log
);
```

### Parámetros
<a name="mysql_rds_next_master_log-parameters"></a>

 *curr\$1master\$1log*   
El índice del archivo de registro maestro actual. Por ejemplo, si el nombre del archivo actual es `mysql-bin-changelog.012345`, el índice es 12345. Para determinar el nombre del archivo de log maestro actual, ejecute el comando `SHOW REPLICA STATUS` y vea el campo `Master_Log_File`.

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

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

**aviso**  
Llame a `mysql.rds_next_master_log` solo si la replicación deja de funcionar tras una conmutación por error de una instancia de base de datos Multi-AZ que es el origen de la replicación y el campo `Last_IO_Errno` de `SHOW REPLICA STATUS` muestra el error de E/S 1236.  
La llamada a `mysql.rds_next_master_log` puede provocar una pérdida de datos en la réplica de lectura si las transacciones de la instancia de origen no se escribieron en el registro binario en el disco antes del evento de conmutación por error. Puede reducir el riesgo de que esto ocurra configurando los parámetros de la instancia de origen `sync_binlog` y `innodb_support_xa` en `1`, aunque esto podría reducir el rendimiento. Para obtener más información, consulte [Solución de problemas de réplicas de lectura de MySQL](USER_ReadRepl.Troubleshooting.md).

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

Supongamos que la replicación falla en una réplica de lectura de RDS para MySQL . La ejecución de `SHOW REPLICA STATUS\G` en la réplica de lectura devuelve el siguiente resultado:

```
*************************** 1. row ***************************
             Replica_IO_State:
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: MasterUser
                  Source_Port: 3306
                Connect_Retry: 10
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: relaylog.012340
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 30223232
              Relay_Log_Space: 5248928866
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File:
           Source_SSL_CA_Path:
              Source_SSL_Cert:
            Source_SSL_Cipher:
               Source_SSL_Key:
        Seconds_Behind_Master: NULL
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Source_Server_Id: 67285976
```

El campo `Last_IO_Errno` muestra que la instancia ha recibido el error de E/S 1236. El campo `Master_Log_File` muestra que el nombre de archivo es `mysql-bin-changelog.012345`, lo que significa que el índice del archivo de registro es `12345`. Para resolver el error, puede llamar a `mysql.rds_next_master_log` con el siguiente parámetro:

```
CALL mysql.rds_next_master_log(12345);
```

## mysql.rds\$1next\$1source\$1log (RDS para las versiones principales de MySQL 8.4 y superiores)
<a name="mysql_rds_next_source_log"></a>

Cambia la posición del registro de instancia de base de datos de origen al inicio del siguiente registro binario en la instancia de base de datos de origen. Use este procedimiento únicamente si aparece el error de E/S de replicación 1236 en una réplica de lectura.

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

 

```
CALL mysql.rds_next_source_log(
curr_source_log
);
```

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

 *curr\$1source\$1log*   
El índice del archivo de registro de origen actual. Por ejemplo, si el nombre del archivo actual es `mysql-bin-changelog.012345`, el índice es 12345. Para determinar el nombre del archivo de registro de origen actual, ejecute el comando `SHOW REPLICA STATUS` y vea el campo `Source_Log_File`.

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

El usuario administrativo debe ejecutar el procedimiento `mysql.rds_next_source_log`. 

**aviso**  
Llame a `mysql.rds_next_source_log` solo si la replicación deja de funcionar tras una conmutación por error de una instancia de base de datos Multi-AZ que es el origen de la replicación y el campo `Last_IO_Errno` de `SHOW REPLICA STATUS` muestra el error de E/S 1236.  
La llamada a `mysql.rds_next_source_log` puede provocar una pérdida de datos en la réplica de lectura si las transacciones de la instancia de origen no se escribieron en el registro binario en el disco antes del evento de conmutación por error. Puede reducir el riesgo de que esto ocurra configurando los parámetros de la instancia de origen `sync_binlog` y `innodb_support_xa` en `1`, aunque esto podría reducir el rendimiento. Para obtener más información, consulte [Solución de problemas de réplicas de lectura de MySQL](USER_ReadRepl.Troubleshooting.md).

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

Supongamos que la replicación falla en una réplica de lectura de RDS para MySQL . La ejecución de `SHOW REPLICA STATUS\G` en la réplica de lectura devuelve el siguiente resultado:

```
*************************** 1. row ***************************
             Replica_IO_State:
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: MasterUser
                  Source_Port: 3306
                Connect_Retry: 10
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: relaylog.012340
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 30223232
              Relay_Log_Space: 5248928866
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File:
           Source_SSL_CA_Path:
              Source_SSL_Cert:
            Source_SSL_Cipher:
               Source_SSL_Key:
        Seconds_Behind_Source: NULL
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from source when reading data from binary log: 'Client requested source to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Source_Server_Id: 67285976
```

El campo `Last_IO_Errno` muestra que la instancia ha recibido el error de E/S 1236. El campo `Source_Log_File` muestra que el nombre de archivo es `mysql-bin-changelog.012345`, lo que significa que el índice del archivo de registro es `12345`. Para resolver el error, puede llamar a `mysql.rds_next_source_log` con el siguiente parámetro:

```
CALL mysql.rds_next_source_log(12345);
```

## mysql.rds\$1reset\$1external\$1master (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)
<a name="mysql_rds_reset_external_master"></a>

Vuelve a configurar una instancia de base de datos de RDS para MySQL para que deje de ser una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_reset_external_master;
```

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_reset_external_master`. Este procedimiento se debe ejecutar en la instancia de base de datos de MySQL que se va a eliminar como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

**nota**  
Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

Para obtener más información acerca del uso de la replicación para importar los datos desde una instancia de MySQL que se ejecuta fuera de Amazon RDS, consulte [Configuración de la replicación de posición de archivo de registro binario con una instancia de origen externa](MySQL.Procedural.Importing.External.Repl.md).

## mysql.rds\$1reset\$1external\$1source (RDS para las versiones principales de MySQL 8.4 y superiores)
<a name="mysql_rds_reset_external_source"></a>

Vuelve a configurar una instancia de base de datos de RDS para MySQL para que deje de ser una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_reset_external_source;
```

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

El usuario administrativo debe ejecutar el procedimiento `mysql.rds_reset_external_source`. Este procedimiento se debe ejecutar en la instancia de base de datos de MySQL que se va a eliminar como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

**nota**  
Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS.   
Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md). Para obtener más información acerca del uso de la replicación para importar los datos desde una instancia de MySQL que se ejecuta fuera de Amazon RDS, consulte [Configuración de la replicación de posición de archivo de registro binario con una instancia de origen externa](MySQL.Procedural.Importing.External.Repl.md).

## mysql.rds\$1set\$1external\$1master (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)
<a name="mysql_rds_set_external_master"></a>

Configura una instancia de base de datos de RDS para MySQL para que sea una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

**nota**  
Puede utilizar el procedimiento almacenado [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)](#mysql_rds_set_external_master_with_delay) para configurar una instancia de base de datos de origen externo y replicación retardada.

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

 

```
CALL mysql.rds_set_external_master (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
);
```

### Parámetros
<a name="mysql_rds_set_external_master-parameters"></a>

 *host\$1name*   
El nombre de host o la dirección IP de la instancia de MySQL que se ejecuta fuera de Amazon RDS para convertirse en instancia de base de datos de origen.

 *host\$1port*   
El puerto usado por la instancia de MySQL que se ejecuta fuera de Amazon RDS que se configurará como instancia de base de datos de origen. Si la configuración de la red incluye la replicación de puertos SSH (Secure Shell) que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El ID de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de MySQL que se ejecuta fuera de Amazon RDS. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia externa.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *mysql\$1binary\$1log\$1file\$1name*   
El nombre del registro binario de la instancia de base de datos de origen que contiene la información de replicación.

 *mysql\$1binary\$1log\$1file\$1location*   
La ubicación del registro binario `mysql_binary_log_file_name` en la que la replicación empieza a leer la información de la replicación.  
Para determinar el nombre y la ubicación del archivo binlog, puede ejecutar `SHOW MASTER STATUS` en la instancia de base de datos de origen.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `MASTER_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_set_external_master`. Este procedimiento se debe ejecutar en la instancia de base de datos de MySQL que se va a configurar como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. 

Antes de ejecutar `mysql.rds_set_external_master`, debe configurar la instancia de MySQL que se ejecuta fuera de Amazon RDS como instancia de base de datos de origen. Para conectarse a la instancia de MySQL que se ejecuta fuera de Amazon RDS, debe especificar los valores de `replication_user_name` y `replication_user_password` que indican un usuario de replicación que tiene los permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia externa de MySQL. 

**Para configurar una instancia externa de MySQL como instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia externa de MySQL y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.

   **MySQL 5.7**

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
   ```

   **MySQL 8.0**

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password BY 'password';
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

1. En la instancia externa de MySQL, conceda a `REPLICATION CLIENT` y a `REPLICATION SLAVE` privilegios para el usuario de replicación. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario “repl\$1user” de su dominio.

   **MySQL 5.7**

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
   ```

   **MySQL 8.0**

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
   ```

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL.

**nota**  
Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

Después de llamar a `mysql.rds_set_external_master` para configurar una instancia de base de datos de Amazon RDS como réplica de lectura, puede llamar a [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) en la réplica de lectura para iniciar el proceso de replicación. Puede llamar a [mysql.rds\$1reset\$1external\$1master (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)](#mysql_rds_reset_external_master) para eliminar la configuración de la réplica de lectura.

Cuando se llama a `mysql.rds_set_external_master`, Amazon RDS registra la hora, el usuario y una acción `set master` en las tablas `mysql.rds_history` y `mysql.rds_replication_status`.

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

Cuando se ejecuta en una instancia de base de datos de MySQL, el siguiente ejemplo configura la instancia de base de datos como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

```
call mysql.rds_set_external_master(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.0777',
  120,
  1);
```

## mysql.rds\$1set\$1external\$1source (RDS para las versiones principales de MySQL 8.4 y superiores)
<a name="mysql_rds_set_external_source"></a>

Configura una instancia de base de datos de RDS para MySQL para que sea una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_set_external_source (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
);
```

### Parámetros
<a name="mysql_rds_set_external_source-parameters"></a>

 *host\$1name*   
El nombre de host o la dirección IP de la instancia de MySQL que se ejecuta fuera de Amazon RDS para convertirse en instancia de base de datos de origen.

 *host\$1port*   
El puerto usado por la instancia de MySQL que se ejecuta fuera de Amazon RDS que se configurará como instancia de base de datos de origen. Si la configuración de la red incluye la replicación de puertos SSH (Secure Shell) que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El ID de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de MySQL que se ejecuta fuera de Amazon RDS. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia externa.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *mysql\$1binary\$1log\$1file\$1name*   
El nombre del registro binario de la instancia de base de datos de origen que contiene la información de replicación.

 *mysql\$1binary\$1log\$1file\$1location*   
La ubicación del registro binario `mysql_binary_log_file_name` en la que la replicación empieza a leer la información de la replicación.  
Para determinar el nombre y la ubicación del archivo binlog, puede ejecutar `SHOW MASTER STATUS` en la instancia de base de datos de origen.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `SOURCE_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

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

El usuario administrativo debe ejecutar el procedimiento `mysql.rds_set_external_source`. Este procedimiento se debe ejecutar en la instancia de base de datos de RDS para MySQL que se va a configurar como réplica de lectura de una instancia de MySQL que se ejecute fuera de Amazon RDS. 

 Antes de ejecutar `mysql.rds_set_external_source`, debe configurar la instancia de MySQL que se ejecuta fuera de Amazon RDS como instancia de base de datos de origen. Para conectarse a la instancia de MySQL que se ejecuta fuera de Amazon RDS, debe especificar los valores de `replication_user_name` y `replication_user_password` que indican un usuario de replicación que tiene los permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia externa de MySQL.

**Para configurar una instancia externa de MySQL como instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia externa de MySQL y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
   ```
**nota**  
Especifique una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

1. En la instancia externa de MySQL, conceda a `REPLICATION CLIENT` y a `REPLICATION SLAVE` privilegios para el usuario de replicación. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario “repl\$1user” de su dominio.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
   ```

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL. Asimismo, importe el certificado de la entidad de certificación, el certificado del cliente y la clave de cliente en la instancia de base de datos o clúster de base de datos mediante el procedimiento [mysql.rds\$1import\$1binlog\$1ssl\$1material](url-rds-user;mysql_rds_import_binlog_ssl_material.html).

**nota**  
Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

Después de llamar a `mysql.rds_set_external_source` para configurar una instancia de base de datos de RDS para MySQL como réplica de lectura, puede llamar a [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) en la réplica de lectura para iniciar el proceso de replicación. Puede llamar a [mysql.rds\$1reset\$1external\$1source (RDS para las versiones principales de MySQL 8.4 y superiores)](#mysql_rds_reset_external_source) para eliminar la configuración de la réplica de lectura.

Cuando se llama a `mysql.rds_set_external_source`, Amazon RDS registra la hora, el usuario y una acción `set master` en las tablas `mysql.rds_history` y `mysql.rds_replication_status`.

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

Cuando se ejecuta en una instancia de base de datos de RDS para MySQL, el siguiente ejemplo configura la instancia de base de datos como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS.

```
call mysql.rds_set_external_source(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.0777',
  120,
  1);
```

## mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position (RDS para las versiones principales de MySQL 8.0 e inferiores)
<a name="mysql_rds_set_external_master_with_auto_position"></a>

Configura una instancia de base de datos de RDS for MySQL para que sea una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. Este procedimiento también configura la replicación retrasada y la replicación basada en identificadores de transacciones globales (GTID).

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_set_external_master_with_auto_position (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , ssl_encryption
  , delay
);
```

### Parámetros
<a name="mysql_rds_set_external_master_with_auto_position-parameters"></a>

 *host\$1name*   
El nombre de host o la dirección IP de la instancia de MySQL que se ejecuta fuera de Amazon RDS para convertirse en instancia de base de datos de origen.

 *host\$1port*   
El puerto usado por la instancia de MySQL que se ejecuta fuera de Amazon RDS que se configurará como instancia de base de datos de origen. Si la configuración de la red incluye la replicación de puertos SSH (Secure Shell) que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El ID de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de MySQL que se ejecuta fuera de Amazon RDS. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia externa.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `MASTER_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

 *delay*   
El número mínimo de segundos para retrasar la replicación desde la instancia de base de datos de origen.  
El límite de este parámetro es de un día (86400 segundos).

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_set_external_master_with_auto_position`. Este procedimiento se debe ejecutar en la instancia de base de datos de MySQL que se va a configurar como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. 

Este procedimiento es compatible con todas las versiones de RDS para MySQL 5.7 y con las versiones de RDS para MySQL 8.0.26 y posteriores.

Antes de ejecutar `mysql.rds_set_external_master_with_auto_position`, debe configurar la instancia de MySQL que se ejecuta fuera de Amazon RDS como instancia de base de datos de origen. Para conectarse a la instancia de MySQL que se ejecuta fuera de Amazon RDS, debe especificar valores para `replication_user_name` y `replication_user_password`. Estos valores deben indicar a un usuario de replicación que tiene permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia externa de MySQL. 

**Para configurar una instancia externa de MySQL como instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia externa de MySQL y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. En la instancia externa de MySQL, conceda a `REPLICATION CLIENT` y a `REPLICATION SLAVE` privilegios para el usuario de replicación. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario `'repl_user'` de su dominio.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com'
   IDENTIFIED BY 'SomePassW0rd'
   ```

Para obtener más información, consulte [Configuración de la replicación de posición de archivo de registro binario con una instancia de origen externa](MySQL.Procedural.Importing.External.Repl.md).

**nota**  
Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

Antes de llamar a `mysql.rds_set_external_master_with_auto_position`, asegúrese de llamar a [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](#mysql_rds_set_external_source_gtid_purged) para configurar la variable de sistema `gtid_purged` con un rango de GTID especificado desde un origen externo.

Después de llamar a `mysql.rds_set_external_master_with_auto_position` para configurar una instancia de base de datos de Amazon RDS como réplica de lectura, puede llamar a [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) en la réplica de lectura para iniciar el proceso de replicación. Puede llamar a [mysql.rds\$1reset\$1external\$1master (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)](#mysql_rds_reset_external_master) para eliminar la configuración de la réplica de lectura.

Cuando se llama a `mysql.rds_set_external_master_with_auto_position`, Amazon RDS registra la hora, el usuario y una acción `set master` en las tablas `mysql.rds_history` y `mysql.rds_replication_status`.

Para la recuperación de desastres, puede utilizar este procedimiento con el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until ](#mysql_rds_start_replication_until) o [mysql.rds\$1start\$1replication\$1until\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid). Puede ejecutar el procedimiento `mysql.rds_set_external_master_with_auto_position` para restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Después de que el procedimiento `mysql.rds_start_replication_until_gtid` detenga la replicación, puede promocionar la réplica de lectura para que sea la nueva instancia de base de datos primaria utilizando las instrucciones de [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md). 

Para utiliza el procedimiento `mysql.rds_rds_start_replication_until_gtid`, debe habilitarse la replicación basada en GTID. Para omitir una transacción específica basada en GTID que se sabe que causa un desastre, puede usar el procedimiento almacenado [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid). Para obtener más información sobre el uso de la replicación basada en GTID, consulte [Uso de la replicación basada en GTID](mysql-replication-gtid.md).

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

Cuando se ejecuta en una instancia de base de datos de MySQL, el siguiente ejemplo configura la instancia de base de datos como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. Establece el retraso de replicación mínimo en una hora (3600 segundos) para la instancia de base de datos de MySQL. Un cambio en la instancia de base de datos de origen de MySQL que se ejecuta de forma externa a Amazon RDS no se aplica en la réplica de lectura de la instancia de base de datos de MySQL hasta que haya transcurrido al menos una hora.

```
call mysql.rds_set_external_master_with_auto_position(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (RDS para las versiones principales de MySQL 8.4 y superiores)
<a name="mysql_rds_set_external_source_with_auto_position"></a>

Configura una instancia de base de datos de RDS for MySQL para que sea una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. Este procedimiento también configura la replicación retrasada y la replicación basada en identificadores de transacciones globales (GTID).

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_set_external_source_with_auto_position (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , ssl_encryption
  , delay
);
```

### Parámetros
<a name="mysql_rds_set_external_source_with_auto_position-parameters"></a>

 *host\$1name*   
El nombre de host o la dirección IP de la instancia de MySQL que se ejecuta fuera de Amazon RDS para convertirse en instancia de base de datos de origen.

 *host\$1port*   
El puerto usado por la instancia de MySQL que se ejecuta fuera de Amazon RDS que se configurará como instancia de base de datos de origen. Si la configuración de la red incluye la replicación de puertos SSH (Secure Shell) que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El ID de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de MySQL que se ejecuta fuera de Amazon RDS. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia externa.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `SOURCE_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

 *delay*   
El número mínimo de segundos para retrasar la replicación desde la instancia de base de datos de origen.  
El límite de este parámetro es de un día (86400 segundos).

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

El usuario administrativo debe ejecutar el procedimiento `mysql.rds_set_external_source_with_auto_position`. Este procedimiento se debe ejecutar en la instancia de base de datos de MySQL que se va a configurar como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. 

Antes de ejecutar `mysql.rds_set_external_source_with_auto_position`, debe configurar la instancia de MySQL que se ejecuta fuera de Amazon RDS como instancia de base de datos de origen. Para conectarse a la instancia de MySQL que se ejecuta fuera de Amazon RDS, debe especificar valores para `replication_user_name` y `replication_user_password`. Estos valores deben indicar a un usuario de replicación que tiene permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia externa de MySQL. 

**Para configurar una instancia externa de MySQL como instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia externa de MySQL y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. En la instancia externa de MySQL, conceda a `REPLICATION CLIENT` y a `REPLICATION SLAVE` privilegios para el usuario de replicación. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario `'repl_user'` de su dominio.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com'
   IDENTIFIED BY 'SomePassW0rd'
   ```

Para obtener más información, consulte [Configuración de la replicación de posición de archivo de registro binario con una instancia de origen externa](MySQL.Procedural.Importing.External.Repl.md).

**nota**  
Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

Antes de llamar a `mysql.rds_set_external_source_with_auto_position`, asegúrese de llamar a [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](#mysql_rds_set_external_source_gtid_purged) para configurar la variable de sistema `gtid_purged` con un rango de GTID especificado desde un origen externo.

Después de llamar a `mysql.rds_set_external_source_with_auto_position` para configurar una instancia de base de datos de Amazon RDS como réplica de lectura, puede llamar a [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) en la réplica de lectura para iniciar el proceso de replicación. Puede llamar a [mysql.rds\$1reset\$1external\$1source (RDS para las versiones principales de MySQL 8.4 y superiores)](#mysql_rds_reset_external_source) para eliminar la configuración de la réplica de lectura.

Cuando se llama a `mysql.rds_set_external_source_with_auto_position`, Amazon RDS registra la hora, el usuario y una acción `set master` en las tablas `mysql.rds_history` y `mysql.rds_replication_status`.

Para la recuperación de desastres, puede utilizar este procedimiento con el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until ](#mysql_rds_start_replication_until) o [mysql.rds\$1start\$1replication\$1until\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid). Puede ejecutar el procedimiento `mysql.rds_set_external_source_with_auto_position` para restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Después de que el procedimiento `mysql.rds_start_replication_until_gtid` detenga la replicación, puede promocionar la réplica de lectura para que sea la nueva instancia de base de datos primaria utilizando las instrucciones de [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md). 

Para utiliza el procedimiento `mysql.rds_rds_start_replication_until_gtid`, debe habilitarse la replicación basada en GTID. Para omitir una transacción específica basada en GTID que se sabe que causa un desastre, puede usar el procedimiento almacenado [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid). Para obtener más información sobre el uso de la replicación basada en GTID, consulte [Uso de la replicación basada en GTID](mysql-replication-gtid.md).

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

Cuando se ejecuta en una instancia de base de datos de MySQL, el siguiente ejemplo configura la instancia de base de datos como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. Establece el retraso de replicación mínimo en una hora (3600 segundos) para la instancia de base de datos de MySQL. Un cambio en la instancia de base de datos de origen de MySQL que se ejecuta de forma externa a Amazon RDS no se aplica en la réplica de lectura de la instancia de base de datos de MySQL hasta que haya transcurrido al menos una hora.

```
call mysql.rds_set_external_source_with_auto_position(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)
<a name="mysql_rds_set_external_master_with_delay"></a>

Configura una instancia de base de datos de RDS for MySQL para que sea una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS y configura la reproducción retrasada.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_set_external_master_with_delay(
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
);
```

### Parámetros
<a name="mysql_rds_set_external_master_with_delay-parameters"></a>

 *host\$1name*   
El nombre del host o la dirección IP de la instancia de MySQL que se ejecuta fuera de Amazon RDS que se convertirá en instancia de base de datos de origen.

 *host\$1port*   
El puerto usado por la instancia de MySQL que se ejecuta fuera de Amazon RDS que se configurará como instancia de base de datos de origen. Si la configuración de la red incluye la replicación del puerto SSH que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El ID de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de MySQL que se ejecuta fuera de Amazon RDS. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia externa.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *mysql\$1binary\$1log\$1file\$1name*   
El nombre del registro binario de la instancia de base de datos de origen contiene la información de replicación.

 *mysql\$1binary\$1log\$1file\$1location*   
La ubicación del registro binario `mysql_binary_log_file_name` en la que la replicación comenzará a leer la información de la replicación.  
Para determinar el nombre y la ubicación del archivo binlog, puede ejecutar `SHOW MASTER STATUS` en la instancia de base de datos de origen.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `MASTER_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

 *delay*   
El número mínimo de segundos para retrasar la replicación desde la instancia de base de datos de origen.  
El límite de este parámetro es de un día (86400 segundos).

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

 El usuario maestro debe ejecutar el procedimiento `mysql.rds_set_external_master_with_delay`. Este procedimiento se debe ejecutar en la instancia de base de datos de MySQL que se va a configurar como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. 

 Antes de ejecutar `mysql.rds_set_external_master_with_delay`, debe configurar la instancia de MySQL que se ejecuta fuera de Amazon RDS como instancia de base de datos de origen. Para conectarse a la instancia de MySQL que se ejecuta fuera de Amazon RDS, debe especificar valores para `replication_user_name` y `replication_user_password`. Estos valores deben indicar a un usuario de replicación que tiene permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia externa de MySQL. 

**Para configurar una instancia externa de MySQL como instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia externa de MySQL y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. En la instancia externa de MySQL, conceda a `REPLICATION CLIENT` y a `REPLICATION SLAVE` privilegios para el usuario de replicación. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario `'repl_user'` de su dominio.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com'
   IDENTIFIED BY 'SomePassW0rd'
   ```

Para obtener más información, consulte [Configuración de la replicación de posición de archivo de registro binario con una instancia de origen externa](MySQL.Procedural.Importing.External.Repl.md).

**nota**  
Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

Después de llamar a `mysql.rds_set_external_master_with_delay` para configurar una instancia de base de datos de Amazon RDS como réplica de lectura, puede llamar a [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) en la réplica de lectura para iniciar el proceso de replicación. Puede llamar a [mysql.rds\$1reset\$1external\$1master (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)](#mysql_rds_reset_external_master) para eliminar la configuración de la réplica de lectura.

Cuando se llama a `mysql.rds_set_external_master_with_delay`, Amazon RDS registra la hora, el usuario y una acción `set master` en las tablas `mysql.rds_history` y `mysql.rds_replication_status`.

Para la recuperación de desastres, puede utilizar este procedimiento con el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until ](#mysql_rds_start_replication_until) o [mysql.rds\$1start\$1replication\$1until\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid). Puede ejecutar el procedimiento `mysql.rds_set_external_master_with_delay` para restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Después de que el procedimiento `mysql.rds_start_replication_until` detenga la replicación, puede promocionar la réplica de lectura para que sea la nueva instancia de base de datos primaria utilizando las instrucciones de [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md). 

Para utiliza el procedimiento `mysql.rds_rds_start_replication_until_gtid`, debe habilitarse la replicación basada en GTID. Para omitir una transacción específica basada en GTID que se sabe que causa un desastre, puede usar el procedimiento almacenado [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid). Para obtener más información sobre el uso de la replicación basada en GTID, consulte [Uso de la replicación basada en GTID](mysql-replication-gtid.md).

El procedimiento `mysql.rds_set_external_master_with_delay` está disponible en estas versiones de RDS para MySQL:
+ Versión de MySQL 8.0.26 y versiones 8.0 posteriores
+ Todas las versiones 5.7

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

Cuando se ejecuta en una instancia de base de datos de MySQL, el siguiente ejemplo configura la instancia de base de datos como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. Establece el retraso de replicación mínimo en una hora (3600 segundos) para la instancia de base de datos de MySQL. Un cambio en la instancia de base de datos de origen de MySQL que se ejecuta de forma externa a Amazon RDS no se aplica en la réplica de lectura de la instancia de base de datos de MySQL hasta que haya transcurrido al menos una hora.

```
call mysql.rds_set_external_master_with_delay(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS para las versiones principales de MySQL 8.4 y superiores)
<a name="mysql_rds_set_external_source_with_delay"></a>

Configura una instancia de base de datos de RDS for MySQL para que sea una réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS y configura la reproducción retrasada.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

```
CALL mysql.rds_set_external_source_with_delay (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
);
```

### Parámetros
<a name="mysql_rds_set_external_source_with_delay-parameters"></a>

 *host\$1name*   
El nombre del host o la dirección IP de la instancia de MySQL que se ejecuta fuera de Amazon RDS que se convertirá en instancia de base de datos de origen.

 *host\$1port*   
El puerto usado por la instancia de MySQL que se ejecuta fuera de Amazon RDS que se configurará como instancia de base de datos de origen. Si la configuración de la red incluye la replicación del puerto SSH que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El ID de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de MySQL que se ejecuta fuera de Amazon RDS. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia externa.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *mysql\$1binary\$1log\$1file\$1name*   
El nombre del registro binario de la instancia de base de datos de origen contiene la información de replicación.

 *mysql\$1binary\$1log\$1file\$1location*   
La ubicación del registro binario `mysql_binary_log_file_name` en la que la replicación comenzará a leer la información de la replicación.  
Para determinar el nombre y la ubicación del archivo binlog, puede ejecutar `SHOW MASTER STATUS` en la instancia de base de datos de origen.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `SOURCE_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

 *delay*   
El número mínimo de segundos para retrasar la replicación desde la instancia de base de datos de origen.  
El límite de este parámetro es de un día (86400 segundos).

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

El usuario administrativo debe ejecutar el procedimiento `mysql.rds_set_external_source_with_delay`. Este procedimiento se debe ejecutar en la instancia de base de datos de MySQL que se va a configurar como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. 

 Antes de ejecutar `mysql.rds_set_external_source_with_delay`, debe configurar la instancia de MySQL que se ejecuta fuera de Amazon RDS como instancia de base de datos de origen. Para conectarse a la instancia de MySQL que se ejecuta fuera de Amazon RDS, debe especificar valores para `replication_user_name` y `replication_user_password`. Estos valores deben indicar a un usuario de replicación que tiene permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia externa de MySQL. 

**Para configurar una instancia externa de MySQL como instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia externa de MySQL y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. En la instancia externa de MySQL, conceda a `REPLICATION CLIENT` y a `REPLICATION SLAVE` privilegios para el usuario de replicación. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario `'repl_user'` de su dominio.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com'
   IDENTIFIED BY 'SomePassW0rd'
   ```

Para obtener más información, consulte [Configuración de la replicación de posición de archivo de registro binario con una instancia de origen externa](MySQL.Procedural.Importing.External.Repl.md).

**nota**  
Recomendamos que utilice réplicas de lectura para administrar la replicación entre dos instancias de base de datos de Amazon RDS cuando sea posible. Cuando lo haga, recomendamos que solo utilice este y otros procedimientos almacenados relacionados de replicación. Estas prácticas permiten topologías de replicación más complejas entre instancias de base de datos de Amazon RDS. Ofrecemos estos procedimientos almacenados principalmente para habilitar la replicación con las instancias de MySQL que se ejecutan fuera de Amazon RDS. Para obtener información sobre la administración de la replicación entre instancias de base de datos de Amazon RDS, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

Después de llamar a `mysql.rds_set_external_source_with_delay` para configurar una instancia de base de datos de Amazon RDS como réplica de lectura, puede llamar a [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) en la réplica de lectura para iniciar el proceso de replicación. Puede llamar a [mysql.rds\$1reset\$1external\$1source (RDS para las versiones principales de MySQL 8.4 y superiores)](#mysql_rds_reset_external_source) para eliminar la configuración de la réplica de lectura.

Cuando se llama a `mysql.rds_set_external_source_with_delay`, Amazon RDS registra la hora, el usuario y una acción `set master` en las tablas `mysql.rds_history` y `mysql.rds_replication_status`.

Para la recuperación de desastres, puede utilizar este procedimiento con el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until ](#mysql_rds_start_replication_until) o [mysql.rds\$1start\$1replication\$1until\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid). Puede ejecutar el procedimiento `mysql.rds_set_external_source_with_delay` para restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Después de que el procedimiento `mysql.rds_start_replication_until` detenga la replicación, puede promocionar la réplica de lectura para que sea la nueva instancia de base de datos primaria utilizando las instrucciones de [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md). 

Para utiliza el procedimiento `mysql.rds_rds_start_replication_until_gtid`, debe habilitarse la replicación basada en GTID. Para omitir una transacción específica basada en GTID que se sabe que causa un desastre, puede usar el procedimiento almacenado [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid). Para obtener más información sobre el uso de la replicación basada en GTID, consulte [Uso de la replicación basada en GTID](mysql-replication-gtid.md).

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

Cuando se ejecuta en una instancia de base de datos de MySQL, el siguiente ejemplo configura la instancia de base de datos como réplica de lectura de una instancia de MySQL que se ejecuta fuera de Amazon RDS. Establece el retraso de replicación mínimo en una hora (3600 segundos) para la instancia de base de datos de MySQL. Un cambio en la instancia de base de datos de origen de MySQL que se ejecuta de forma externa a Amazon RDS no se aplica en la réplica de lectura de la instancia de base de datos de MySQL hasta que haya transcurrido al menos una hora.

```
call mysql.rds_set_external_source_with_delay(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1gtid\$1purged
<a name="mysql_rds_set_external_source_gtid_purged"></a>

Establece la variable de sistema [gtid\$1purged](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_purged) con un rango de GTID especificado de un origen externo. El valor `gtid_purged` es necesario para configurar la replicación basada en GTID y reanudar la replicación mediante el posicionamiento automático.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_set_external_source_gtid_purged(
  server_uuid
  , start_pos
  , end_pos
);
```

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

 *server\$1uuid*   
Es el identificador único universal (UUID) del servidor externo desde el que se importa el rango de GTID.

 *start\$1pos*   
La posición inicial del rango de GTID que se va a configurar.

 *end\$1pos*   
La posición inicial del rango de GTID que se va a configurar.

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

El procedimiento `mysql.rds_set_external_source_gtid_purged` solo está disponible con las versiones 8.0.37 y otras versiones 8.0 posteriores de MySQL.

Llame a `mysql.rds_set_external_source_gtid_purged` antes de llamar a [mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position (RDS para las versiones principales de MySQL 8.0 e inferiores)](#mysql_rds_set_external_master_with_auto_position), [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position (RDS para las versiones principales de MySQL 8.4 y superiores)](#mysql_rds_set_external_source_with_auto_position) o [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel](mysql-stored-proc-multi-source-replication.md#mysql_rds_set_external_source_with_auto_position_for_channel).

Antes de llamar a `mysql.rds_set_external_source_gtid_purged`, asegúrese de detener todos los canales de replicación activos de la base de datos. Para comprobar el estado de un canal, utilice la instrucción de MySQL `SHOW REPLICA STATUS`. Para detener la replicación en un canal, llame a [mysql.rds\$1stop\$1replication\$1for\$1channel](mysql-stored-proc-multi-source-replication.md#mysql_rds_stop_replication_for_channel).

El rango de GTID que especifique debe ser un superconjunto del valor existente de `GTID_PURGED`. Este procedimiento almacenado comprueba los siguientes valores antes de establecer el valor de `GTID_PURGED`:
+ El `server_uuid` es válido.
+ El valor de `start_pos` es mayor que `0` y menor que el valor de `end_pos`.
+ El valor de `end_pos` es superior o igual al valor de `start_pos`.

Si el conjunto de GTID de su servidor externo contiene varios rangos de valores, valore la posibilidad de llamar al procedimiento varias veces con valores de conjunto de GTID diferentes.

Cuando llama a `mysql.rds_set_external_source_gtid_purged`, Amazon RDS registra la hora, el usuario y una acción `set gtid_purged` en la tabla `mysql.rds_history`.

Si no establece el valor de `gtid_purged` adecuado para la copia de seguridad que utiliza en la replicación, es posible que falten transacciones o que se dupliquen durante el proceso de replicación. Siga estos pasos para corregir el valor de `gtid_purged`.

**Establecimiento del valor de gtid\$1purged en la réplica**

1. Determine el momento o el archivo de copia de seguridad específico que se utilizará como punto de partida para la replicación. Puede ser una copia de seguridad lógica (un archivo mysqldump) o una copia de seguridad física (una instantánea de Amazon RDS).

1. Determine el valor de `gtid_executed`. Este valor representa el conjunto de todos los GTID que se confirmaron en el servidor. Para recuperar este valor, en la instancia de origen, realice una de las siguientes operaciones:
   + Ejecute la instrucción de SQL `SELECT @@GLOBAL.GTID_EXECUTED;` en el momento en que se realizó la copia de seguridad.
   + Si se incluye alguna opción relacionada en la utilidad de copia de seguridad correspondiente, extraiga el valor del archivo de copia de seguridad. Para obtener más información, consulte la opción [set-gtid-purged](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html#option_mysqldump_set-gtid-purged) en la documentación de MySQL.

1. Determine el valor de `gtid_purged` que se utilizará para la llamada a `mysql.rds_set_external_source_gtid_purged`. El valor de `gtid_purged` debe incluir todos los GTID que se ejecutaron en la instancia de origen y que ya no se necesitan para la replicación. Por lo tanto, el valor de `gtid_purged` debe ser un subconjunto del valor de `gtid_executed` que ha recuperado en el paso anterior.

   Para determinar el valor de `gtid_purged`, identifique los GTID que no están incluidos en la copia de seguridad y que ya no se necesitan para la replicación. Puede hacerlo analizando los registros binarios o utilizando una herramienta como mysqlbinlog para buscar los GTID que se purgaron desde los registros binarios.

   Si dispone de una copia de seguridad uniforme que incluya todos los registros binarios hasta el punto de copia de seguridad, también puede configurar el valor de `gtid_purged` para que sea el mismo que el de `gtid_executed` en el momento de la copia de seguridad.

1. Tras determinar el valor de `gtid_purged` adecuado que sea coherente con la copia de seguridad, llame al procedimiento almacenado `mysql.rds_set_external_source_gtid_purged` en la instancia de base de datos de RDS para MySQL a fin de establecer el valor.

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

Cuando se ejecuta en una instancia de base de datos de MySQL, el siguiente ejemplo establece el rango de GTID desde un servidor MySQL externo con el UUID `12345678-abcd-1234-efgh-123456789abc`, una posición inicial `1` y una posición final `100`. El valor de GTID resultante se establece en `+12345678-abcd-1234-efgh-123456789abc:1-100`.

```
CALL mysql.rds_set_external_source_gtid_purged('12345678-abcd-1234-efgh-123456789abc', 1, 100);
```

## mysql.rds\$1set\$1master\$1auto\$1position (RDS para las versiones principales de MySQL 8.0 e inferiores)
<a name="mysql_rds_set_master_auto_position"></a>

Establece el modo de replicación en el que se debe basar ya sea en posiciones de archivos de registros binarios o en identificadores de transacciones globales (GTID).

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

 

```
CALL mysql.rds_set_master_auto_position (
auto_position_mode
);
```

### Parámetros
<a name="mysql_rds_set_master_auto_position-parameters"></a>

 *auto\$1position\$1mode*   
Un valor que indicar si debe usarse la replicación de posición de los archivos de registro o la replicación basada en GTID:  
+ `0`: utilice el método de replicación basado en la posición del archivo de registro binario. El valor predeterminado es `0`.
+ `1`: utilice el método de replicación basado en GTID.

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

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

Este procedimiento es compatible con todas las versiones de RDS para MySQL 5.7 y con las versiones de RDS para MySQL 8.0.26 y posteriores.

## mysql.rds\$1set\$1source\$1auto\$1position (RDS para las versiones principales de MySQL 8.4 y superiores)
<a name="mysql_rds_set_source_auto_position"></a>

Establece el modo de replicación en el que se debe basar, ya sea en posiciones de archivos de registros binarios o en identificadores de transacciones globales (GTID).

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

```
CALL mysql.rds_set_source_auto_position (auto_position_mode);
```

### Parámetros
<a name="mysql_rds_set_source_auto_position-parameters"></a>

*auto\$1position\$1mode*  
Un valor que indicar si debe usarse la replicación de posición de los archivos de registro o la replicación basada en GTID:  
+  `0`: utilice el método de replicación basado en la posición del archivo de registro binario. El valor predeterminado es `0`. 
+  `1`: utilice el método de replicación basado en GTID. 

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

El usuario administrativo debe ejecutar el procedimiento `mysql.rds_set_source_auto_position`. 

## mysql.rds\$1set\$1source\$1delay
<a name="mysql_rds_set_source_delay"></a>

Establece el número mínimo de segundos para retrasar la replicación desde la instancia de base de datos de origen a la réplica de lectura actual. Use este procedimiento cuando esté conectado a una réplica de lectura para retrasar la replicación desde su instancia de base de datos de origen.

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

```
CALL mysql.rds_set_source_delay(
delay
);
```

### Parámetros
<a name="mysql_rds_set_source_delay-parameters"></a>

 *delay*   
El número mínimo de segundos para retrasar la replicación desde la instancia de base de datos de origen.  
El límite de este parámetro es de un día (86400 segundos).

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

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

Para la recuperación de desastres, puede utilizar este procedimiento con el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until ](#mysql_rds_start_replication_until) o el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid). Puede ejecutar el procedimiento `mysql.rds_set_source_delay` para restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Después de que el procedimiento `mysql.rds_start_replication_until` o `mysql.rds_start_replication_until_gtid` detenga la replicación, puede promocionar la réplica de lectura para que sea la nueva instancia de base de datos primaria utilizando las instrucciones de [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md).

Para utiliza el procedimiento `mysql.rds_rds_start_replication_until_gtid`, debe habilitarse la replicación basada en GTID. Para omitir una transacción específica basada en GTID que se sabe que causa un desastre, puede usar el procedimiento almacenado [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid). Para obtener más información acerca de la replicación basada en GTID, consulte [Uso de la replicación basada en GTID](mysql-replication-gtid.md).

El procedimiento `mysql.rds_set_source_delay` está disponible en estas versiones de RDS for MySQL:
+ Todas las versiones de RDS para MySQL 8.4
+ Versión de MySQL 8.0.26 y versiones 8.0 posteriores
+ Todas las versiones 5.7

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

Para retrasar la replicación desde la instancia de base de datos de origen a la réplica de lectura actual durante al menos una hora (3600 segundos), puede llamar a `mysql.rds_set_source_delay` con el siguiente parámetro:

```
CALL mysql.rds_set_source_delay(3600);
```

## mysql.rds\$1skip\$1repl\$1error
<a name="mysql_rds_skip_repl_error"></a>

Omite y elimina un error de replicación en una réplica de lectura de base de datos de MySQL.

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

 

```
CALL mysql.rds_skip_repl_error;
```

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_skip_repl_error` en una réplica de lectura. Para obtener más información sobre este procedimiento, consulte [Llamar al procedimiento mysql.rds\$1skip\$1repl\$1error](Appendix.MySQL.CommonDBATasks.SkipError.md#Appendix.MySQL.CommonDBATasks.SkipError.procedure) (Omitir el error de replicación actual).

Para determinar si hay errores, ejecute el comando `SHOW REPLICA STATUS\G` de MySQL. Si un error de replicación no es crítico, puede ejecutar `mysql.rds_skip_repl_error` para omitir el error. Si hay varios errores, `mysql.rds_skip_repl_error` elimina el primer error y advierte de que hay otros presentes. A continuación, puede usar `SHOW REPLICA STATUS\G` para determinar la acción correcta para el siguiente error. Para obtener información acerca de los valores devueltos, consulte [la instrucción SHOW REPLICA STATUS](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html) en la documentación de MySQL.

Para obtener más información acerca de la resolución de problemas de replicación con Amazon RDS, consulte [Solución de problemas de réplicas de lectura de MySQL](USER_ReadRepl.Troubleshooting.md).

#### Error de replicación detenida
<a name="skip_repl_error.stopped-error"></a>

Al llamar al procedimiento `mysql.rds_skip_repl_error`, es posible que reciba un mensaje de error en el que se indica que la réplica tiene un error o está deshabilitada.

Este mensaje de error aparece si ejecuta el procedimiento en la instancia principal en lugar de en la réplica de lectura. Debe ejecutar este procedimiento en la réplica de lectura para que funcione.

Este mensaje de error también puede aparecer si ejecuta el procedimiento en la réplica de lectura, pero la replicación no se puede reiniciar correctamente.

Si tiene que omitir un número de errores elevado, el retardo de réplica puede aumentar por encima del periodo de retención predeterminado para los archivos de log binarios (binlog). En este caso, puede producirse un error fatal porque los archivos binlog se están limpiando antes de reproducirse de nuevo en la réplica de lectura. Esta limpieza hace que la replicación se detenga y ya no se puede llamar al comando `mysql.rds_skip_repl_error` para omitir los errores de replicación.

Puede mitigar este problema incrementando el número de horas que los archivos binlog se retienen en la instancia de base de datos de origen. Después de incrementar el tiempo de retención de los archivos binlog, puede reiniciar la replicación y llamar al comando `mysql.rds_skip_repl_error` si es necesario.

Para definir el tiempo de retención de binlog, use el procedimiento [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) y especifique un parámetro de configuración de `'binlog retention hours'` junto con el número de horas para retener los archivos binlog en el clúster de base de datos. El ejemplo siguiente define el período de retención de los archivos binlog en 48 horas.

```
CALL mysql.rds_set_configuration('binlog retention hours', 48);
```

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

Inicia la replicación desde una instancia de base de datos de RDS para MySQL.

**nota**  
Puede utilizar el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until ](#mysql_rds_start_replication_until) o [mysql.rds\$1start\$1replication\$1until\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) para iniciar la replicación desde una instancia de base de datos de RDS para MySQL y detener la replicación en la ubicación del archivo de registro binario especificado.

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

 

```
CALL mysql.rds_start_replication;
```

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

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

Para importar datos desde una instancia de MySQL fuera de Amazon RDS, llame a `mysql.rds_start_replication` en la réplica de lectura para iniciar el proceso de replicación después de llamar a [mysql.rds\$1set\$1external\$1master (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)](#mysql_rds_set_external_master) o [mysql.rds\$1set\$1external\$1source (RDS para las versiones principales de MySQL 8.4 y superiores)](#mysql_rds_set_external_source) para crear la configuración de replicación. Para obtener más información, consulte [Restauración de una copia de seguridad en una instancia de base de datos de Amazon RDS para MySQL](MySQL.Procedural.Importing.md).

Para exportar datos a una instancia de MySQL externa a Amazon RDS, llame a `mysql.rds_start_replication` y a `mysql.rds_stop_replication` en la réplica de lectura para controlar algunas acciones de replicación, como la purga de registros binarios. Para obtener más información, consulte [Exportación de datos desde una instancia de base de datos MySQL mediante replicación](MySQL.Procedural.Exporting.NonRDSRepl.md).

Puede llamar a `mysql.rds_start_replication` en la réplica de lectura para reiniciar cualquier proceso de replicación que haya detenido previamente llamando a `mysql.rds_stop_replication`. Para obtener más información, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

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

Inicia la replicación desde una instancia de base de datos de RDS para MySQL y detiene la replicación en la ubicación del archivo de registro binario especificado.

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

 

```
CALL mysql.rds_start_replication_until (
replication_log_file
  , replication_stop_point
);
```

### Parámetros
<a name="mysql_rds_start_replication_until-parameters"></a>

 *replication\$1log\$1file*   
El nombre del registro binario de la instancia de base de datos de origen que contiene la información de replicación.

 *replication\$1stop\$1point *   
La ubicación del registro binario `replication_log_file` en la que la replicación se detendrá.

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

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

El procedimiento `mysql.rds_start_replication_until` está disponible en estas versiones de RDS for MySQL:
+ Todas las versiones de RDS para MySQL 8.4
+ Versión de MySQL 8.0.26 y versiones 8.0 posteriores
+ Todas las versiones 5.7

Puede utilizar este procedimiento con la replicación retrasada para recuperación ante desastres. Si ha configurado la replicación retrasada, puede utilizar este procedimiento para restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Después de que este procedimiento detenga la replicación, puede promocionar la réplica de lectura para que sea la nueva instancia de base de datos primaria utilizando las instrucciones de [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md).

Puede configurar la replicación retrasada utilizando los procedimientos almacenados siguientes:
+ [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)](#mysql_rds_set_external_master_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS para las versiones principales de MySQL 8.4 y superiores)](#mysql_rds_set_external_source_with_delay)
+ [mysql.rds\$1set\$1source\$1delay](#mysql_rds_set_source_delay)

El nombre de archivo especificado para el parámetro `replication_log_file` debe coincidir con el nombre del archivo binlog de instancia de base de datos de origen.

Cuando el parámetro `replication_stop_point` especifica una ubicación de parada correspondiente al pasado, la replicación se detiene de inmediato.

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

En el ejemplo siguiente se inicia la replicación y se replican los cambios hasta que alcanza la ubicación `120` del archivo registro binario `mysql-bin-changelog.000777`.

```
call mysql.rds_start_replication_until(
  'mysql-bin-changelog.000777',
  120);
```

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

Detiene la replicación desde una instancia de base de datos de MySQL.

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

 

```
CALL mysql.rds_stop_replication;
```

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

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

Si desea configurar la replicación para importar datos desde una instancia de MySQL que se ejecuta fuera de Amazon RDS, llame a `mysql.rds_stop_replication` en la réplica de lectura para detener el proceso de replicación una vez completada la importación. Para obtener más información, consulte [Restauración de una copia de seguridad en una instancia de base de datos de Amazon RDS para MySQL](MySQL.Procedural.Importing.md).

Si desea configurar la replicación para exportar datos a una instancia de MySQL externa a Amazon RDS, llame a `mysql.rds_start_replication` y a `mysql.rds_stop_replication` en la réplica de lectura para controlar algunas acciones de replicación, como la limpieza de registros binarios. Para obtener más información, consulte [Exportación de datos desde una instancia de base de datos MySQL mediante replicación](MySQL.Procedural.Exporting.NonRDSRepl.md).

También puede usar `mysql.rds_stop_replication` para detener la replicación entre dos instancias de base de datos de Amazon RDS. Normalmente, se detiene la replicación para realizar una operación con un tiempo de ejecución largo en la réplica de lectura, como crear un índice grande en la réplica de lectura. Puede reiniciar cualquier proceso de replicación que haya detenido llamando a [mysql.rds\$1start\$1replication](#mysql_rds_start_replication) en la réplica de lectura. Para obtener más información, consulte [Trabajo con réplicas de lectura de instancias de base de datos](USER_ReadRepl.md).

# Finalización de una sesión o una consulta
<a name="mysql-stored-proc-ending"></a>

Los siguientes procedimientos almacenados finalizan una sesión o una consulta.

**Topics**
+ [

## mysql.rds\$1kill
](#mysql_rds_kill)
+ [

## mysql.rds\$1kill\$1query
](#mysql_rds_kill_query)

## mysql.rds\$1kill
<a name="mysql_rds_kill"></a>

Finaliza una conexión al servidor de MySQL.

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

```
CALL mysql.rds_kill(processID);
```

### Parámetros
<a name="mysql_rds_kill-parameters"></a>

 *processID*   
La identidad del subproceso de conexión que se va a finalizar.

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

Cada conexión al servidor de MySQL se ejecuta en un subproceso independiente. Para finalizar una conexión, use el procedimiento `mysql.rds_kill` y transfiera el ID de subproceso de esa conexión. Para obtener el ID del subproceso, use el comando [SHOW PROCESSLIST](https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html) de MySQL.

Para obtener información acerca de las limitaciones, consulte [Limitaciones del procedimiento almacenado de MySQL](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.KnownIssuesAndLimitations.KillProcedures).

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

El siguiente ejemplo finaliza una conexión con el ID de subproceso 4243:

```
CALL mysql.rds_kill(4243);
```

## mysql.rds\$1kill\$1query
<a name="mysql_rds_kill_query"></a>

Finaliza una consulta que se ejecuta en el servidor de MySQL.

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

```
CALL mysql.rds_kill_query(processID);
```

### Parámetros
<a name="mysql_rds_kill_query-parameters"></a>

 *processID*   
La identidad del proceso o subproceso que ejecuta la consulta que se va a finalizar.

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

Para detener una consulta que se ejecuta en el servidor MySQL, utilice el procedimiento `mysql_rds_kill_query` y pase el ID de conexión del subproceso que está ejecutando la consulta. A continuación, el procedimiento finaliza la conexión.

Para obtener el ID, consulte la [tabla INFORMATION\$1SCHEMA PROCESSLIST](https://dev.mysql.com/doc/refman/8.0/en/information-schema-processlist-table.html) o utilice el comando MySQL [SHOW PROCESSLIST](https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html). El valor de la columna ID de `SHOW PROCESSLIST` o `SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST` es el *ID del proceso*. 

Para obtener información acerca de las limitaciones, consulte [Limitaciones del procedimiento almacenado de MySQL](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.KnownIssuesAndLimitations.KillProcedures).

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

El siguiente ejemplo detiene una consulta con el ID de subproceso 230040:

```
CALL mysql.rds_kill_query(230040);
```

# Administración de clústeres activo-activo
<a name="mysql-stored-proc-active-active-clusters"></a>

Los siguientes procedimientos almacenados configuran y administran los clústeres activo-activo de RDS para MySQL. Para obtener más información, consulte [Configuración de clústeres activo-activo para RDS para MySQL](mysql-active-active-clusters.md).

Estos procedimientos almacenados solo están disponibles con instancias de base de datos de RDS para MySQL que ejecuten las siguientes versiones:
+ Todas las versiones MySQL 8.4
+ MySQL 8.0.35 y versiones secundarias posteriores

**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>

Crea GTID de marcador de posición en la instancia de base de datos actual.

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

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

### Parámetros
<a name="mysql_rds_group_replication_advance_gtid-parameters"></a>

 *begin\$1id*   
El identificador de la transacción inicial que se va a crear.

 *end\$1id*   
El identificador de la transacción final que se va a crear.

 *begin\$1id*   
El `group_replication_group_name` de la transacción que se va a crear. El `group_replication_group_name` se especifica como un UUID en el grupo de parámetros de base de datos asociado a la instancia de base de datos.

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

En un clúster activo-activo, para que una instancia de base de datos se una a un grupo, todas las transacciones GTID ejecutadas en la nueva instancia de base de datos deben existir en los demás miembros del clúster. En casos poco habituales, es posible que una nueva instancia de base de datos tenga más transacciones si las transacciones se ejecutan antes de unir la instancia al grupo. En este caso, no puede eliminar ninguna transacción existente, pero puede utilizar este procedimiento para crear los GTID de marcador de posición correspondientes en las demás instancias de base de datos del grupo. Antes de hacerlo, compruebe que las transacciones *no afectan a los datos replicados*.

Al llamar a este procedimiento, las transacciones GTID de `server_uuid:begin_id-end_id` se crean con contenido vacío. Para evitar problemas de replicación, no utilice este procedimiento en ninguna otra condición.

**importante**  
Evite llamar a este procedimiento cuando el clúster activo-activo funcione normalmente. No llame a este procedimiento a menos que conozca las posibles consecuencias de las transacciones que va a crear. El uso de este procedimiento puede producir datos incoherentes.

### Ejemplo
<a name="mysql_rds_group_replication_advance_gtid-examples"></a>

En el siguiente ejemplo, se crean GTID de marcador de posición en la instancia de base de datos actual:

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

Crea el usuario de replicación `rdsgrprepladmin` para la replicación de grupo en la instancia de base de datos.

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

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

### Parámetros
<a name="mysql_rds_group_replication_create_user-parameters"></a>

 *replication\$1user\$1password*   
La contraseña del usuario de replicación `rdsgrprepladmin`.

### Notas de uso
<a name="mysql_rds_group_replication_create_user-usage-notes"></a>
+ La contraseña del usuario de replicación `rdsgrprepladmin` debe ser la misma en todas las instancias de base de datos de un clúster activo-activo.
+ El nombre de usuario `rdsgrprepladmin` está reservado para las conexiones de la replicación de grupo. Ningún otro usuario, incluido el usuario maestro, puede tener este nombre de usuario.

### Ejemplo
<a name="mysql_rds_group_replication_create_user-examples"></a>

En el siguiente ejemplo, se crea el usuario de replicación `rdsgrprepladmin` para la replicación de grupo en la instancia de base de datos:

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

Establece el canal `group_replication_recovery` para un clúster activo-activo. El procedimiento utiliza el usuario reservado `rdsgrprepladmin` para configurar el canal.

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

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

### Parámetros
<a name="mysql_rds_group_replication_set_recovery_channel-parameters"></a>

 *replication\$1user\$1password*   
La contraseña del usuario de replicación `rdsgrprepladmin`.

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

La contraseña del usuario de replicación `rdsgrprepladmin` debe ser la misma en todas las instancias de base de datos de un clúster activo-activo. Una llamada a `mysql.rds_group_replication_create_user` especifica la contraseña.

### Ejemplo
<a name="mysql_rds_group_replication_set_recovery_channel-examples"></a>

En el siguiente ejemplo, se establece el canal `group_replication_recovery` para un clúster activo-activo.

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

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

Inicia la replicación de grupo en la instancia de base de datos actual.

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

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

### Parámetros
<a name="mysql_rds_group_replication_start-parameters"></a>

 *bootstrap*   
Un valor que especifica si se debe inicializar un grupo nuevo o unirse a un grupo existente. `1`inicializa un grupo nuevo con la instancia de base de datos actual. `0` une la instancia de base de datos actual a un grupo existente conectándose a los puntos de conexión definidos en el parámetro `group_replication_group_seeds` del grupo de parámetros de base de datos asociado a la instancia de base de datos.

### Ejemplo
<a name="mysql_rds_group_replication_start-examples"></a>

En el siguiente ejemplo, se inicializa un grupo nuevo con la instancia de base de datos actual:

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

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

Detiene la replicación de grupo en la instancia de base de datos actual.

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

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

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

Cuando se detiene la replicación en una instancia de base de datos, esto no afecta a ninguna otra instancia de base de datos del clúster activo-activo.

# Administración de la replicación de varios orígenes
<a name="mysql-stored-proc-multi-source-replication"></a>

Los siguientes procedimientos almacenados configuran y administran los canales de replicación en una réplica de varios orígenes de RDS para MySQL. Para obtener más información, consulte [Configuración de la replicación de varios orígenes de Amazon RDS para MySQL](mysql-multi-source-replication.md).

Estos procedimientos almacenados solo están disponibles con instancias de base de datos de RDS para MySQL que ejecuten las siguientes versiones de motor:
+ Todas las versiones 8.4
+ 8.0.35 y versiones secundarias posteriores
+ 5.7.44 y versiones secundarias posteriores

Cuando utilice procedimientos almacenados para administrar la replicación con un usuario de replicación configurado con `caching_sha2_passwword`, debe configurar TLS especificando `SOURCE_SSL=1`. `caching_sha2_password` es el complemento de autenticación predeterminado de RDS para MySQL 8.4.

**nota**  
Si bien en esta documentación se hace referencia a las instancias de base de datos de origen como instancias de base de datos de RDS para MySQL, estos procedimientos también funcionan para las instancias de MySQL que se ejecutan de forma externa a Amazon RDS.

**Topics**
+ [

## mysql.rds\$1next\$1source\$1log\$1for\$1channel
](#mysql_rds_next_source_log_for_channel)
+ [

## mysql.rds\$1reset\$1external\$1source\$1for\$1channel
](#mysql_rds_reset_external_source_for_channel)
+ [

## mysql.rds\$1set\$1external\$1source\$1for\$1channel
](#mysql_rds_set_external_source_for_channel)
+ [

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel
](#mysql_rds_set_external_source_with_auto_position_for_channel)
+ [

## mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel
](#mysql_rds_set_external_source_with_delay_for_channel)
+ [

## mysql.rds\$1set\$1source\$1auto\$1position\$1for\$1channel
](#mysql_rds_set_source_auto_position_for_channel)
+ [

## mysql.rds\$1set\$1source\$1delay\$1for\$1channel
](#mysql_rds_set_source_delay_for_channel)
+ [

## mysql.rds\$1skip\$1repl\$1error\$1for\$1channel
](#mysql_rds_skip_repl_error_for_channel)
+ [

## mysql.rds\$1start\$1replication\$1for\$1channel
](#mysql_rds_start_replication_for_channel)
+ [

## mysql.rds\$1start\$1replication\$1until\$1for\$1channel
](#mysql_rds_start_replication_until_for_channel)
+ [

## mysql.rds\$1start\$1replication\$1until\$1gtid\$1for\$1channel
](#mysql_rds_start_replication_until_gtid_for_channel)
+ [

## mysql.rds\$1stop\$1replication\$1for\$1channel
](#mysql_rds_stop_replication_for_channel)

## mysql.rds\$1next\$1source\$1log\$1for\$1channel
<a name="mysql_rds_next_source_log_for_channel"></a>

Cambia la posición del registro de instancia de base de datos de origen al inicio del siguiente registro binario en la instancia de base de datos de origen del canal. Use este procedimiento únicamente si aparece el error de E/S de replicación 1236 en una réplica de varios orígenes.

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

 

```
CALL mysql.rds_next_source_log_for_channel(
curr_master_log,
channel_name           
);
```

### Parámetros
<a name="mysql_rds_next_source_log_for_channel-parameters"></a>

 *curr\$1master\$1log*  
El índice del archivo de registro de origen actual. Por ejemplo, si el nombre del archivo actual es `mysql-bin-changelog.012345`, el índice es 12345. Para determinar el nombre del archivo de registro de origen actual, ejecute el comando `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'` y vea el campo `Source_Log_File`.

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_next_source_log_for_channel`. Si se produce un error IO\$1Thread, por ejemplo, puede utilizar este procedimiento para omitir todos los eventos del archivo de registro binario actual y reanudar la replicación desde el siguiente archivo de registro binario para el canal especificado en `channel_name`.

### Ejemplo
<a name="mysql_rds_group_replication_advance_gtid-examples"></a>

Suponga que la replicación falla en un canal de una réplica de varios orígenes. La ejecución de `SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G` en la réplica de varios orígenes devuelve el siguiente resultado:

```
mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: ReplicationUser
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: replica-relay-bin.000003
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:.
              .
              .
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
               .
               .
                 Channel_name: channel_1
              .
              .
 -- Some fields are omitted in this example output
```

El campo `Last_IO_Errno` muestra que la instancia ha recibido el error de E/S 1236. El campo `Source_Log_File` muestra que el nombre de archivo es `mysql-bin-changelog.012345`, lo que significa que el índice del archivo de registro es `12345`. Para resolver el error, puede llamar a `mysql.rds_next_source_log_for_channel` con los siguientes parámetros:

```
CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
```

## mysql.rds\$1reset\$1external\$1source\$1for\$1channel
<a name="mysql_rds_reset_external_source_for_channel"></a>

Detiene el proceso de replicación en el canal especificado y elimina el canal y las configuraciones asociadas de la réplica de varios orígenes.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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



```
CALL mysql.rds_reset_external_source_for_channel (channel_name);
```

### Parámetros
<a name="mysql_rds_reset_external_source_for_channel-parameters"></a>

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_reset_external_source_for_channel`. Este procedimiento elimina todos los registros de retransmisión que pertenecen al canal que se va a eliminar.

## mysql.rds\$1set\$1external\$1source\$1for\$1channel
<a name="mysql_rds_set_external_source_for_channel"></a>

Puede configurar un canal de replicación en una instancia de base de datos de RDS para MySQL para replicar los datos de otra instancia de base de datos de RDS para MySQL.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

**nota**  
Puede utilizar el procedimiento almacenado [mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel](#mysql_rds_set_external_source_with_delay_for_channel) en lugar de configurar este canal con replicación retardada.

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



```
CALL mysql.rds_set_external_source_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , channel_name
);
```

### Parámetros
<a name="mysql_rds_set_external_source_for_channel-parameters"></a>

 *host\$1name*   
El nombre de host o la dirección IP de la instancia de base de datos de origen de RDS para MySQL.

 *host\$1port*   
El puerto utilizado por la instancia de base de datos de origen de RDS para MySQL. Si la configuración de la red incluye la replicación de puertos Secure Shell (SSH) que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El identificador de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de base de datos de origen de RDS para MySQL. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia de base de datos de origen.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *mysql\$1binary\$1log\$1file\$1name*   
El nombre del registro binario de la instancia de base de datos de origen que contiene la información de replicación.

 *mysql\$1binary\$1log\$1file\$1location*   
La ubicación del registro binario `mysql_binary_log_file_name` en la que la replicación empieza a leer la información de la replicación.  
Para determinar el nombre y la ubicación del archivo binlog, puede ejecutar `SHOW BINARY LOG STATUS` en la instancia de base de datos de origen.   
Versiones anteriores de MySQL utilizaban `SHOW MASTER STATUS` en lugar de `SHOW BINARY LOG STATUS`. Si usa una versión de MySQL anterior a la 8.4, utilice `SHOW MASTER STATUS`.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `SOURCE_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

 *nombre\$1canal*   
El nombre del canal de replicación. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

 El usuario maestro debe ejecutar el procedimiento `mysql.rds_set_external_source_for_channel`. Este procedimiento debe ejecutarse en la instancia de base de datos de RDS para MySQL de destino en la que va a crear el canal de replicación.

 Antes de ejecutar `mysql.rds_set_external_source_for_channel`, configure un usuario de replicación en la instancia de base de datos de origen con los privilegios necesarios para la réplica de varios orígenes. Para conectar la réplica de varios orígenes a la instancia de base de datos de origen, debe especificar los valores de `replication_user_name` y `replication_user_password` de un usuario de la replicación que tenga permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de base de datos de origen.

**Configuración de un usuario de replicación en la instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia de base de datos de origen y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.
**importante**  
Como práctica recomendada de seguridad, especifique una contraseña distinta del valor de marcador de posición que se muestra en los ejemplos siguientes.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE`. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario “repl\$1user” de su dominio.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL.

Después de llamar a `mysql.rds_set_external_source_for_channel` para configurar este canal de replicación, puede llamar a [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel) en la réplica para iniciar el proceso de replicación en el canal. Puede llamar a [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel) para detener la replicación en el canal y eliminar la configuración del canal de la réplica.

Cuando llama a `mysql.rds_set_external_source_for_channel`, Amazon RDS registra la hora, el usuario y una acción de `set channel source` en la tabla `mysql.rds_history` sin detalles específicos del canal y en la tabla `mysql.rds_replication_status` con el nombre del canal. Esta información se registra únicamente con fines de monitorización y uso interno. Para registrar toda la llamada al procedimiento con fines de auditoría, considere la posibilidad de habilitar los registros de auditoría o los registros generales, según los requisitos específicos de su aplicación.

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

Cuando se ejecuta en una instancia de base de datos de RDS para MySQL, el siguiente ejemplo permite configurar un canal de replicación denominado `channel_1` en esta instancia de base de datos para replicar los datos del origen especificado por el host `sourcedb.example.com` y el puerto `3306`.

```
call mysql.rds_set_external_source_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.0777',
  120,
  0,
  'channel_1');
```

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel
<a name="mysql_rds_set_external_source_with_auto_position_for_channel"></a>

Configura un canal de replicación en una instancia de base de datos de RDS para MySQL con un retardo de replicación opcional. La replicación está basada en identificadores de transacciones globales (GTID).

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_set_external_source_with_auto_position_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , ssl_encryption
  , delay
  , channel_name
);
```

### Parámetros
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-parameters"></a>

 *host\$1name*   
El nombre de host o la dirección IP de la instancia de base de datos de origen de RDS para MySQL.

 *host\$1port*   
El puerto utilizado por la instancia de base de datos de origen de RDS para MySQL. Si la configuración de la red incluye la replicación de puertos Secure Shell (SSH) que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El identificador de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de base de datos de origen de RDS para MySQL. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia de base de datos de origen.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `SOURCE_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

 *delay*   
El número mínimo de segundos para retardar la replicación desde la instancia de base de datos de origen.  
El límite de este parámetro es de un día (86400 segundos).

 *nombre\$1canal*   
El nombre del canal de replicación. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_set_external_source_with_auto_position_for_channel`. Este procedimiento debe ejecutarse en la instancia de base de datos de RDS para MySQL de destino en la que va a crear el canal de replicación.

Antes de ejecutar `rds_set_external_source_with_auto_position_for_channel`, configure un usuario de replicación en la instancia de base de datos de origen con los privilegios necesarios para la réplica de varios orígenes. Para conectar la réplica de varios orígenes a la instancia de base de datos de origen, debe especificar los valores de `replication_user_name` y `replication_user_password` de un usuario de la replicación que tenga permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de base de datos de origen.

**Configuración de un usuario de replicación en la instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia de base de datos de origen y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.
**importante**  
Como práctica recomendada de seguridad, especifique una contraseña distinta del valor de marcador de posición que se muestra en los ejemplos siguientes.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE`. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario “repl\$1user” de su dominio.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL.

Antes de llamar a `mysql.rds_set_external_source_with_auto_position_for_channel`, asegúrese de llamar a [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](mysql-stored-proc-replicating.md#mysql_rds_set_external_source_gtid_purged) para configurar la variable de sistema `gtid_purged` con un rango de GTID especificado desde un origen externo.

Después de llamar a `mysql.rds_set_external_source_with_auto_position_for_channel` para configurar una instancia de base de datos de Amazon RDS como réplica de lectura en un canal específico, puede llamar a [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel) en la réplica de lectura para iniciar el proceso de replicación en ese canal.

Después de llamar a `mysql.rds_set_external_source_with_auto_position_for_channel` para configurar este canal de replicación, puede llamar a [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel) en la réplica para iniciar el proceso de replicación en el canal. Puede llamar a [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel) para detener la replicación en el canal y eliminar la configuración del canal de la réplica.

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

Cuando se ejecuta en una instancia de base de datos de RDS para MySQL, el siguiente ejemplo permite configurar un canal de replicación denominado `channel_1` en esta instancia de base de datos para replicar los datos del origen especificado por el host `sourcedb.example.com` y el puerto `3306`. Configura el retardo de replicación mínimo en una hora (3600 segundos). Esto significa que un cambio en la instancia de base de datos de RDS para MySQL de origen no se aplica en la réplica de varios orígenes hasta que haya transcurrido al menos una hora.

```
call mysql.rds_set_external_source_with_auto_position_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  1,
  3600,
  'channel_1');
```

## mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel
<a name="mysql_rds_set_external_source_with_delay_for_channel"></a>

Configura un canal de replicación en una instancia de base de datos de RDS para MySQL con un retardo de replicación especificado.

**importante**  
Para ejecutar este procedimiento, `autocommit` debe estar habilitado. Para habilitarlo, establezca el parámetro `autocommit` en `1`. Para obtener información acerca de cómo modificar los parámetros, consulte [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

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

 

```
CALL mysql.rds_set_external_source_with_delay_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
  , channel_name
);
```

### Parámetros
<a name="mysql_rds_set_external_source_with_delay_for_channel-parameters"></a>

 *host\$1name*   
El nombre de host o la dirección IP de la instancia de base de datos de origen de RDS para MySQL.

 *host\$1port*   
El puerto utilizado por la instancia de base de datos de origen de RDS para MySQL. Si la configuración de la red incluye la replicación de puertos Secure Shell (SSH) que convierte el número de puerto, especifique el número de puerto expuesto por SSH.

 *replication\$1user\$1name*   
El identificador de un usuario con permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de base de datos de origen de RDS para MySQL. Es recomendable que proporcione una cuenta que se use solo para la replicación con la instancia de base de datos de origen.

 *replication\$1user\$1password*   
La contraseña del ID de usuario especificado en `replication_user_name`.

 *mysql\$1binary\$1log\$1file\$1name*   
El nombre del registro binario de la instancia de base de datos de origen que contiene la información de replicación.

 *mysql\$1binary\$1log\$1file\$1location*   
La ubicación del registro binario `mysql_binary_log_file_name` en la que la replicación comenzará a leer la información de la replicación.  
Para determinar el nombre y la ubicación del archivo binlog, puede ejecutar `SHOW BINARY LOG STATUS` en la instancia de base de datos de origen.  
Versiones anteriores de MySQL utilizaban `SHOW MASTER STATUS` en lugar de `SHOW BINARY LOG STATUS`. Si usa una versión de MySQL anterior a la 8.4, utilice `SHOW MASTER STATUS`.

 *ssl\$1encryption*   
Valor que especifica si el cifrado de la capa de conexión segura (SSL) se usa en la conexión de reproducción. El 1 especifica que se usa el cifrado SSL; el 0 especifica que no se usa el cifrado. El valor predeterminado es 0.  
La opción `SOURCE_SSL_VERIFY_SERVER_CERT` no es compatible. Esta opción se establece en 0, lo que significa que la conexión está cifrada, pero los certificados no se verifican.

 *delay*   
El número mínimo de segundos para retardar la replicación desde la instancia de base de datos de origen.  
El límite de este parámetro es de un día (86400 segundos).

 *nombre\$1canal*   
El nombre del canal de replicación. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_set_external_source_with_delay_for_channel`. Este procedimiento debe ejecutarse en la instancia de base de datos de RDS para MySQL de destino en la que va a crear el canal de replicación.

Antes de ejecutar `mysql.rds_set_external_source_with_delay_for_channel`, configure un usuario de replicación en la instancia de base de datos de origen con los privilegios necesarios para la réplica de varios orígenes. Para conectar la réplica de varios orígenes a la instancia de base de datos de origen, debe especificar los valores de `replication_user_name` y `replication_user_password` de un usuario de la replicación que tenga permisos `REPLICATION CLIENT` y `REPLICATION SLAVE` en la instancia de base de datos de origen.

**Configuración de un usuario de replicación en la instancia de base de datos de origen**

1. Con el cliente de MySQL que prefiera, conéctese a la instancia de base de datos de origen y cree una cuenta de usuario que se usará para la replicación. A continuación se muestra un ejemplo.
**importante**  
Como práctica recomendada de seguridad, especifique una contraseña distinta del valor de marcador de posición que se muestra en los ejemplos siguientes.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. En la instancia de base de datos de origen, conceda al usuario de replicación los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE`. En el siguiente ejemplo se conceden los privilegios `REPLICATION CLIENT` y `REPLICATION SLAVE` en todas las bases de datos al usuario “repl\$1user” de su dominio.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

Para utilizar la replicación cifrada, configure la instancia de base de datos de origen para que utilice conexiones SSL.

Después de llamar a `mysql.rds_set_external_source_with_delay_for_channel` para configurar este canal de replicación, puede llamar a [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel) en la réplica para iniciar el proceso de replicación en el canal. Puede llamar a [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel) para detener la replicación en el canal y eliminar la configuración del canal de la réplica.

Cuando llama a `mysql.rds_set_external_source_with_delay_for_channel`, Amazon RDS registra la hora, el usuario y una acción de `set channel source` en la tabla `mysql.rds_history` sin detalles específicos del canal y en la tabla `mysql.rds_replication_status` con el nombre del canal. Esta información se registra únicamente con fines de monitorización y uso interno. Para registrar toda la llamada al procedimiento con fines de auditoría, considere la posibilidad de habilitar los registros de auditoría o los registros generales, según los requisitos específicos de su aplicación.

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

Cuando se ejecuta en una instancia de base de datos de RDS para MySQL, el siguiente ejemplo permite configurar un canal de replicación denominado `channel_1` en esta instancia de base de datos para replicar los datos del origen especificado por el host `sourcedb.example.com` y el puerto `3306`. Configura el retardo de replicación mínimo en una hora (3600 segundos). Esto significa que un cambio en la instancia de base de datos de RDS para MySQL de origen no se aplica en la réplica de varios orígenes hasta que haya transcurrido al menos una hora.

```
call mysql.rds_set_external_source_with_delay_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600,
  'channel_1');
```

## mysql.rds\$1set\$1source\$1auto\$1position\$1for\$1channel
<a name="mysql_rds_set_source_auto_position_for_channel"></a>

Establece el modo de replicación para el canal especificado en el que se debe basar ya sea en posiciones de archivos de registros binarios o en identificadores de transacciones globales (GTID).

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

 

```
CALL mysql.rds_set_source_auto_position_for_channel (
auto_position_mode
 , channel_name
);
```

### Parámetros
<a name="mysql_rds_set_source_auto_position_for_channel-parameters"></a>

 *auto\$1position\$1mode*   
Un valor que indicar si debe usarse la replicación de posición de los archivos de registro o la replicación basada en GTID:  
+ `0`: utilice el método de replicación basado en la posición del archivo de registro binario. El valor predeterminado es `0`.
+ `1`: utilice el método de replicación basado en GTID.

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_set_source_auto_position_for_channel`. Este procedimiento reinicia la replicación en el canal especificado para aplicar el modo de posición automática especificado.

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

En el siguiente ejemplo, se establece el modo de posición automática para que channel\$11 utilice el método de replicación basado en GTID.

```
call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');
```

## mysql.rds\$1set\$1source\$1delay\$1for\$1channel
<a name="mysql_rds_set_source_delay_for_channel"></a>

Establece el número mínimo de segundos para retardar la replicación desde la instancia de base de datos de origen a la réplica de varios orígenes para el canal especificado.

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

```
CALL mysql.rds_set_source_delay_for_channel(delay, channel_name);
```

### Parámetros
<a name="mysql_rds_set_source_delay_for_channel-parameters"></a>

 *delay*   
El número mínimo de segundos para retardar la replicación desde la instancia de base de datos de origen.  
El límite de este parámetro es de un día (86400 segundos).

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_set_source_delay_for_channel`. Para utilizar este procedimiento, primero llame a `mysql.rds_stop_replication_for_channel` para detener la replicación. A continuación, llame a este procedimiento para establecer el valor del retardo de la replicación. Cuando el retardo esté establecido, llame a `mysql.rds_start_replication_for_channel` para reiniciar la replicación.

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

En el ejemplo siguiente, se establece el retardo de replicación desde la instancia de base de datos de origen en `channel_1` de la réplica de varios orígenes en al menos una hora (3600 segundos).

```
CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');
```

## mysql.rds\$1skip\$1repl\$1error\$1for\$1channel
<a name="mysql_rds_skip_repl_error_for_channel"></a>

Omite un evento de registro binario y elimina un error de replicación en una réplica de varios orígenes de base de datos MySQL para el canal especificado.

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

 

```
CALL mysql.rds_skip_repl_error_for_channel(channel_name);
```

### Parámetros
<a name="mysql_rds_skip_repl_error_for_channel-parameters"></a>

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_skip_repl_error_for_channel` en una réplica de lectura. Este procedimiento se puede utilizar de forma similar a como se utiliza `mysql.rds_skip_repl_error` para omitir un error en una réplica de lectura. Para obtener más información, consulte [Llamar al procedimiento mysql.rds\$1skip\$1repl\$1error](Appendix.MySQL.CommonDBATasks.SkipError.md#Appendix.MySQL.CommonDBATasks.SkipError.procedure).

**nota**  
Para omitir errores en la replicación basada en GTID, se recomienda utilizar este procedimiento en lugar de [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid).

Para determinar si hay errores, ejecute el comando `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G` de MySQL. Si un error de replicación no es crítico, puede ejecutar `mysql.rds_skip_repl_error_for_channel` para omitir el error. Si hay varios errores, `mysql.rds_skip_repl_error_for_channel` elimina el primer error en el canal de replicación especificado y advierte de que hay otros presentes. A continuación, puede usar `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G` para determinar la acción correcta para el siguiente error. Para obtener información acerca de los valores devueltos, consulte [la instrucción SHOW REPLICA STATUS](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html) en la documentación de MySQL.

## mysql.rds\$1start\$1replication\$1for\$1channel
<a name="mysql_rds_start_replication_for_channel"></a>

Inicia la replicación desde una instancia de base de datos de RDS para MySQL a una réplica de varios orígenes en el canal especificado.

**nota**  
Puede utilizar el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until\$1for\$1channel](#mysql_rds_start_replication_until_for_channel) o [mysql.rds\$1start\$1replication\$1until\$1gtid\$1for\$1channel](#mysql_rds_start_replication_until_gtid_for_channel) para iniciar la reproducción desde una instancia de base de datos de RDS for MySQL y detener la reproducción en la ubicación del archivo de registro binario especificado.

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

 

```
CALL mysql.rds_start_replication_for_channel(channel_name);
```

### Parámetros
<a name="mysql_rds_start_replication_for_channel-parameters"></a>

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_start_replication_for_channel`. Tras importar los datos desde la instancia de base de datos de RDS para MySQL de origen, ejecute este comando en la réplica de varios orígenes para iniciar la replicación en el canal especificado.

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

En el siguiente ejemplo, se inicia la replicación en `channel_1` de la réplica de varios orígenes.

```
CALL mysql.rds_start_replication_for_channel('channel_1');
```

## mysql.rds\$1start\$1replication\$1until\$1for\$1channel
<a name="mysql_rds_start_replication_until_for_channel"></a>

Inicia la replicación desde una instancia de base de datos de RDS para MySQL en el canal especificado y detiene la replicación en la ubicación del archivo de registro binario especificado.

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

 

```
CALL mysql.rds_start_replication_until_for_channel (
replication_log_file
  , replication_stop_point
  , channel_name
);
```

### Parámetros
<a name="mysql_rds_start_replication_until_for_channel-parameters"></a>

 *replication\$1log\$1file*   
El nombre del registro binario de la instancia de base de datos de origen que contiene la información de replicación.

 *replication\$1stop\$1point *   
La ubicación del registro binario `replication_log_file` en la que la replicación se detendrá.

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_start_replication_until_for_channel`. Con este procedimiento, la replicación se inicia y, a continuación, se detiene cuando se alcanza la posición especificada del archivo binlog. Este procedimiento detiene tanto `SQL_THREAD` como `IO_THREAD`.

El nombre de archivo especificado para el parámetro `replication_log_file` debe coincidir con el nombre del archivo binlog de la instancia de base de datos de origen.

Cuando el parámetro `replication_stop_point` especifica una ubicación de parada correspondiente al pasado, la replicación se detiene de inmediato.

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

En el ejemplo siguiente, se inicia la replicación en `channel_1` y se replican los cambios hasta que alcanza la ubicación `120` en el archivo de registro binario `mysql-bin-changelog.000777`.

```
call mysql.rds_start_replication_until_for_channel(
  'mysql-bin-changelog.000777',
  120,
  'channel_1'
  );
```

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

Inicia la replicación en el canal especificado desde una instancia de base de datos de RDS para MySQL y detiene la replicación en el identificador de transacción global (GTID) especificado.

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

 

```
CALL mysql.rds_start_replication_until_gtid_for_channel(gtid,channel_name);
```

### Parámetros
<a name="mysql_rds_start_replication_until_gtid_for_channel-parameters"></a>

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

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

El usuario maestro debe ejecutar el procedimiento `mysql.rds_start_replication_until_gtid_for_channel`. El procedimiento inicia la replicación en el canal especificado y aplica todos los cambios hasta el valor de GTID especificado. A continuación, detiene la replicación en el canal.

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

Antes de ejecutar este procedimiento, debe deshabilitar la réplica multiproceso estableciendo el valor de `replica_parallel_workers` o `slave_parallel_workers` en `0`.

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

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

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

## mysql.rds\$1stop\$1replication\$1for\$1channel
<a name="mysql_rds_stop_replication_for_channel"></a>

Detiene la replicación desde una instancia de base de datos de MySQL en el canal especificado.

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

 

```
CALL mysql.rds_stop_replication_for_channel(channel_name);
```

### Parámetros
<a name="mysql_rds_stop_replication_for_channel-parameters"></a>

 *nombre\$1canal*   
El nombre del canal de replicación de la réplica de varios orígenes. Cada canal de replicación recibe los eventos del registro binario de una sola instancia de base de datos de RDS para MySQL de origen que se ejecuta en un host y un puerto específicos.

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

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

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

En el siguiente ejemplo, se detiene la replicación en `channel_1` de la réplica de varios orígenes.

```
CALL mysql.rds_stop_replication_for_channel('channel_1');
```

# 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 RDS para MySQL. Para obtener más información sobre la replicación mediante GTID con RDS para MySQL, consulte [Uso de la replicación basada en GTID](mysql-replication-gtid.md).

Cuando utilice procedimientos almacenados para administrar la replicación con un usuario de replicación configurado con `caching_sha2_password`, debe configurar TLS especificando `SOURCE_SSL=1`. `caching_sha2_password` es el complemento de autenticación predeterminado de RDS para 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>

Omite la replicación de una transacción con el identificador de transacción global (GTID) especificado en una instancia de base de datos de MySQL.

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 es compatible con todas las versiones de RDS para MySQL 5.7, con todas las versiones de RDS para MySQL 8.0 y con todas las versiones de RDS para MySQL 8.4.

### 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
<a name="mysql_rds_start_replication_until_gtid"></a>

Inicia la replicación desde una instancia de base de datos de RDS para 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 todas las versiones de RDS para MySQL 5.7, con todas las versiones de RDS para MySQL 8.0 y con todas las versiones de RDS para MySQL 8.4.

Puede utilizar este procedimiento con la replicación retrasada para recuperación ante desastres. Si ha configurado la replicación retrasada, puede utilizar este procedimiento para restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Después de que este procedimiento detenga la replicación, puede promocionar la réplica de lectura para que sea la nueva instancia de base de datos primaria utilizando las instrucciones de [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md).

Puede configurar la replicación retrasada utilizando los procedimientos almacenados siguientes:
+ [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1delay (RDS para MariaDB y RDS para las versiones principales de MySQL 8.0 e inferiores)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay (RDS para las versiones principales de MySQL 8.4 y superiores)](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)

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');
```

# Rotación de los registros de consultas
<a name="mysql-stored-proc-logging"></a>

Los siguientes procedimientos almacenados rotan los registros de MySQL en tablas de copia de seguridad. Para obtener más información, consulte [Archivos de registro de base de datos de MySQL](USER_LogAccess.Concepts.MySQL.md).

**Topics**
+ [

## mysql.rds\$1rotate\$1general\$1log
](#mysql_rds_rotate_general_log)
+ [

## mysql.rds\$1rotate\$1slow\$1log
](#mysql_rds_rotate_slow_log)

## mysql.rds\$1rotate\$1general\$1log
<a name="mysql_rds_rotate_general_log"></a>

Rota la tabla `mysql.general_log` a una tabla de copia de seguridad.

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

 

```
CALL mysql.rds_rotate_general_log;
```

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

Para rotar la tabla `mysql.general_log` a una tabla de copia de seguridad, llame al procedimiento `mysql.rds_rotate_general_log`. Cuando se rotan las tablas de registro, la tabla de registro actual se copia en una tabla de registro de copia de seguridad y las entradas de la tabla de registro actual se eliminan. Si ya existe una tabla de registro de copia de seguridad, se elimina antes de copiar la tabla del registro actual en el copia de seguridad. Puede consultar la tabla de registro de copia de seguridad si es necesaria. La tabla de registro de copia de seguridad para la tabla `mysql.general_log` se llama `mysql.general_log_backup`.

Puede ejecutar este procedimiento solo cuando el parámetro `log_output` se establezca en`TABLE`.

## mysql.rds\$1rotate\$1slow\$1log
<a name="mysql_rds_rotate_slow_log"></a>

Rota la tabla `mysql.slow_log` a una tabla de copia de seguridad.

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

 

```
CALL mysql.rds_rotate_slow_log;
```

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

Para rotar la tabla `mysql.slow_log` a una tabla de copia de seguridad, llame al procedimiento `mysql.rds_rotate_slow_log`. Cuando se rotan las tablas de registro, la tabla de registro actual se copia en una tabla de registro de copia de seguridad y las entradas de la tabla de registro actual se eliminan. Si ya existe una tabla de registro de copia de seguridad, se elimina antes de copiar la tabla del registro actual en el copia de seguridad. 

Puede consultar la tabla de registro de copia de seguridad si es necesaria. La tabla de registro de copia de seguridad para la tabla `mysql.slow_log` se llama `mysql.slow_log_backup`. 

# Establecimiento y muestra de la configuración del registro binario
<a name="mysql-stored-proc-configuring"></a>

Los siguientes procedimientos almacenados establecen y muestran los parámetros de configuración, por ejemplo, para la retención de archivos de registro binario.

**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>

Especifica el número de horas que se deben conservar los registros binarios o el número de segundos que se retrasará la replicación.

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

 

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

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

 *name*   
El nombre del parámetro de configuración que se va a definir.

 *value*   
El valor del parámetro de configuración.

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

El procedimiento `mysql.rds_set_configuration` admite los parámetros de configuración siguientes:
+ [binlog retention hours](#mysql_rds_set_configuration-usage-notes.binlog-retention-hours)
+ [Retardo del origen](#mysql_rds_set_configuration-usage-notes.source-delay)
+ [target delay](#mysql_rds_set_configuration-usage-notes.target-delay)

Los parámetros de configuración se almacenan de forma permanente y sobreviven a cualquier reinicio o conmutación por error de una instancia de base de datos.

#### binlog retention hours
<a name="mysql_rds_set_configuration-usage-notes.binlog-retention-hours"></a>

El parámetro `binlog retention hours` se usa para especificar la cantidad de horas que se deben retener los archivos de registro binario. Por lo general, Amazon RDS limpia un registro binario lo antes posible, pero el registro binario podría seguir siendo necesario para la replicación con una base de datos MySQL externa a RDS.

El valor predeterminado de `binlog retention hours` es `NULL`. En RDS para MySQL, `NULL` significa que los registros binarios no se retienen (0 horas).

Para especificar el número de horas que se deben retener los registros binarios en una instancia de base de datos, utilice el procedimiento almacenado `mysql.rds_set_configuration` y especifique un periodo lo bastante largo como para realizar la replicación, como se muestra en el siguiente ejemplo.

`call mysql.rds_set_configuration('binlog retention hours', 24);`

**nota**  
No puede utilizar el valor `0` para `binlog retention hours`.

Para la mayoría de las instancias de base de datos de MySQL, el valor máximo de `binlog retention hours` es 168 (7 días).

Una vez que haya definido el periodo de retención, monitorice el uso del almacenamiento para la instancia de base de datos con el fin de asegurarse de que los logs binarios conservados no consuman demasiado almacenamiento.

Para las implementaciones de clústeres de base de datos multi-AZ, solo puede configurar la retención de registros binarios desde la instancia de base de datos del escritor y la configuración se propaga a todas las instancias de base de datos del lector de forma asíncrona. Si los registros binarios del clúster de base de datos superan la mitad del espacio total de almacenamiento local, Amazon RDS mueve automáticamente los registros obsoletos al volumen de EBS. Sin embargo, los registros más recientes permanecen en el almacenamiento local, por lo que podrían perderse si se produce un fallo que requiera la sustitución del host o si se escala la base de datos vertical u horizontalmente. 

#### Retardo del origen
<a name="mysql_rds_set_configuration-usage-notes.source-delay"></a>

Utilice el parámetro `source delay` en una réplica de lectura para especificar el número de segundos que se debe retrasar la replicación desde la réplica de lectura a su instancia de base de datos de origen. Amazon RDS suele replicar los cambios lo antes posible, pero podría ser conveniente retrasar la replicación en algunos entornos. Por ejemplo, cuando la replicación se ha retrasado, puede restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Si una tabla se elimina por accidente, puede usar la replicación retardada para recuperarla rápidamente. El valor predeterminado de `target delay` es `0` (no retrasar la replicación).

Al utilizar este parámetro, se ejecuta [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay) y aplica CHANGE primary TO MASTER\$1DELAY = valor de entrada. Si el procedimiento se realiza correctamente, guarda el parámetro `source delay` en la tabla `mysql.rds_configuration`.

Para especificar el número de segundos que Amazon RDS debe retrasar la replicación en una instancia de base de datos de origen, utilice el procedimiento almacenado `mysql.rds_set_configuration` y especifique el número de segundos que deberá retrasarse la replicación. En el ejemplo siguiente, se especifica que la replicación se retrasa al menos una hora (3600 segundos).

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

A continuación, se ejecuta el procedimiento `mysql.rds_set_source_delay(3600)`. 

El límite del parámetro `source delay` es de un día (86400 segundos).

#### target delay
<a name="mysql_rds_set_configuration-usage-notes.target-delay"></a>

Utilice el parámetro `target delay` para especificar el número de segundos que se retrasará la replicación entre una instancia de base de datos y cualquier réplica de lectura futura administrada por RDS creada a partir de esta instancia. Este parámetro se omite para las réplicas de lectura no administradas por RDS. Amazon RDS suele replicar los cambios lo antes posible, pero podría ser conveniente retrasar la replicación en algunos entornos. Por ejemplo, cuando la replicación se ha retrasado, puede restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre. Si una tabla se elimina por accidente, puede usar la replicación retrasada para recuperarla rápidamente. El valor predeterminado de `target delay` es `0` (no retrasar la replicación).

Para la recuperación de desastres, puede utilizar este parámetro de configuración con el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until ](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until) o el procedimiento almacenado [mysql.rds\$1start\$1replication\$1until\$1gtid ](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid). Para restaurar los cambios en una réplica de lectura retrasada al momento justo anterior de un desastre puede ejecutar el procedimiento `mysql.rds_set_configuration` con este parámetro establecido. Después de que el procedimiento `mysql.rds_start_replication_until` o `mysql.rds_start_replication_until_gtid` detenga la replicación, puede promocionar la réplica de lectura para que sea la nueva instancia de base de datos primaria utilizando las instrucciones de [Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente](USER_ReadRepl.Promote.md). 

Para utiliza el procedimiento `mysql.rds_rds_start_replication_until_gtid`, debe habilitarse la replicación basada en GTID. Para omitir una transacción específica basada en GTID que se sabe que causa un desastre, puede usar el procedimiento almacenado [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid). Para obtener más información sobre el uso de la replicación basada en GTID, consulte [Uso de la replicación basada en GTID](mysql-replication-gtid.md).

Para especificar el número de segundos que Amazon RDS debe retrasar la replicación en una réplica de lectura, utilice el procedimiento almacenado `mysql.rds_set_configuration` y especifique el número de segundos que deberá retrasarse la replicación. En el ejemplo siguiente se especifica que la replicación se retrasa al menos una hora (3600 segundos).

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

El límite del parámetro `target delay` es de un día (86400 segundos).

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

El número de horas que se conservan los registros binarios.

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

 

```
CALL mysql.rds_show_configuration;
```

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

Para verificar el número de horas que Amazon RDS conserva los registros binarios, use el procedimiento almacenado `mysql.rds_show_configuration`.

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

El ejemplo siguiente muestra el periodo de retención:

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

# Calentamiento de caché de InnoDB
<a name="mysql-stored-proc-warming"></a>

Los siguientes procedimientos almacenados guardan, cargan o cancelan la carga del grupo de búferes de InnoDB en RDS para instancias de base de datos de RDS para MySQL. Para obtener más información, consulte [Calentamiento de caché de InnoDB para MySQL en Amazon RDS](MySQL.Concepts.FeatureSupport.md#MySQL.Concepts.InnoDBCacheWarming).

**Topics**
+ [

## mysql.rds\$1innodb\$1buffer\$1pool\$1dump\$1now
](#mysql_rds_innodb_buffer_pool_dump_now)
+ [

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1abort
](#mysql_rds_innodb_buffer_pool_load_abort)
+ [

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1now
](#mysql_rds_innodb_buffer_pool_load_now)

## mysql.rds\$1innodb\$1buffer\$1pool\$1dump\$1now
<a name="mysql_rds_innodb_buffer_pool_dump_now"></a>

Vuelca el estado actual del grupo del búfer en el disco.

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

 

```
CALL mysql.rds_innodb_buffer_pool_dump_now();
```

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

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

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1abort
<a name="mysql_rds_innodb_buffer_pool_load_abort"></a>

Cancela una carga del estado guardado del grupo del búfer mientras está en curso.

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

 

```
CALL mysql.rds_innodb_buffer_pool_load_abort();
```

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

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

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1now
<a name="mysql_rds_innodb_buffer_pool_load_now"></a>

Carga el estado guardado del grupo del búfer desde el disco.

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

 

```
CALL mysql.rds_innodb_buffer_pool_load_now();
```

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

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