Resumen de requisitos para la captura y entrega de bases de datos en un grupo de disponibilidad Always On
Oracle GoldenGate for SQL Server soporta la captura desde una réplica principal o una réplica secundaria de modo síncrono de solo lectura de un grupo de disponibilidad Always On y la entrega a la réplica principal.
Al capturar desde una réplica primaria o secundaria en un grupo de disponibilidad Always On, es importante comprender que el proceso de captura solo debe leer las transacciones reforzadas del log y que no hay posibilidad de pérdida de datos entre ninguna base de datos de réplica de la que Oracle GoldenGate sea o la capture.
Conexión a Base de Datos
Para Extract y Replicat, se recomienda crear una conexión a base de datos que utilice el listener de grupo de disponibilidad Always On para la conexión.
-
Para el Replicat, la conexión al listener permite al Replicat volver a conectarse si la réplica principal realiza un failover en una nueva instancia, sin tener que editar manualmente la configuración de conexión para que apunte a la nueva principal.
-
Para el Extract que se conecta al listener, no solo permite volver a conectarse a la instancia principal sin editar la conexión para que apunte a la nueva instancia, sino que también proporciona la capacidad opcional de ejecutar los procedimientos almacenados de extracción de datos de Extract, en una instancia secundaria de solo lectura.
-
Para Extract y Replicat conectados a un entorno Always On, utilice el parámetro
AUTORESTARTpara Manager, para reiniciar los procesos después de un failover. -
Para enrutar las consultas de extracción de datos de Extract a un secundario de solo lectura, asegúrese de que la conexión utiliza el listener, de que tiene una o más réplicas secundarias de solo lectura configuradas para manejar el enrutamiento de solo lectura y de que Extract se ejecuta con el parámetro
TRANLOGOPTIONS ALWAYSONREADONLYROUTING.Consulte la siguiente documentación de Microsoft sobre cómo configurar el enrutamiento de solo lectura: https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-read-only-routing-for-an-availability-group-sql-server?view=sql-server-2017
Registro Complementario
El registro complementario se debe activar por medios normales (ADD TRANDATA) mediante el cliente de administración o la interfaz web conectada a la réplica principal y no a una réplica secundaria.
-
Cree un DSN para la réplica principal o para el listener de grupo de disponibilidad Always On para conectarse mediante
DBLOGINpara ejecutarADD TRANDATA. -
Al activar el registro complementario en la base de datos de réplica primaria, el trabajo de captura de datos de cambio de SQL Server no se crea automáticamente en ninguna réplica secundaria. Tras el failover de un trabajo principal a uno secundario, debe crear manualmente el trabajo de captura de datos de cambio de SQL Server y el trabajo de limpieza de Oracle CDC si está en uso, en la nueva réplica principal.
EXECUTE sys.sp_cdc_add_job N'capture- Al crear el trabajo de captura de CDC de SQL Server en la nueva base de datos principal, se establecen los valores de configuración por defecto. Por lo tanto, si ha modificado previamente los valores por defecto en la réplica principal anterior, debe ejecutar
sys.sp_cdc_change_joben la nueva principal y definir los valores según corresponda. Nota: Consulte la documentación de Microsoft sobre cómo activar el trabajo de captura de CDC para AlwaysOn Secondary Replicas para obtener más información.
- Al crear el trabajo de captura de CDC de SQL Server en la nueva base de datos principal, se establecen los valores de configuración por defecto. Por lo tanto, si ha modificado previamente los valores por defecto en la réplica principal anterior, debe ejecutar
Consideraciones y requisitos operativos
-
Cuando una instancia ya no es la instancia principal pero tiene instalado el trabajo de captura de CDC de SQL Server, el trabajo deja de ejecutarse después de un tiempo y no intenta reiniciarse. Tras el failover a esa instancia, el trabajo no se inicia automáticamente, por lo que se debe iniciar manualmente.
-
Si las bases de datos de réplicas secundarias no están sincronizadas con la base de datos de réplica principal, el trabajo de captura de CDC no avanzará en el log y, por lo tanto, un Extract no capturará ningún registro hasta que se sincronicen las réplicas principal y secundaria. Ver este artículo de Microsoft para más detalles:
Nota: Al capturar desde una réplica principal o secundaria en un grupo de disponibilidad Always On, es importante comprender que el proceso de captura solo debe leer las transacciones reforzadas del log y que no hay posibilidad de pérdida de datos entre ninguna base de datos de réplica de la que Oracle GoldenGate sea o de la que vaya a capturar.
-
Al ejecutar un Extract desde un servidor Windows o Linux de capa media, defina la fecha, la hora y la zona horaria del servidor de capa media en la misma que la de la réplica principal.
-
Si Extract está configurado para capturar desde una réplica secundaria legible, pero no está configurado con enrutamiento de solo lectura, el trabajo de captura de CDC de SQL Server se debe crear en la réplica secundaria antes de iniciar el Extract, ya que el Extract comprobará si el trabajo existe. Para crear el trabajo de captura de CDC de SQL Server, cualquier posible secundario que tenga un Extract conectado a él, se debe definir en algún momento en una base de datos primaria que permita escritura y, a continuación, seguir los pasos anteriores, en el registro complementario, para agregar manualmente el trabajo de captura de CDC de SQL Server.
-
Si desinstala Oracle GoldenGate y desactiva Change Data Capture en una base de datos que forma parte de un grupo de disponibilidad Always On, siga los pasos adicionales proporcionados en Desactivación de la captura de cambios de datos.