Requisitos y configuración del log de transacciones
Descubra cómo preparar la base de datos MySQL y las variantes soportadas para Oracle GoldenGate, incluida la configuración de registro binario necesaria y las variables del servidor de base de datos.
Configuración de Propiedades de Registro
Oracle GoldenGate se basa en los logs binarios MySQL para almacenar los datos que necesita para replicar las transacciones de origen. Los logs binarios del sistema de origen se deben configurar correctamente antes de iniciar el procesamiento de Oracle GoldenGate.
En esta sección se tratan las siguientes opciones de inicio de log binario y variables del sistema que se aplican a Oracle GoldenGate para MySQL.
| Opciones de Registro | Valores | Qué hace | Requisito |
|---|---|---|---|
binlog_annotate_row_events |
ON, OFF |
Variable del sistema que indica al servidor principal que escriba estos eventos en el log binario. | Necesario para MariaDB y Oracle GoldenGate 23.8 y versiones anteriores. OFF |
binlog_expire_logs_seconds |
0 - 4294967295 |
Cuando se admite, esta variable del sistema define el período de caducidad del log binario, en segundos. | El valor recomendado es: >=86400 |
binlog_format |
ROW, STATEMENT, MIXED |
Variable del sistema que define el formato de registro binario. | Necesario cuando MySQL se utiliza como base de datos origen. Si se define en
|
binlog retention hours |
1 - 168 |
Cuando se admite, esta variable del sistema define el período de caducidad del log binario, en horas. | El valor recomendado es: >=24 |
binlog_row_image |
FULL, MINIMAL, NOBLOB |
Variable del sistema que define diferentes niveles de registro de nivel de columna en el log binario. | Necesario cuando MySQL se utiliza como base de datos origen.
|
binlog_row_metadata |
FULL, MINIMAL |
Variable del sistema que configura la cantidad de metadatos agregados al log binario para el registro basado en filas. | Necesario cuando MySQL 8.0 o superior se utiliza como base de datos de origen para el soporte de DDL.
|
event_scheduler |
ON, OFF |
Variable del sistema que permite la creación de trabajos de actualización y depuración de latidos. | Necesario si se implanta la funcionalidad de latido de Oracle GoldenGate.
|
log_bin |
ON, OFF |
Variable del sistema que muestra el estado del registro binario. | Necesario cuando MySQL se utiliza como base de datos origen. Si aún no es ON, defina mediante la asignación de un nombre, como log-bin=binlog. |
log_replica_updates |
ON, OFF |
Variable del sistema que registra las actualizaciones en el propio log binario del servidor secundario cuando se recibe desde un servidor principal. | Se necesita cuando MySQL se utiliza como base de datos de origen y se configura para capturar desde un servidor de réplica.
|
server_id |
0 - 4294967295 |
Se necesita especificar la variable del sistema cuando está activado el registro binario. Para una replicación principal y cada réplica de replicación, asegúrese de que los valores sean >0 y únicos. | Necesario cuando MySQL se utiliza como base de datos origen.
|
Verificar registro de nivel de base de datos
Para verificar la configuración de registro binario actual de la base de datos necesaria para soportar la captura de Oracle GoldenGate para la base de datos MySQL, realice las siguientes consultas. Si es necesario cambiar la configuración, siga las instrucciones de Enable Database-level Logging.
-
Inicie sesión en MySQL como la cuenta de administrador de servicio de base de datos raíz o asignada.
[root@srcdbserver ~]$ mysql -uroot -p -
Ejecute el siguiente comando para determinar si la base de datos está activada para el registro binario. Si el resultado es ON, se activa el log binario de la base de datos.
show variables like 'log_bin'; -
Ejecute los siguientes comandos para determinar si la base de datos está activada con la configuración de log binario correcta y
server_id. Asegúrese de que el valorbinlog_formatesté definido enROW,binlog_row_imageybinlog_row_metadataestén definidos enFULLy que la variableserver_idesté definida en>=1y sea única para una primaria y para cualquier réplica.show variables like 'binlog_%'; show variables like 'server_id'; -
Repita el proceso para consultar las variables para las otras opciones que se muestran en Configuración de Propiedades de Registro, según sus requisitos, como el soporte de DDL y el soporte de MariaDB.
Activar Registro a Nivel de Base de Datos
Realice los siguientes pasos, si es necesario, para activar la configuración de registro binario de base de datos necesaria para soportar la captura de Oracle GoldenGate para una base de datos MySQL. Solo modifique los valores que se deben activar o cambiar, en función de los resultados de Verificar registro de nivel de base de datos.
-
Edite el archivo de configuración MySQL,
my.cnfpara Linux omy.inipara Windows, para activar las variables del sistema necesarias para soportar la captura de Oracle GoldenGate para MySQL.[root@srcdbserver ~]$ vi /etc/my.cnf -
Para habilitar el registro binario, agregue una entrada al archivo de configuración, como la siguiente, utilizando un valor de log-bin de su preferencia.
log-bin=*binlog* -
Para definir el formato de registro binario correcto y las variables
server_id, defina lo siguiente:binlog-format=ROW binlog-row-image=FULL #For MySQL 8.0 and above, for DDL support binlog-row-metadata=FULL #Set to value > 0 and <= 4294967295 server-id=1 -
Agregue variables adicionales para las otras opciones que se muestran en Configuración de Propiedades de Registro, según los requisitos, como el soporte de DDL y el soporte de MariaDB.
-
Guarde y cierre el archivo.
-
Reinicie la base de datos para que la configuración surta efecto.
[root@srcdbserver ~]$ service mysqld restart -
Compruebe el estado del servicio de base de datos mediante el siguiente comando:
[root@srcdbserver ~]$ service mysqld status
Modificación de variables de sistema para Amazon y Azure MySQL Database Services
Para configurar bases de datos MySQL de Amazon y Azure para la funcionalidad de extracción y latido de Oracle GoldenGate, los cambios necesarios se deben realizar mediante los grupos de parámetros, la creación o modificación de bases de datos o los valores de parámetros del servidor, si aún no se han definido en los valores necesarios. Utilice las siguientes directrices para modificar estas variables del sistema:
-
Para activar el registro binario en Amazon, debe activar las copias de seguridad de la base de datos; de lo contrario, la variable
log_bininformará comoOFFy Extract finalizará de forma anormal, informando de que no puede recuperar la lista de archivosbinlog.Active las copias de seguridad al crear la base de datos o modifique una base de datos existente para incluir un regimiento de copia de seguridad.
-
Para las bases de datos MySQL de Amazon, defina la variable
binglog_formatenROW, la variablebinlog_row_imageenFULL,event_schedulerenONsi implanta la funcionalidad de latido de Oracle GoldenGate y defina la variablebinlog_row_metadataenFULLsi activa el soporte de captura de DDL.Siga las instrucciones proporcionadas por Amazon para crear o editar un grupo de parámetros existente con el fin de realizar estos cambios.
https://aws.amazon.com/premiumsupport/knowledge-center/enable-binary-logging-aurora/
-
Para las bases de datos MySQL de Azure, defina la variable
binlog_formatenROWy la variablebinlog_row_imageenFULL. Siga las instrucciones proporcionadas por Microsoft para modificar la configuración de parámetros del servidor para la instancia de base de datos.https://docs.microsoft.com/en-us/azure/mysql/howto-server-parameters
Garantía de Disponibilidad de Datos
Mantenga suficientes datos de log binarios para que, si detiene Extract o hay una interrupción no planificada, Extract pueda volver a empezar desde sus puntos de control. Extract debe tener acceso al log binario que contiene el inicio de la unidad de trabajo sin confirmar más antigua y todos los logs binarios posteriormente. El período de retención recomendado es de al menos 24 horas de datos de transacción, incluida la información activa y archivada. Es posible que deba realizar algunas pruebas para determinar el mejor tiempo de retención en función del volumen de datos y los requisitos de negocio.
Si los datos que necesita Extract durante el procesamiento no se han retenido, ya sea en logs activos o de copia de seguridad, puede que se necesite una de las siguientes acciones correctivas:
-
Alter Extract para capturar desde un punto posterior en el tiempo para el que están disponibles los datos de log binarios (y aceptar la posible pérdida de datos en el destino).
-
Vuelva a sincronizar las tablas de origen y destino y, a continuación, vuelva a iniciar el entorno de Oracle GoldenGate.
La retención de datos de log binarios se puede aumentar con diferentes medidas en función de la base de datos MySQL o la variante.
-
Para MySQL Server, MySQL Heatwave, Azure Database para MySQL y MariaDB, se puede aumentar la variable
binlog_expire_logs_secondspara ajustar el período de retención. -
Para Amazon Aurora para MySQL y Amazon RDS para MySQL, la configuración predeterminada de retención de logs binarios es
NULL, lo que significa que, para Aurora, los logs se depuran con pereza y para RDS para MySQL, no se conservan. Utilice el siguiente procedimiento para definir las horas de retención del parámetrobinlog. Por ejemplo:call mysql.rds_set_configuration('binlog retention hours', 24);
Captura en una réplica de replicación MySQL
Puede configurar Oracle GoldenGate para que capture desde una réplica de replicación MySQL.
Normalmente, las transacciones aplicadas en la réplica se registran en los logs de retransmisión y no en el archivo binlog de la réplica. Para que la réplica escriba las transacciones que recibe desde la base de datos primaria, en su binlog, debe iniciar la réplica de replicación con la opción log_replica_updates como 1 en my.cnf junto con los otros parámetros de registro binario para Oracle GoldenGate. Después de que las transacciones del principal estén en binlog de la réplica, puede configurar un extracto de Oracle GoldenGate normal en la réplica para que comience la captura.