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

Trabajo con réplicas de lectura

Amazon RDS usa la funcionalidad de replicación integrada de los motores de base de datos MariaDB, Microsoft SQL Server, MySQL, Oracle, y PostgreSQL para crear un tipo especial de instancia de base de datos, llamada réplica de lectura, a partir de una instancia de base de datos de origen. La instancia de base de datos de origen se convierte en la instancia de base de datos principal. Las actualizaciones realizadas en la instancia de base de datos principal se copian de forma asíncrona en la réplica de lectura. Puede reducir la carga de la instancia de la base de datos principal enrutando las consultas de lectura de sus aplicaciones a la réplica de lectura. Las réplicas de lectura le permiten ajustar la escala 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.


            Configuración de réplicas de lectura
nota

La información siguiente se aplica a la creación de réplicas de lectura de Amazon RDS; en la misma Región de AWS que la instancia de base de datos de origen o en una Región de AWS diferente. Esta información no es válida para la configuración de la replicación con una instancia que se ejecute en una instancia Amazon EC2 o que esté instalada localmente.

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

nota

El motor de base de datos Oracle 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 Oracle para Amazon RDS.

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.

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. La replicación con la réplica en espera es sincrónica y la réplica en espera no puede servir tráfico 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 Implementaciones Multi-AZ para alta disponibilidad.

Las réplicas de lectura son compatibles con los motores de bases de datos MariaDB, Microsoft SQL Server, MySQL, Oracle, y PostgreSQL. En esta sección se ofrece información general sobre la utilización de las réplicas de lectura con todos estos motores. Para obtener información sobre la utilización de las réplicas de lectura con un motor específico, consulte las secciones siguientes:

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

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.

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
PIOPS 100 GiB–32 TiB PIOPS, GP2, Standard
GP2 100 GiB–32 TiB PIOPS, GP2, Standard
GP2 <100 GiB GP2, Standard
Standard 100 GiB–6 TiB PIOPS, GP2, Standard
Standard <100 GiB GP2, Standard
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.

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 MyDBInstance se replica en ReadReplica1, no puede configurar ReadReplica1 para volverse a replicar en MyDBInstance. Para MariaDB y MySQL, y en ciertas versiones de PostgreSQL, puede crear una réplica de lectura a partir de una réplica de lectura existente. Por ejemplo, a partir de ReadReplica1, puede crear una nueva réplica de lectura, como ReadReplica2. En Oracle y SQL Server, no puede crear una réplica de lectura a partir de una existente.

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.

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

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í. Puede habilitar copias de seguridad automáticas en una réplica de lectura de MySQL o MariaDB.

No. No puede crear instantáneas manuales de réplicas de lectura de Amazon RDS para Oracle ni habilitar copias de seguridad automáticas de ellas.

Sí, puede crear una instantánea manual de una réplica de lectura de PostgreSQL, pero no puede habilitar copias de seguridad automáticas.

No. No puede crear instantáneas manuales de réplicas de lectura de Amazon RDS para SQL Server ni habilitar copias de seguridad automáticas de ellas.

¿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 Oracle para Amazon RDS.

No.

No.

Creación de una réplica de lectura

Se puede crear una réplica de lectura a partir de una instancia de base de datos existente, utilizando AWS Management Console, AWS CLI, o la API de RDS. Para crear una réplica de lectura, debe especificar SourceDBInstanceIdentifier, que es el identificador de instancias de base de datos de la instancia de base de datos de origen desde la que desea replicar.

Cuando se crea una réplica de lectura, Amazon RDS realiza una instantánea de base de datos de la instancia de base de datos de origen y comienza la replicación. Como resultado, se experimenta una breve suspensión de E/S en la instancia de base de datos de origen mientras se realiza la instantánea de base de datos.

nota

La suspensión de E/S suele durar un minuto. Puede evitar la suspensión de E/S si la instancia de base de datos de origen es una implementación Multi-AZ, porque en ese caso la instantánea se toma de la instancia de base de datos secundaria.

Una transacción activa de ejecución prolongada puede ralentizar el proceso de creación de la réplica de lectura. Le recomendamos que espere a que se completen las transacciones de ejecución prolongada antes de crear una réplica de lectura. Si crea varias réplicas de lectura en paralelo a partir de la misma instancia de base de datos de origen, Amazon RDS solo realiza una instantánea cuando comienza la primera acción de creación.

Cuando se crea una réplica de lectura, hay varias cosas que se deben tener en cuenta. En primer lugar, debe habilitar las copias de seguridad automáticas en la instancia de base de datos de origen estableciendo el periodo de retención de copia de seguridad en un valor distinto de 0. Este requisito también es válido para una réplica de lectura que sea la instancia de base de datos de origen de otra réplica de lectura. Para habilitar las copias de seguridad automáticas en una réplica de lectura de RDS para My SQL, primero cree la réplica de lectura y modifíquela a continuación para habilitar las copias de seguridad automáticas.

nota

En una Región de AWS, recomendamos encarecidamente crear todas las réplicas de lectura en la misma nube privada virtual (VPC) basándose en Amazon VPC como instancia de base de datos de origen. Si crea una réplica de lectura en una VPC diferente de la instancia de base de datos de origen, los rangos de enrutamiento entre dominios sin clases (CIDR) pueden superponerse entre la réplica y el sistema RDS. La superposición de CIDR hace que la réplica sea inestable, lo que puede afectar negativamente a las aplicaciones que se conectan a ella. Si obtiene un error al crear la réplica de lectura, elija un grupo de subred de base de datos de destino diferente. Para obtener más información, consulte Uso de una instancia de base de datos en una VPC.

No puede crear una réplica de lectura en una cuenta de AWS diferente de la instancia de base de datos de origen.

Para crear una réplica de lectura a partir de una instancia de base de datos de origen

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

  3. Seleccione la instancia de base de datos que desea usar como origen de una réplica de lectura

  4. En Actions (Acciones), elija Create read replica (Crear réplica de lectura).

  5. En DB instance identifier (Identificador de instancias de bases de datos), escriba un nombre para la réplica de lectura.

  6. Elija las especificaciones de su instancia. Es recomendable usar la misma clase de instancia de base de datos y el mismo tipo de almacenamiento que la instancia de base de datos de origen para la réplica de lectura.

  7. Para Multi-AZ deployment, elija Yes para crear una réplica en espera en otra zona de disponibilidad para permitir la conmutación por error de la réplica.

    nota

    La creación de su réplica de lectura como instancia de base de datos Multi-AZ es independiente de si la base de datos de origen es una instancia de base de datos Multi-AZ.

  8. Para crear una réplica de lectura cifrada:

    1. Elija Enable encryption (Habilitar cifrado).

    2. Para AWS KMS key, elija el identificador AWS KMS key de la clave de KMS.

    nota

    La instancia de base de datos de origen debe estar cifrada. Para obtener más información acerca del cifrado de la instancia de base de datos de origen, consulte Cifrado de recursos de Amazon RDS.

  9. Especifique otras opciones, como el escalado automático del almacenamiento.

    Para obtener más información acerca de cada ajuste, consulte Configuración de instancias de base de datos.

  10. Elija Create read replica (Crear réplica de lectura).

Después de crear la réplica de lectura, puede verla en la página Bases de datos de la consola de RDS. Muestra Réplica en la columna Rol .

Para crear una réplica de lectura a partir de una instancia de base de datos de origen, utilice el comando de AWS CLI create-db-instance-read-replica. Este ejemplo también habilita el escalado automático de almacenamiento.

Puede especificar otras opciones. Para obtener más información acerca de cada ajuste, consulte Configuración de instancias de base de datos.

ejemplo

Para Linux, macOS o Unix:

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --source-db-instance-identifier mydbinstance \ --max-allocated-storage 1000

Para Windows:

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --source-db-instance-identifier mydbinstance ^ --max-allocated-storage 1000

Para crear una réplica de lectura a partir de una instancia de base de datos de origen MySQL, MariaDB, Oracle, PostgreSQL, o SQL Server, llame la operación Amazon RDS API CreateDBInstanceReadReplica con los siguientes parámetros requeridos:

  • DBInstanceIdentifier

  • SourceDBInstanceIdentifier

Promoción de una réplica de lectura para convertirla en una instancia de base de datos independiente

Puede promover una réplica de lectura a una instancia de base de datos independiente. Cuando se promociona una réplica de lectura, la instancia de base de datos se reinicia antes de que esté disponible.


                Promoción de una réplica de lectura

Hay varios motivos por los que puede ser deseable promocionar una réplica de lectura a una instancia de base de datos independiente:

  • Realización de operaciones DDL (solo MySQL y MariaDB): las operaciones DDL, como la creación o la reconstrucción de índices, pueden requerir tiempo y tener un impacto considerable en el desempeño de una instancia de base de datos. Puede realizar estas operaciones en una réplica de lectura de MySQL o MariaDB una vez que la réplica de lectura se haya sincronizado con la instancia de base de datos principal. A continuación, puede promocionar la réplica de lectura y dirigir sus aplicaciones para que usen la instancia promocionada.

  • Fragmentación: la fragmentación es un tipo de arquitectura en el que no se comparte nada y, en esencia, consiste en dividir una base de datos grande en varias bases de datos más pequeñas. Una forma habitual de partir una base de datos es dividir las tablas que no están unidas en la misma consulta entre diferentes hosts. Otro método es duplicar una tabla entre varios hosts y, a continuación, usar un algoritmo de hash para determinar qué host recibe una actualización determinada. Puede crear réplicas de lectura correspondientes a cada uno de sus particiones (bases de datos más pequeñas) y promocionarlas cuando decida convertirlas en particiones independientes. A continuación puede separar el espacio de claves (si va a dividir filas) o la distribución de las tablas para cada uno de los fragmentos dependiendo de sus necesidades.

  • Implementación de recuperación de errores: puede utilizar la promoción de réplica de lectura como esquema de recuperación de datos si la instancia de base de datos principal produce un error. Este enfoque complementa la replicación sincrónica, la detección automática de errores y la conmutación por error.

    Si es consciente de las ramificaciones y limitaciones de la replicación asíncrona y a pesar de ello quiere usar la promoción de réplicas de lectura para la recuperación de datos, puede hacerlo. Para ello, cree primero una réplica de lectura y, a continuación, monitoree la instancia de base de datos principal para ver si se producen errores. En caso de error, haga lo siguiente:

    1. Promocione la réplica de lectura.

    2. Dirija el tráfico de la base de datos a la instancia de base de datos promocionada.

    3. Cree una réplica de lectura de reemplazo que tenga la instancia de base de datos promocionada como origen.

Al promover una réplica de lectura, la nueva instancia de base de datos que se crea conserva el grupo de opciones y el grupo de parámetros de la réplica de lectura anterior. Este proceso de promoción puede tardar unos minutos o más, según el tamaño de la réplica de lectura. Una vez que haya promocionada la réplica de lectura a una nueva instancia de base de datos, será como cualquier otra instancia de base de datos. Por ejemplo, podrá crear réplicas de lectura a partir de la nueva instancia de base de datos y realizar operaciones de restauración a un momento dado. Como la instancia de base de datos promocionada ya no es una réplica de lectura, no puede usarla como destino de la replicación. Si una instancia de base de datos de origen tiene varias réplicas de lectura, promocionar una de las réplicas de lectura a instancia de base de datos no tiene ningún efecto en las otras réplicas.

La duración de la copia de seguridad es una función del número de cambios en la base de datos desde la copia de seguridad anterior. Si tiene previsto promocionar una réplica de lectura a una instancia autónoma, le recomendamos que habilite las copias de seguridad y complete al menos una copia de seguridad antes de la promoción. Además, no puede promocionar una réplica de lectura a una instancia independiente cuando tiene el estado backing-up. Si ha habilitado las copias de seguridad en la réplica de lectura, configure el intervalo de copia de seguridad automática para que las copias de seguridad diarias no interfieran en la promoción de la réplica de lectura.

Los siguientes pasos muestran el proceso general para promocionar una réplica de lectura a instancia de base de datos:

  1. Detenga la escritura de transacciones en la instancia de base de datos principal y, a continuación, espere hasta que se hayan realizado todas las actualizaciones en la réplica de lectura. Las actualizaciones de la base de datos se producen en la réplica de lectura después de completarse en la instancia de base de datos principal, y el retraso de esta replicación puede variar considerablemente. Utilice la métrica Replica Lag para determinar cuándo se han completado todas las actualizaciones en la réplica de lectura.

  2. Solo para MySQL y MariaDB: si tiene que hacer cambios en la réplica de lectura de MySQL o MariaDB, debe definir el parámetro read_only como 0 en el grupo de parámetros de base de datos para la réplica de lectura. A continuación, puede llevar a cabo todas las operaciones DDL necesarias, como la creación de índices, en la réplica de lectura. Las acciones realizadas en la réplica de lectura no afectan al rendimiento de la instancia de base de datos principal.

  3. Promueva la réplica de lectura mediante la opción Promote (Promover) de la consola de Amazon RDS, el comando de la AWS CLI promote-read-replica o la operación PromoteReadReplica de la API de Amazon RDS.

    nota

    El proceso de promoción tarda algunos minutos en completarse. Cuando se promociona una réplica de lectura, la replicación se detiene y la réplica de lectura se reinicia. Una vez completado el reinicio, la réplica de lectura pasa a estar disponible como nueva instancia de base de datos.

  4. (Opcional) Modifique la nueva instancia de base de datos para que sea una implementación Multi-AZ. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS y Implementaciones Multi-AZ para alta disponibilidad.

Para promover una réplica de lectura a una instancia de base de datos independiente

  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En la consola de Amazon RDS, seleccione Databases (Bases de datos).

    Aparece el panel Databases (Bases de datos). Cada réplica de lectura muestra Replica (Réplica) en la columna Role (Rol).

  3. Elija la réplica de lectura que desea promocionar.

  4. En Actions (Acciones), seleccione Promote (Promover).

  5. En la página Promote Read Replica (Promocionar réplica de lectura), escriba el periodo de retención de copia de seguridad y el periodo de copia de seguridad para la instancia de base de datos recientemente promocionada.

  6. Cuando la configuración sea la que desea, elija Continue.

  7. En la página de confirmación, elija Promote Read Replica (Promocionar réplica de lectura).

Para promover una réplica de lectura a una instancia de base de datos independiente, use el comando AWS CLI promote-read-replica.

ejemplo

Para Linux, macOS o Unix:

aws rds promote-read-replica \ --db-instance-identifier myreadreplica

Para Windows:

aws rds promote-read-replica ^ --db-instance-identifier myreadreplica

Para promover una réplica de lectura a una instancia de base de datos independiente, llame a la operación PromoteReadReplica de la API de Amazon RDS con el parámetro DBInstanceIdentifier requerido.

Monitoreo de la replicación de lectura

Puede monitorear el estado de una réplica de lectura de varias formas. La consola de Amazon RDS muestra el estado de una réplica de lectura en la sección Replicación de la pestaña Conectividad y seguridad, en los detalles de la réplica de lectura. Para ver los detalles de una réplica de lectura, elija el nombre de la réplica de lectura en la lista de instancias de base de datos en la consola de Amazon RDS.


                Estado de la réplica de lectura

También puede ver el estado de una réplica de lectura con el comando describe-db-instances de la AWS CLI o la operación DescribeDBInstances de la API de Amazon RDS.

El estado de una réplica de lectura puede ser uno de los siguientes:

  • replicating (replicando): la réplica de lectura se está replicando correctamente.

  • replication degraded (replicación degradada) (solo SQL Server): las réplicas reciben datos de la instancia principal, pero una o más bases de datos no están recibiendo actualizaciones. Esto puede ocurrir, por ejemplo, cuando una réplica se encuentra en el proceso de configuración de las bases de datos recién creadas.

    El estado no pasa de replication degraded a error, a menos que se produzca un error durante el estado degradado.

  • error: se ha producido un error durante la replicación. Compruebe el campo Replication Error (Error de replicación) en la consola de Amazon RDS o el registro de eventos para determinar el error exacto. Para obtener más información acerca de resolución de problemas de replicación, consulte Solución de problemas de réplicas de lectura de MySQL.

  • terminated (terminada) (solo MariaDB, MySQL o PostgreSQL): la replicación se ha terminado. Esto sucede si la replicación se ha detenido durante más de 30 días consecutivos, ya sea manualmente o por un error de replicación. En ese caso, Amazon RDS termina la reproducción entre la instancia de base de datos primaria y todas las réplicas de lectura. Amazon RDS realiza ese procedimiento para impedir que aumenten los requisitos de almacenamiento en la instancia de base de datos de origen y que se incrementen los tiempos de conmutación por error.

    La replicación no completada puede afectar al almacenamiento, ya que los registros pueden aumentar en tamaño y en número debido al alto volumen de mensajes de error que se escriben en el registro. La replicación no completada puede afectar también a la recuperación de errores debido al tiempo que Amazon RDS necesita para mantener y procesar el elevado número de registros durante la recuperación.

  • stopped (detenida) (solo MariaDB or MySQL): la replicación se ha detenido a petición de un cliente.

  • replication stop point set (punto de detención de replicación establecidoI) (solo MySQL): se ha establecido un punto de detención iniciado por el cliente con el procedimiento almacenado mysql.rds_start_replication_until y la replicación se encuentra en curso.

  • replication stop point reached (punto de detención de replicación alcanzado) (solo MySQL): se ha establecido un punto de detención iniciado por el cliente con el procedimiento almacenado mysql.rds_start_replication_until y la replicación se ha detenido porque se ha llegado al punto de detención.

Puede ver dónde se está replicando una instancia de base de datos y, si es así, comprobar su estado de replicación. En la página Bases de datos de la consola de RDS, muestra Principal en la columna Rol . Elija su nombre de instancia de base de datos. En su página de detalles, en la ficha Conectividad y seguridad , su estado de replicación se encuentra en Replicación.

Monitoreo de retraso de la replicación

Puede monitorizar el retardo de replicación en Amazon CloudWatch mediante la visualización de la métrica ReplicaLag de Amazon RDS.

Para MariaDB y MySQL, la métrica ReplicaLag indica el valor del campo de Seconds_Behind_Master del comando SHOW REPLICA STATUS. Los motivos comunes de retardo de la replicación para MySQL y MariaDB son los siguientes:

  • Una interrupción de la red.

  • Escritura en tablas con índices en una réplica de lectura. Si el parámetro read_only no se ha establecido en 0 en la réplica de lectura, puede interrumpirse la replicación.

  • Uso de un motor de almacenamiento no transaccional como MyISAM. La replicación solo se admite para el motor de almacenamiento InnoDB en MySQL y el motor de almacenamiento XtraDB en MariaDB.

nota

Versiones anteriores de MariaDB y MySQL utilizaban SHOW SLAVE STATUS en lugar de SHOW REPLICA STATUS. Si usa una versión de MariaDB anterior a la 10.5 o una versión de MySQL anterior a la 8.0.23, utilice SHOW SLAVE STATUS.

Cuando la métrica ReplicaLag llegue a 0, la réplica estará funcionando al mismo ritmo que la instancia de base de datos principal. Si la métrica ReplicaLag devuelve -1, la replicación no está activa. ReplicaLag = -1 es equivalente a Seconds_Behind_Master = NULL.

En Oracle, la métrica ReplicaLag es la suma del valor Apply Lag y la diferencia entre la hora actual y el valor de DATUM_TIME del retraso de aplicación. El valor DATUM_TIME es la última hora en la que la réplica de lectura recibió datos de su instancia de base de datos de origen. Para obtener más información, consulte V$DATAGUARD_STATS en la documentación de Oracle.

Para SQL Server, la métrica ReplicaLag es el retraso máximo de las bases de datos que se han retrasado, en segundos. Por ejemplo, si tiene dos bases de datos que se retrasan 5 segundos y 10 segundos, respectivamente, entonces ReplicaLag son 10 segundos. La métrica ReplicaLag devuelve el valor de la siguiente consulta.

SELECT MAX(secondary_lag_seconds) max_lag FROM sys.dm_hadr_database_replica_states;

Para obtener más información, consulte secondary_lag_seconds en la documentación de Microsoft.

ReplicaLag devuelve -1 si RDS no puede determinar el retraso, como durante la configuración de la réplica, o cuando la réplica de lectura está en el estado error.

nota

Las nuevas bases de datos no se incluyen en el cálculo del retraso hasta que estén accesibles en la réplica de lectura.

Para PostgreSQL, la métrica ReplicaLag devuelve el valor de la siguiente consulta.

SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS reader_lag

Las versiones 9.5.2 y más recientes de PostgreSQL utilizan ranuras de replicación física para administrar la retención del registro de escritura previa (WAL) en la instancia de origen. Para cada instancia de réplica de lectura entre regiones, Amazon RDS crea una ranura de replicación física y la asocia con la instancia. Dos métricas de Amazon CloudWatch, Oldest Replication Slot Lag y Transaction Logs Disk Usage, muestran el retardo de la réplica con más retraso en términos de datos de WAL recibidos y la cantidad de almacenamiento que se está usando para los datos de WAL. El valor de Transaction Logs Disk Usage puede aumentar sustancialmente cuando una réplica de lectura entre regiones tiene mucho retraso.

Para obtener más información acerca de la monitorización de una instancia de base de datos con CloudWatch, consulte Supervisión de métricas de Amazon RDS con Amazon CloudWatch.