

# Archivos de registro de base de datos de MySQL
<a name="USER_LogAccess.Concepts.MySQL"></a>

Puede supervisar los registros de MySQL directamente desde la consola de Amazon RDS, la API de Amazon RDS, AWS CLI o los SDK de AWS. También es posible el acceso a los registros de MySQL dirigiéndolos a una tabla de la base de datos principal y consultando esa tabla. Puede usar la utilidad mysqlbinlog para descargar un registro binario. 

Para obtener más información acerca de la visualización, descarga y vigilancia de los registros de bases de datos basados en archivos, consulte [Supervisión de archivos de registro de Amazon RDS](USER_LogAccess.md).

**Topics**
+ [Información general de los registros de bases de datos de RDS para MySQL](USER_LogAccess.MySQL.LogFileSize.md)
+ [Publicación de registros de MySQL en Amazon CloudWatch Logs](USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs.md)
+ [Envío de la salida del registro de MySQL a las tablas](Appendix.MySQL.CommonDBATasks.Logs.md)
+ [Configuración del registro binario de RDS para MySQL para bases de datos Single-AZ](USER_LogAccess.MySQL.BinaryFormat.md)
+ [Configuración del registro binario de MySQL para clústeres de bases de datos multi-AZ](USER_Binlog.MultiAZ.md)
+ [Acceso a los registros binarios de MySQL](USER_LogAccess.MySQL.Binarylog.md)

# Información general de los registros de bases de datos de RDS para MySQL
<a name="USER_LogAccess.MySQL.LogFileSize"></a>

Puede supervisar los siguientes tipos de archivos de registro de RDS para MySQL:
+ Registro de errores
+ Registro de consultas lentas
+ Registro general
+ Registro de auditoría
+ Registro de instancias
+ Registro de errores de autenticación de base de datos de IAM

El registro de errores de RDS para MySQL se genera de forma predeterminada. Puede generar la consulta lenta y los registros generales estableciendo parámetros en su grupo de parámetros de base de datos.

**Topics**
+ [Registros de errores de RDS para MySQL](#USER_LogAccess.MySQL.Errorlog)
+ [Registros generales y de consultas lentas de RDS para MySQL](#USER_LogAccess.MySQL.Generallog)
+ [Registro de auditoría de MySQL](#USER_LogAccess.MySQL.Auditlog)
+ [Rotación y retención de registros en RDS para MySQL](#USER_LogAccess.MySQL.LogFileSize.retention)
+ [Límites de tamaño en registro REDO](#USER_LogAccess.MySQL.LogFileSize.RedoLogs)

## Registros de errores de RDS para MySQL
<a name="USER_LogAccess.MySQL.Errorlog"></a>

RDS para MySQL escribe los errores en el archivo `mysql-error.log`. Cada archivo de registro tiene la hora a la que se generó (en UTC) agregada a su nombre. Los archivos de registro también tienen una marca temporal que ayuda a determinar cuándo se escribieron las entradas del registro.

RDS for MySQL solo escribe en el registro de errores durante el inicio, el cierre y cuando encuentra errores. Una instancia de base de datos puede pasar horas o días sin que se escriban nuevas entradas en el registro de errores. Si no hay entradas recientes, se debe a que el servidor no ha encontrado ningún error que genere una entrada en el registro.

Por diseño, los registros de errores se filtran para que solo se muestren los eventos inesperados, por ejemplo, los errores. No obstante, los registros de errores también contienen información adicional sobre la base de datos, por ejemplo, el progreso de la consulta, que no se muestra. Por lo tanto, incluso sin ningún error real, el tamaño de los registros de errores podría aumentar debido a las actividades continuas de la base de datos. Y, aunque puede que vea un tamaño determinado en bytes o kilobytes en los registros de error de la Consola de administración de AWS, es posible que tengan 0 bytes al descargarlos.

RDS para MySQL escribe `mysql-error.log` en disco cada 5 minutos. Adjunta el contenido del registro a `mysql-error-running.log`.

RDS para MySQL rota el archivo `mysql-error-running.log` cada hora. Retiene los registros generados durante las dos últimas semanas.

**nota**  
Tenga en cuenta que el periodo de retención es diferente entre Amazon RDS y Aurora.

## Registros generales y de consultas lentas de RDS para MySQL
<a name="USER_LogAccess.MySQL.Generallog"></a>

Puede escribir el registro de consultas lentas de RDS para MySQL y el registro general en un archivo o en una tabla de la base de datos. Para hacerlo, establezca los parámetros en el grupo de parámetros de la base de datos. Para obtener información acerca de cómo crear y modificar un grupo de parámetros de base de datos, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md). Debe definir estos parámetros para poder ver el registro de consultas lentas o el registro general en la consola de Amazon RDS o a través de la API de Amazon RDS, la CLI de Amazon RDS o los SDK de AWS.

Puede controlar lo que registra RDS para MySQL con los parámetros de esta lista:
+ `slow_query_log`: para crear el registro de consultas lentas, use el valor 1. El valor predeterminado es 0.
+ `general_log`: para crear el registro general, use el valor 1. El valor predeterminado es 0.
+ `long_query_time`: para evitar que se registren consultas rápidas en el registro de consultas lentas, especifique el valor del tiempo de ejecución mínimo de una consulta, en segundos, para que se registre. El valor predeterminado es 10 segundos y el mínimo es 0. Si log\$1output = FILE, puede especificar un valor de punto flotante que llega a una resolución de microsegundos. Si log\$1output = TABLE, debe especificar un valor entero con resolución de segundos. Solo se registran las consultas cuyo tiempo de ejecución exceda el valor de `long_query_time`. Por ejemplo, si configura `long_query_time` como 0,1, evitará que se registren las consultas que tarden menos de 100 milisegundos en ejecutarse.
+ `log_queries_not_using_indexes`: para incluir en el registro de consultas lentas todas las consultas que no usen un índice, use el valor 1. Las consultas que no usen un índice se registran incluso si su tiempo de ejecución es inferior al valor del parámetro `long_query_time`. El valor predeterminado es 0.
+ `log_output option`: puede especificar una de las opciones siguientes para el parámetro `log_output`. 
  + **TABLE** (predeterminada): las consultas generales se escriben en la tabla `mysql.general_log` y las consultas lentas en la tabla `mysql.slow_log`.
  + **FILE**: tanto los registros de las consultas generales como los de las consultas lentas se escriben en el sistema de archivos.
  + **NONE**: deshabilitar registro.

Para que los datos de consultas lentas aparezcan en Registros de Amazon CloudWatch, se deben cumplir las siguientes condiciones:
+ Registros de CloudWatch debe configurarse para incluir registros de consultas lentas.
+ `slow_query_log` debe estar habilitado.
+ `log_output` debe establecerse en `FILE`.
+ La consulta debe tardar más tiempo que el tiempo configurado para `long_query_time`.

Para obtener más información sobre la el registro de consultas lentas y el registro general, consulte los siguientes temas de la documentación de MySQL:
+ [El registro de consultas lentas](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html)
+ [El registro de consultas generales](https://dev.mysql.com/doc/refman/8.0/en/query-log.html)

## Registro de auditoría de MySQL
<a name="USER_LogAccess.MySQL.Auditlog"></a>

Para acceder al registro de auditoría, la instancia de base de datos debe usar un grupo de opciones personalizado con la opción `MARIADB_AUDIT_PLUGIN`. Para obtener más información, consulte [Compatibilidad con el complemento de auditoría de MariaDB para MySQL](Appendix.MySQL.Options.AuditPlugin.md).

## Rotación y retención de registros en RDS para MySQL
<a name="USER_LogAccess.MySQL.LogFileSize.retention"></a>

Cuando el registro está habilitado, Amazon RDS rota los registros de las tablas o elimina los archivos de registro a intervalos regulares. Esta medida es una precaución para reducir el riesgo de que un archivo de registro grande bloquee el uso de la base de datos o afecte al desempeño. RDS para MySQL gestiona la rotación y la eliminación de la siguiente manera:
+ El tamaño de los archivos de registro de consultas lentas, registro de errores y registro general de MySQL está limitado al 2 por ciento del espacio de almacenamiento asignado a una instancia de base de datos. Para mantener este umbral, los registros se rotan automáticamente cada hora. MySQL elimina los archivos de registro de más de dos semanas de antigüedad. Si el tamaño combinado de los archivos de registro sobrepasa el umbral después de eliminar los archivos de registro antiguos, los archivos de registro más grandes se eliminan hasta que el tamaño del archivo de registro deje de sobrepasar el umbral.
+ Cuando se habilita el registro `FILE`, los archivos de registro se examinan cada hora y se eliminan los archivos de registro de más de dos semanas de antigüedad. En algunos casos, el tamaño restante del archivo de registro combinado después de la eliminación puede superar el umbral del 2 por ciento del espacio asignado a una instancia de base de datos. En estos casos, los archivos de registro más antiguos se eliminan hasta que el tamaño del archivo de registro no sobrepase el umbral.
+ Cuando el registro de tipo `TABLE` está habilitado, en algunos casos, las tablas de registro se rotan cada 24 horas. Esta rotación de produce cuando el espacio ocupado por los registros de tabla es superior al 20% del espacio de almacenamiento asignado. También ocurre si el tamaño de todos los registros combinados es superior a 10 GB. Si la cantidad de espacio utilizada para una instancia de base de datos es superior al 90 % del espacio de almacenamiento asignado a la instancia de base de datos, se reducen los umbrales de la rotación de registros. Las tablas de registro se rotan si el espacio ocupado por los registros de tabla es superior al 10 % del espacio de almacenamiento asignado. También rotan si el tamaño de todos los registros combinados es superior a 5 GB. Puede suscribirse a la categoría de evento `low storage` para recibir una notificación cuando roten las tablas de registro para liberar espacio. Para obtener más información, consulte [Uso de notificaciones de eventos de Amazon RDS](USER_Events.md).

  Cuando se rotan las tablas de registro, la tabla de registro actual se copia primero en una tabla de registro de copia de seguridad. A continuación, se eliminan las entradas de la tabla de registro actual. Si la tabla de registro de copia de seguridad ya existe, se elimina antes de copiar la tabla del registro actual en la 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`. La tabla de registro de copia de seguridad para la tabla `mysql.slow_log` se llama `mysql.slow_log_backup`.

  Para rotar la tabla `mysql.general_log` puede ejecutar el procedimiento `mysql.rds_rotate_general_log`. Para rotar la tabla `mysql.slow_log` puede ejecutar el procedimiento `mysql.rds_rotate_slow_log`.

  Los registros de tabla se rotan durante una actualización de la versión de la base de datos.

Para trabajar con los registros desde la consola de Amazon RDS, la API de Amazon RDS, la CLI de Amazon RDS o los SDK de AWS, configure el parámetro `log_output` en FILE. Al igual que el registro de errores de MySQL, estos archivos de registro rotan cada hora. Se retienen los archivos de registro que se generaron durante las dos semanas anteriores. Tenga en cuenta que el período de retención es diferente entre Amazon RDS y Aurora.

## Límites de tamaño en registro REDO
<a name="USER_LogAccess.MySQL.LogFileSize.RedoLogs"></a>

Para la versión 8.0.32 y anteriores de RDS para MySQL, el valor predeterminado de este parámetro es 256 MB. Esta cantidad se obtiene multiplicando el valor predeterminado del parámetro `innodb_log_file_size` (128 MB) por el valor predeterminado del parámetro `innodb_log_files_in_group` (2). Para obtener más información, consulte [Best practices for configuring parameters for Amazon RDS for MySQL, part 1: Parameters related to performance](https://aws.amazon.com/blogs/database/best-practices-for-configuring-parameters-for-amazon-rds-for-mysql-part-1-parameters-related-to-performance/). 

Para la versión 8.0.33 de RDS para MySQL y versiones menores posteriores, Amazon RDS utiliza el parámetro `innodb_redo_log_capacity` en lugar del parámetro `innodb_log_file_size`. El valor predeterminado en Amazon RDS del parámetro `innodb_redo_log_capacity` es 2 GB. Para obtener más información, consulte [Cambios en MySQL 8.0.30](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-30.html), en la documentación de MySQL.

A partir de MySQL 8.4, Amazon RDS habilita el parámetro `innodb_dedicated_server` de forma predeterminada. Con el parámetro `innodb_dedicated_server`, el motor de base de datos calcula los parámetros `innodb_buffer_pool_size` y `innodb_redo_log_capacity`. Para obtener más información, consulte [Configuración del tamaño del grupo de búferes y la capacidad de registros redo en MySQL 8.4](Appendix.MySQL.CommonDBATasks.Config.Size.8.4.md).

# Publicación de registros de MySQL en Amazon CloudWatch Logs
<a name="USER_LogAccess.MySQLDB.PublishtoCloudWatchLogs"></a>

Se puede configurar una instancia de base de datos MySQL para publicar datos de registro en un grupo de registros en Amazon CloudWatch Logs. Con CloudWatch Logs, puede realizar análisis en tiempo real de los datos de registro y utilizar CloudWatch para crear alarmas y ver métricas. Puede utilizar CloudWatch Logs para almacenar los registros de registros en almacenamiento de larga duración. 

Amazon RDS publica cada registro de base de datos de MySQL como un flujo de base de datos independiente en el grupo de registros. Por ejemplo, si configura la función de exportación para que incluya el registro de consultas lentas, los datos de consultas lentas se almacenan en un flujo de registros de consultas lentas en el grupo de registros `/aws/rds/instance/my_instance/slowquery`. 

El registro de errores están habilitados de forma predeterminada. La tabla siguiente resume los requisitos para los otros registros de MySQL.


| Registro | Requisito | 
| --- | --- | 
|  Registro de auditoría  |  La instancia de base de datos debe usar un grupo de opciones personalizado con la opción `MARIADB_AUDIT_PLUGIN`.  | 
|  Registro general  |  La instancia de base de datos debe usar un grupo de parámetros personalizado con la configuración del parámetro `general_log = 1` para habilitar el registro general.  | 
|  Registro de consultas lentas  |  La instancia de base de datos debe usar un grupo de parámetros personalizado con la configuración del parámetro `slow_query_log = 1` para habilitar el registro de consultas lentas.  | 
|  Registro de errores de autenticación de base de datos de IAM  |  Debe habilitar el tipo de registro `iam-db-auth-error` para una instancia de base de datos mediante la creación o modificación de una instancia de base de datos.  | 
|  Resultado de registro  |  La instancia de base de datos debe usar un grupo de parámetros personalizado con la configuración del parámetro `log_output = FILE` para escribir registros en el sistema de archivos y publicarlos en CloudWatch Logs.  | 

## Consola
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CON"></a>

**Para publicar registros de base de datos MySQL en CloudWatch Logs con la consola**

1. Abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Databases (Bases de datos)** y, a continuación, seleccione la instancia de base de datos que desee modificar.

1. Elija **Modify**.

1. En la sección **Logs exports (Exportaciones de registros)**, elija los registros que desea comenzar a publicar en CloudWatch Logs.

1. Elija **Continue**, seguido de **Modify DB Instance** en la página de resumen.

## AWS CLI
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.CLI"></a>

 Puede publicar registros de MySQL con la AWS CLI. Puede llamar al comando [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) con los parámetros siguientes: 
+ `--db-instance-identifier`
+ `--cloudwatch-logs-export-configuration`

**nota**  
Los cambios en la opción `--cloudwatch-logs-export-configuration` siempre se aplican a la instancia de base de datos inmediatamente. Por lo tanto, las opciones `--apply-immediately` y `--no-apply-immediately` no tienen ningún efecto.

También puede publicar registros de MySQL llamando a los siguientes comandos de AWS CLI: 
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-s3.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html)

Ejecute uno de estos comandos de la AWS CLI con las siguientes opciones: 
+ `--db-instance-identifier`
+ `--enable-cloudwatch-logs-exports`
+ `--db-instance-class`
+ `--engine`

Podrían ser necesarias otras opciones en función del comando de la AWS CLI que ejecute.

**Example**  
En el siguiente ejemplo se modifica una instancia de base de datos MySQL DB para publicar archivos de registro en CloudWatch Logs. El valor `--cloudwatch-logs-export-configuration` es un objeto JSON. La clave de este objeto es `EnableLogTypes` y su valor es una matriz de cadenas con cualquier combinación de `audit`, `error`, `general` y `slowquery`.  
Para Linux, macOS o Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```
Para Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
```

**Example**  
En el siguiente ejemplo se crea una instancia de base de datos MySQL y se publican archivos de registro en CloudWatch Logs. El valor `--enable-cloudwatch-logs-exports` es una matriz de cadenas JSON. Las cadenas pueden ser cualquier combinación de `audit`, `error`, `general` y `slowquery`.  
Para Linux, macOS o Unix:  

```
1. aws rds create-db-instance \
2.     --db-instance-identifier mydbinstance \
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \
4.     --db-instance-class db.m4.large \
5.     --engine MySQL
```
Para Windows:  

```
1. aws rds create-db-instance ^
2.     --db-instance-identifier mydbinstance ^
3.     --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^
4.     --db-instance-class db.m4.large ^
5.     --engine MySQL
```

## API de RDS
<a name="USER_LogAccess.MySQL.PublishtoCloudWatchLogs.API"></a>

Puede publicar registros de MySQL con la API de RDS. Puede llamar a la acción [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) con los parámetros siguientes: 
+ `DBInstanceIdentifier`
+ `CloudwatchLogsExportConfiguration`

**nota**  
Los cambios en el parámetro `CloudwatchLogsExportConfiguration` siempre se aplican a la instancia de base de datos inmediatamente. Por tanto, el parámetro `ApplyImmediately` no tiene efecto.

También puede publicar registros de MySQL llamando a las siguientes operaciones de la API de RDS: 
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromS3.html)
+ [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html)

Ejecute una de estas operaciones de la API de RDS con los siguientes parámetros: 
+ `DBInstanceIdentifier`
+ `EnableCloudwatchLogsExports`
+ `Engine`
+ `DBInstanceClass`

Podrían ser necesarios otros parámetros en función del comando de la AWS CLI que ejecute.

# Envío de la salida del registro de MySQL a las tablas
<a name="Appendix.MySQL.CommonDBATasks.Logs"></a>

Para dirigir los registros general y de consultas lentas a tablas de la instancia de base de datos, cree un grupo de parámetros de base de datos y asigne al parámetro `log_output` del servidor el valor `TABLE`. Las consultas generales se registrarán entonces en la tabla `mysql.general_log` y las consultas lentas en la tabla `mysql.slow_log`. Puede consultar las tablas para obtener acceso a la información del registro. Al habilitar este registro, se incrementa la cantidad de datos que se escribe en la base de datos, lo que puede degradar el desempeño.

Tanto el registro general como los registros de consultas lentas están deshabilitados de manera predeterminada. Para habilitar el registro en tablas, también debe asignar a los parámetros `general_log` y `slow_query_log` del servidor el valor `1`.

Las tablas de registro seguirán creciendo hasta que las actividades de registro respectivas se desactiven cambiando el valor del parámetro a `0`. A menudo, se acumula una gran cantidad de datos, lo que puede consumir un porcentaje elevado del espacio de almacenamiento asignado. Amazon RDS no permite truncar las tablas de registro, pero sí mover su contenido. Al rotar una tabla, su contenido se guarda en una tabla de copia de seguridad y se crea una nueva tabla de registro vacía. Puede aplicar manualmente la rotación de las tablas de registro con los procedimientos de línea de comandos siguientes, en los que el símbolo del sistema se representa por:`PROMPT>` 

```
PROMPT> CALL mysql.rds_rotate_slow_log;
PROMPT> CALL mysql.rds_rotate_general_log;
```

Para eliminar por completo los datos antiguos y recuperar el espacio del disco, llame al procedimiento correspondiente dos veces consecutivas. 

# Configuración del registro binario de RDS para MySQL para bases de datos Single-AZ
<a name="USER_LogAccess.MySQL.BinaryFormat"></a>

El *registro binario* es un conjunto de archivos de registro que contienen información acerca de las modificaciones de datos hechas en una instancia de servidor de MySQL. El registro binario contiene información como la siguiente:
+ Eventos que describen cambios en la base de datos, como la creación de tablas o las modificaciones de filas.
+ Información sobre la duración de cada instrucción que actualizó los datos.
+ Eventos para instrucciones que podrían haber actualizado datos, pero que no lo hicieron.

El registro binario registra las instrucciones que se envían durante la replicación. También es necesario para algunas operaciones de recuperación. Para obtener más información, consulte [The Binary Log](https://dev.mysql.com/doc/refman/8.0/en/binary-log.html) en la documentación de MySQL.

La característica de copias de seguridad automatizadas determina si el registro binario se activa o desactiva para MySQL. Dispone de las opciones siguientes:

Activar el registro binario.  
Establecer el periodo de retención de copia de seguridad en un valor positivo distinto de cero.

Desactivar el registro binario.  
Establecer el periodo de retención de copia de seguridad en cero.

Para obtener más información, consulte [Habilitar las copias de seguridad automatizadas](USER_WorkingWithAutomatedBackups.Enabling.md).

MySQL en Amazon RDS admite los formatos de registro binario *basado en filas*, *basado en instrucciones* y *mixto*. Recomendamos mezclarlos, a menos que necesite un formato binlog concreto. Para obtener información detallada acerca de los formatos de registro binarios de MySQL, consulte [Binary logging formats](https://dev.mysql.com/doc/refman/8.0/en/binary-log-formats.html) en la documentación de MySQL.

Si tiene pensado utilizar la replicación, el formato de registro binario es importante porque determina el registro de los cambios de datos que se registra en la fuente y se envía a los objetivos de replicación. Para obtener más información acerca de las ventajas y desventajas de distintos tipos de formatos de registro binarios para la replicación, consulte [Advantages and Disadvantages of Statement-Based and Row-Based Replication](https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html) en la documentación de MySQL.

**importante**  
Con MySQL 8.0.34, MySQL ha dejado de utilizar el parámetro `binlog_format`. En versiones posteriores de MySQL, MySQL planea eliminar el parámetro y admitir únicamente la replicación basada en filas. Por ello, recomendamos utilizar el registro basado en filas para las nuevas configuraciones de replicación de MySQL. Para obtener más información, consulte [binlog\$1format](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_format) en la documentación de MySQL.  
Las versiones 8.0 y 8.4 de MySQL aceptan el parámetro `binlog_format`. Al usar este parámetro, MySQL emite una advertencia de obsolescencia. En una futura versión principal, MySQL eliminará el parámetro `binlog_format`.  
La replicación basada en instrucciones puede causar incoherencias entre el de la instancia de base de datos de origen y la réplica de lectura. Para obtener más información, consulte [Determination of Safe and Unsafe Statements in Binary Logging](https://dev.mysql.com/doc/refman/8.0/en/replication-rbr-safe-unsafe.html) en la documentación de MySQL.  
Habilitar el registro binario aumenta el número de operaciones de E/S de escritura en el disco en la instancia de base de datos. Puede supervisar el uso de IOPS con la métrica de CloudWatch `WriteIOPS```.

**Para configurar el formato de registro binario de MySQL**

1. Abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, seleccione **Grupos de parámetros**.

1. Seleccione el grupo de parámetros del de base de datos asociado con la instancia de base de datos que quiera modificar.

   No puede modificar un grupo de parámetros predeterminado. Si el de la instancia de base de datos emplea un grupo de parámetros predeterminado, cree un nuevo grupo de parámetros y asócielo con el de la instancia de base de datos.

   Para obtener más información acerca de los grupos de parámetros, consulte [Grupos de parámetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. En **Acciones**, elija **Editar**.

1. Establezca el parámetro `binlog_format` en el formato de registro binario de su elección (`ROW`, `STATEMENT` o `MIXED`).

   Para desactivar el registro binario establezca el período de retención de copias de seguridad de una instancia de base de datos en cero. Tenga en cuenta que esto deshabilita las copias de seguridad automatizadas diarias. Al deshabilitar las copias de seguridad automatizadas, se desactiva o deshabilita la variable de sesión `log_bin`. Esto deshabilita el registro binario en la instancia de base de datos de RDS para MySQL, lo que a su vez restablece la variable de sesión `binlog_format` al valor predeterminado de `ROW` en la base de datos. Se recomienda no deshabilitar las copias de seguridad. Para obtener más información acerca de la configuración del **Período de retención de copia de seguridad**, consulte [Configuración de instancias de base de datos](USER_ModifyInstance.Settings.md).

1. Elija **Guardar cambios** para guardar los cambios realizados en el grupo de parámetros del de la base de datos.

Dado que el parámetro `binlog_format` es dinámico en RDS para MySQL, no es necesario reiniciar la instancia de base de datos para que se apliquen los cambios. (Tenga en cuenta que en Aurora MySQL, este parámetro es estático. Para obtener más información, consulte [Configuración del registro binario de Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.BinaryFormat.html).)

**importante**  
El cambio de un grupo de parámetros de base de datos afecta a todas las instancias de base de datos que utilizan ese grupo de parámetros. Si desea especificar diferentes formatos de registro binario para diferentes instancias de base de datos MySQL en una región AWS, las instancias de base de datos deben utilizar diferentes grupos de parámetros de base de datos. Estos grupos de parámetros identifican diferentes formatos de registro. Asigne el grupo de parámetros de base de datos apropiado a cada instancia de base de datos.

# Configuración del registro binario de MySQL para clústeres de bases de datos multi-AZ
<a name="USER_Binlog.MultiAZ"></a>

El registro binario en los clústeres de bases de datos multi-AZ de Amazon RDS para MySQL registra todos los cambios en la base de datos para facilitar la replicación, la recuperación en un momento dado y la auditoría. En los clústeres de bases de datos multi-AZ, los registros binarios sincronizan los nodos secundarios con el nodo principal, lo que garantiza la coherencia de datos en todas las zonas de disponibilidad y permite realizar conmutaciones por error perfectas. 

Para optimizar el registro binario, Amazon RDS admite la compresión de transacciones de registros binarios, lo que reduce los requisitos de almacenamiento de los registros binarios y mejora la eficacia de la replicación.

**Topics**
+ [Compresión de transacciones de registros binarios para clústeres de bases de datos multi-AZ](#USER_Binlog.MultiAZ.compression)
+ [Configuración de la compresión de transacciones de registros binarios para clústeres de bases de datos multi-AZ](#USER_Binlog.MultiAZ.configuring)

## Compresión de transacciones de registros binarios para clústeres de bases de datos multi-AZ
<a name="USER_Binlog.MultiAZ.compression"></a>

La compresión de transacciones de registros binarios utiliza el algoritmo zstd para reducir el tamaño de los datos de transacciones almacenados en los registros binarios. Cuando está habilitado, el motor de base de datos MySQL comprime las cargas útiles de las transacciones en un solo evento, lo que minimiza la sobrecarga de E/S y almacenamiento. Esta característica mejora el rendimiento de la base de datos, reduce el tamaño de los registros binarios y optimiza el uso de recursos para administrar y replicar los registros en clústeres de bases de datos multi-AZ.

Amazon RDS proporciona compresión de transacciones de registros binarios para clústeres de base de datos multi-AZ de RDS para MySQL mediante los parámetros siguientes:
+ `binlog_transaction_compression`: cuando está activado (`1`), el motor de base de datos comprime las cargas útiles de las transacciones y las graba en el registro binario como un evento único. Esto reduce el uso de almacenamiento y la sobrecarga de E/S. Este parámetro está deshabilitado de forma predeterminada.
+ `binlog_transaction_compression_level_zstd`: configura el nivel de compresión estándar para las transacciones de registros binarios. Los valores más altos aumentan la relación de compresión, lo que reduce aún más los requisitos de almacenamiento, pero incrementan el uso de CPU y memoria para la compresión. El valor predeterminado es 3, con un rango de 1 a 22.

Estos parámetros le permiten afinar la compresión de registros binarios en función de las características de la carga de trabajo y la disponibilidad de los recursos. Para obtener más información, consulte [Binary Log Transaction Compression](https://dev.mysql.com/doc/refman/8.4/en/binary-log-transaction-compression.html) en la documentación de MySQL.

La compresión de transacciones de registros binarios tiene las siguientes ventajas principales:
+ La compresión reduce el tamaño de los registros binarios, especialmente en el caso de cargas de trabajo con transacciones grandes o volúmenes de escritura elevados.
+ Los registros binarios más pequeños reducen la sobrecarga de red y de E/S, lo que mejora el rendimiento de la replicación.
+ El parámetro `binlog_transaction_compression_level_zstd` permite controlar el equilibrio entre la relación de compresión y el consumo de recursos.

## Configuración de la compresión de transacciones de registros binarios para clústeres de bases de datos multi-AZ
<a name="USER_Binlog.MultiAZ.configuring"></a>

Para configurar la compresión de transacciones de registros binarios para un clúster de base de datos multi-AZ de RDS para MySQL, modifique la configuración de los parámetros del clúster correspondiente para adaptarla a sus requisitos de carga de trabajo.

### Consola
<a name="USER_Binlog.MultiAZ.configuring-console"></a>

**Habilitación de la compresión de transacciones de registros binarios**

1. Modifique el grupo de parámetros del clúster de bases de datos para establecer el parámetro `binlog_transaction_compression` en `1`.

1. (Opcional) Ajuste el valor del parámetro `binlog_transaction_compression_level_zstd` en función de los requisitos de carga de trabajo y la disponibilidad de los recursos.

Para obtener más información, consulte [Modificación de los parámetros en un grupo de parámetros de clúster de base de datos ](USER_WorkingWithParamGroups.ModifyingCluster.md).

### AWS CLI
<a name="USER_Binlog.MultiAZ.configuring-cli"></a>

Para configurar la compresión de transacciones de registros binarios mediante la AWS CLI, utilice el comando [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html).

**Example**  
Para Linux, macOS o Unix:  

```
aws rds modify-db-cluster-parameter-group \
  --db-cluster-parameter-group-name your-cluster-parameter-group \
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```
Para Windows:  

```
aws rds modify-db-cluster-parameter-group ^
  --db-cluster-parameter-group-name your-cluster-parameter-group ^
  --parameters "ParameterName=binlog_transaction_compression,ParameterValue=1,ApplyMethod=pending-reboot"
```

### API de RDS
<a name="USER_Binlog.MultiAZ.configuring-api"></a>

Para configurar la compresión de transacciones de registros binarios mediante la API de Amazon RDS, utilice la operación [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBClusterParameterGroup.html).

# Acceso a los registros binarios de MySQL
<a name="USER_LogAccess.MySQL.Binarylog"></a>

Puede usar la herramienta mysqlbinlog para descargar o transmitir los registros binarios desde las instancias de Amazon RDS para MySQL. El registro binario se descarga en el equipo local, donde puede ejecutar acciones tales como reproducirlo con la utilidad mysql. Para obtener más información acerca del uso de la herramienta mysqlbinlog, consulte [Using mysqlbinlog to Back Up Binary Log Files](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-backup.html) (Uso de mysqlbinlog para realizar copias de seguridad de archivos de registro binarios) en la documentación de MySQL.

Para ejecutar la utilidad mysqlbinlog en una instancia de Amazon RDS, use las siguientes opciones:
+ `--read-from-remote-server`: obligatorio.
+ `--host`: el nombre de DNS del punto de conexión de la instancia.
+ `--port`: el puerto que utiliza la instancia.
+ `--user`: un usuario de MySQL al que se le concede el permiso `REPLICATION SLAVE`.
+ `--password`: la contraseña del usuario de MySQL, o bien no indique ninguna para que la herramienta le pida una.
+ `--raw`: descargue el archivo en formato binario.
+ `--result-file`: el archivo local en que se guardará la salida sin procesar.
+ `--stop-never`: transmita los archivos de registro binarios.
+ `--verbose`: cuando utilice el formato binlog de `ROW`, incluya esta opción para ver los eventos de fila como instrucciones pseudo-SQL. Para obtener más información acerca de la opción `--verbose`, consulte [mysqlbinlog row event display](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog-row-events.html) (Visualización de eventos de fila mysqlbinlog) en la documentación de MySQL.
+ Especifique los nombres de uno o varios de los archivos de registro binarios. Para obtener una lista de los registros disponibles, use el comando de SQL `SHOW BINARY LOGS`.

Para obtener más información acerca de las opciones de mysqlbinlog, consulte [mysqlbinlog - Utility for Processing Binary Log Files](https://dev.mysql.com/doc/refman/8.0/en/mysqlbinlog.html) (mysqlbinlog - Utilidad para procesar archivos de registro binarios) en la documentación de MySQL.

En los siguientes ejemplos, se muestra cómo utilizar la herramienta mysqlbinlog.

Para Linux, macOS o Unix:

```
mysqlbinlog \
    --read-from-remote-server \
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com \
    --port=3306  \
    --user ReplUser \
    --password \
    --raw \
    --verbose \
    --result-file=/tmp/ \
    binlog.00098
```

Para Windows:

```
mysqlbinlog ^
    --read-from-remote-server ^
    --host=MySQLInstance1.cg034hpkmmjt.region.rds.amazonaws.com ^
    --port=3306  ^
    --user ReplUser ^
    --password ^
    --raw ^
    --verbose ^
    --result-file=/tmp/ ^
    binlog.00098
```

Los registros binarios deben permanecer disponibles en la instancia de base de datos para que la utilidad mysqlbinlog pueda acceder a ellos. Para garantizar su disponibilidad, utilice el procedimiento [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) almacenado y especifique un periodo con tiempo suficiente para descargar los registros. Si esta configuración no está establecida, Amazon RDS purga los registros binarios lo antes posible, lo que genera huecos en los registros binarios que recupera la utilidad mysqlbinlog. 

En el siguiente ejemplo se define el periodo de retención en 1 día.

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

Para mostrar el valor actual, utilice el procedimiento almacenado [mysql.rds\$1show\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_show_configuration).

```
call mysql.rds_show_configuration;
```