Trabajo con réplicas de lectura de instancias de base de datos - Amazon Relational Database Service

Trabajo con réplicas de lectura de instancias de base de datos

Una réplica de lectura es una copia de solo lectura de una instancia de base de datos. Puede reducir la carga de la instancia de la base de datos principal enrutando las consultas de sus aplicaciones a la réplica de lectura. De este modo, puede ajustar la escala horizontalmente y de manera elástica por encima de las restricciones de capacidad de una instancia de base de datos para las cargas de trabajo de las bases de datos con operaciones intensivas de lectura.

Para crear una réplica de lectura a partir de una instancia de base de datos de origen, Amazon RDS usa las características de replicación integradas del motor de base de datos. Para obtener información sobre la utilización de las réplicas de lectura con un motor específico, consulte las secciones siguientes:

Tras crear una réplica de lectura a partir de una instancia de base de datos de origen, el origen se convierte en la instancia de base de datos principal. Al realizar actualizaciones en la instancia de base de datos principal, Amazon RDS las copia de forma asíncrona en la réplica de lectura. El siguiente diagrama muestra una instancia de base de datos de origen que se replica en una réplica de lectura en una zona de disponibilidad (AZ) diferente. Los clientes tienen acceso de lectura/escritura a la instancia de base de datos principal y acceso de solo lectura a la réplica.

Configuración de réplicas de lectura

Las réplicas de lectura se facturan como instancias de base de datos estándar con las mismas tarifas que la clase de instancia de base de datos utilizada para la réplica. No se le cobrará por los gastos de transferencia de datos en los que se incurra al replicar datos entre la instancia de base de datos de origen y la réplica de lectura de la misma Región de AWS. Para obtener más información, consulte Costos de la replicación entre regiones y Facturación de instancia de base de datos para Amazon RDS.

Información general de las réplicas de lectura de Amazon RDS

En las siguientes secciones se describen las réplicas de lectura de instancia de base de datos. Para obtener más información acerca de las réplicas de lectura de clúster de base de datos multi-AZ, consulte Uso de réplicas de lectura de clústeres de base de datos multi-AZ para Amazon RDS.

Casos de uso de réplicas de lectura

La implementación de una o varias réplicas de lectura para una instancia de base de datos de origen puede tener sentido en diversas situaciones, como las siguientes:

  • Aumentar la escala por encima de la capacidad de E/S o de computación de una instancia de base de datos para las cargas de trabajo de las bases de datos con operaciones intensivas de lectura. Puede dirigir este exceso del tráfico de lectura a una o varias réplicas de lectura.

  • Servir tráfico de lectura cuando la instancia de base de datos de origen no está disponible. En algunos casos, es posible que su instancia de base de datos de origen no pueda aceptar solicitudes de E/S, por ejemplo, debido a la suspensión de E/S para las copias de seguridad o el mantenimiento programado. En estos casos, puede dirigir el tráfico de lectura a sus réplicas de lectura. En este caso de uso, recuerde que los datos de la réplica de lectura pueden estar "obsoletos" porque la instancia de base de datos de origen no está disponible.

  • Las situaciones de informes de negocios o de almacenamiento de datos en las que se desea que las consultas de informes de negocios se ejecuten en una réplica de lectura y no en la instancia de base de datos de producción.

  • Implementación de recuperación de desastres Puede promocionar una réplica de lectura en la instancia independiente como solución de recuperación de desastres si la instancia de base de datos principal produce un error.

Cómo funcionan las réplicas de lectura

Cuando se crea una réplica de lectura, primero se especifica una instancia de base de datos existente como origen. A continuación, Amazon RDS realiza una instantánea de la instancia de origen y crea una instancia de solo lectura a partir de la instantánea. Luego, Amazon RDS utiliza el método de reproducción asíncrono para que el motor de base de datos actualice la réplica de lectura cuando se produzca un cambio en la instancia de base de datos primaria.

La réplica de lectura funciona como una instancia de base de datos que permite únicamente conexiones de solo lectura. Una excepción es el motor de base de datos RDS para Oracle, que admite bases de datos de réplica en modo montado. Una réplica montada no acepta conexiones de usuario y, por lo tanto, no puede servir una carga de trabajo de solo lectura. El uso principal de las réplicas montadas es la recuperación de desastres entre regiones. Para obtener más información, consulte Trabajo con las réplicas de lectura para Amazon RDS para Oracle.

Las aplicaciones se conectan a una réplica de lectura de la misma forma que a cualquier instancia de base de datos. Amazon RDS replica todas las bases de datos de la instancia de base de datos de origen.

Lectura de réplicas en una implementación multi-AZ

Se puede configurar una réplica de lectura para una instancia de base de datos que también tenga una réplica en espera configurada para alta disponibilidad en una implementación Multi-AZ. Una replicación con la réplica en espera es sincrónica. A diferencia de una réplica de lectura, una réplica en espera no puede servir tráfico de lectura.

En el siguiente escenario, los clientes tienen acceso de lectura/escritura a una instancia de base de datos principal en una AZ. La instancia principal copia las actualizaciones de forma asincrónica en una réplica de lectura en una segunda AZ y también las copia de forma sincrónica en una réplica en espera en una tercera AZ. Los clientes solo tienen acceso de lectura a la réplica de lectura.

Configuración de réplica de lectura y de réplica en espera

Para obtener más información acerca de las réplicas de alta disponibilidad y en espera, consulte Configuración y administración de una implementación multi-AZ para Amazon RDS.

Réplicas de lectura entre regiones

En algunos casos, una réplica de lectura reside en una Región de AWS distinta de la de su instancia de base de datos principal. En esos casos, Amazon RDS configura un canal de comunicaciones seguro entre la instancia de base de datos primaria y la réplica de lectura. Amazon RDS establece cualquier configuración de seguridad de AWS necesarias para habilitar el canal seguro, por ejemplo agregar entradas de grupo de seguridad. Para obtener información sobre las réplicas de lectura entre regiones, consulte Creación de una réplica de lectura en una Región de AWS distinta.

La información de este capítulo hace referencia a la creación de réplicas de lectura de Amazon RDS, ya sea en la misma Región de AWS que la instancia de base de datos de origen o en una Región de AWS diferente. La siguiente información no es válida para configurar la replicación con una instancia que se ejecute en una instancia de Amazon EC2 o que esté instalada localmente.

Diferencias entre las réplicas de lectura para motores de base de datos

Debido a que los motores de base de datos de Amazon RDS implementan la replicación de forma diferente, existen diferencias importantes que debe conocer, como se muestra en la siguiente tabla.

Característica o comportamiento MySQL y MariaDB Oracle PostgreSQL SQL Server

¿Qué es el método de replicación?

Replicación lógica.

Replicación física.

Replicación física.

Replicación física.

¿Cómo se purgan los registros de transacciones?

RDS para MySQL y RDS para MariaDB conservan registros binarios que no fueron aplicados.

Si una instancia de base de datos principal no tiene réplicas de lectura entre regiones, Amazon RDS para Oracle mantiene durante un mínimo de dos horas los registros de transacciones en la instancia de base de datos de origen. Los registros se purgan de la base de datos de origen después de dos horas o cuando hayan pasado las horas de retención del registro del archivo establecidas, lo que lleve más tiempo. Los registros se purgan de la réplica de lectura después de haber pasado las horas de retención del registro del archivo establecidas solo si se han aplicado correctamente a la base de datos.

En algunos casos, es posible que una instancia de base de datos principal tenga una o más réplicas de lectura entre regiones. Si esto ocurre, Amazon RDS para Oracle mantiene los registros de transacción en la instancia de base de datos de origen hasta que se hayan transmitido y aplicado a todas las réplicas de lectura entre regiones.

Para obtener información acerca de cómo configurar las horas de retención del registro de archivo, consulte Retención de los registros REDO archivados.

PostgreSQL cuenta con el parámetro wal_keep_segments, que establece cuántos archivos de registro de escritura previa (WAL) se conservan para proporcionar datos a las réplicas de lectura. El valor del parámetro especifica el número de registros que conservar.

El archivo de registro virtual (VLF) del archivo de registro de transacciones en la réplica principal se puede truncar después de que ya no sea necesario para las réplicas secundarias.

El VLF solo se puede marcar como inactivo cuando los registros se han reforzado en las réplicas. Independientemente de lo rápido que los subsistemas de disco estén en la réplica principal, el registro de transacciones mantendrá los VLF hasta que la réplica más lenta se haya reforzado.

¿Se puede hacer escribible una réplica?

Sí. Puede habilitar las réplicas de lectura de MySQL o de MariaDB para escritura.

No. Una réplica de lectura de Oracle es una copia física y Oracle no permite escribir en una réplica de lectura. Puede promocionar la réplica de lectura para que sea de escritura. La réplica de lectura promocionada tiene los datos replicados hasta el momento en el que se hizo la solicitud para promocionarla.

No. Una réplica de lectura de PostgreSQL es una copia física y PostgreSQL no permite que una réplica de lectura sea de escritura.

No. Una réplica de lectura de SQL Server es una copia física y SQL Server no permite escribir en una réplica de lectura. Puede promocionar la réplica de lectura para que sea de escritura. La réplica de lectura promocionada tiene los datos replicados hasta el momento en el que se hizo la solicitud para promocionarla.

¿Pueden hacerse copias de seguridad en la réplica?

Sí. Las réplicas de lectura de RDS para MySQL o RDS para MariaDB admiten copias de seguridad automáticas e instantáneas manuales.

Sí. Las réplicas de lectura de RDS para MySQL o RDS para MariaDB se admiten en réplicas de lectura de RDS para Oracle.

Sí, puede crear una instantánea manual de RDS para las réplicas de lectura de PostgreSQL. Las copias de seguridad automatizadas para réplicas de lectura se admiten únicamente para RDS para PostgreSQL 14.1 y versiones posteriores. No puede activar las copias de seguridad automatizadas para las réplicas de lectura de RDS para PostgreSQL de versiones anteriores a 14.1. Para RDS para PostgreSQL 13 y versiones anteriores, cree una instantánea a partir de una réplica de lectura si desea realizar una copia de seguridad de ella.

No. Las réplicas de lectura de RDS para MySQL o RDS para MariaDB no se admiten en réplicas de lectura de RDS para SQL Server.

¿Se puede usar la replicación paralela?

Sí. Todas las versiones de MariaDB y MySQL compatibles permiten subprocesos de replicación paralela.

Sí. Los datos de registro de REDO siempre se transmiten en paralelo desde la base de datos principal a todas sus réplicas de lectura.

No. PostgreSQL tiene un único proceso para gestionar la replicación.

Sí. Los datos de registro de REDO siempre se transmiten en paralelo desde la base de datos principal a todas sus réplicas de lectura.

¿Puede mantener una réplica en un estado montado en lugar de en un estado de solo lectura?

No.

Sí. El uso principal de las réplicas montadas es la recuperación de desastres entre regiones. No se requiere una licencia Active Data Guard para las réplicas montadas. Para obtener más información, consulte Trabajo con las réplicas de lectura para Amazon RDS para Oracle.

No.

No.

Tipos de almacenamiento de las réplicas de lectura

De forma predeterminada, una réplica de lectura se crea con el mismo tipo de almacenamiento que la instancia de base de datos de origen. Sin embargo, puede crear una réplica de lectura que tenga un tipo de almacenamiento distinto del de la instancia de base de datos de origen en función de las opciones que se muestran en la siguiente tabla.

Tipo de almacenamiento de la instancia de base de datos de origen Asignación de almacenamiento de la instancia de base de datos de origen Opciones del tipo de almacenamiento de las réplicas de lectura
Provisioned IOPS (IOPS aprovisionadas) 100 GiB–64 TiB IOPS aprovisionadas, uso general, magnético
Uso general 100 GiB–64 TiB IOPS aprovisionadas, uso general, magnético
Uso general <100 GiB Uso general, magnético
Magnético 100 GiB–6 TiB IOPS aprovisionadas, uso general, magnético
Magnético <100 GiB Uso general, magnético
nota

Cuando aumenta el almacenamiento asignado de una réplica de lectura, debe ser de al menos un 10 por ciento. Si intenta aumentar el valor en menos del 10 por ciento, obtendrá un error.

Restricciones para crear una réplica a partir de una réplica

Amazon RDS no admite la replicación circular. No puede configurar una instancia de base de datos para que sirva como origen de replicación para una instancia de base de datos existente. Solo puede crear una nueva réplica de lectura desde una instancia de base de datos existente. Por ejemplo, si MySourceDBInstance se replica en ReadReplica1, no puede configurar ReadReplica1 para volverse a replicar en MySourceDBInstance.

Para RDS para MariaDB y RDS para MySQL, y en determinadas versiones de RDS para PostgreSQL, puede crear una réplica de lectura a partir de una réplica de lectura existente. Por ejemplo, puede crear una réplica de lectura nueva ReadReplica2 a partir de una réplica ReadReplica1 existente. En RDS para Oracle y RDS para SQL Server, no puede crear una réplica de lectura a partir de una existente.

Consideraciones a la hora de borrar réplicas

Si ya no necesita réplicas de lectura, puede eliminarlas explícitamente utilizando los mismos mecanismos que emplea para eliminar una instancia de base de datos. Si elimina una instancia de base de datos de origen sin eliminar sus réplicas de lectura en la misma Región de AWS, cada réplica de lectura se convertirá en una instancia de base de datos independiente. Para obtener más información sobre la eliminación de instancias de base de datos, consulte Eliminación de una instancia de base de datos. Para obtener información sobre la promoción de réplicas de lectura, consulte Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente.

Si tiene réplicas de lectura entre regiones, consulte en Consideraciones relativas a la replicación entre regiones las consideraciones relacionadas con la eliminación de la instancia de base de datos de origen para una réplica de lectura entre regiones.