El OceanBase Binlog Service recopila registros de transacciones de OceanBase y los convierte al formato MySQL Binlog. Este servicio se utiliza principalmente en escenarios como el seguimiento de cambios en tiempo real.
Información de contexto
El registro binario de MySQL (Binlog) es la base para la replicación maestro-esclavo y el seguimiento de cambios. Puede habilitar el registro binario con una baja sobrecarga de rendimiento para escenarios como el seguimiento de cambios en tiempo real. Esta función le permite reutilizar su sistema existente de análisis incremental de MySQL Binlog para sincronizar datos incrementales desde el modo compatible con MySQL de OceanBase Database. No necesita desarrollar soluciones personalizadas ni configurar un nuevo entorno. Puede migrar sin problemas su solución existente de seguimiento de cambios incrementales basada en MySQL a ApsaraDB for OceanBase.
Limitaciones de rendimiento
El rendimiento del servicio de conversión de Binlog está limitado por la configuración de recursos y las capacidades de análisis de Clog. Actualmente, el servicio Binlog admite una velocidad máxima de análisis de Clog de 25 MB/s. El límite superior para la tasa de conversión de Binlog es de aproximadamente 50,000 registros por segundo (RPS). Si el tráfico del servicio de origen supera estos límites, la latencia del servicio de conversión de Binlog puede aumentar. El servicio Binlog también admite un máximo de 50 conexiones de suscripción. Si el número de conexiones de suscripción simultáneas supera este límite, el servicio rechaza la solicitud. En escenarios con alto tráfico y transacciones grandes, el servicio Binlog debe procesar los Clogs de forma incremental para mantener el rendimiento en tiempo real.
Cuando el tráfico del servicio es manejable, la latencia del servicio de conversión de Binlog suele ser inferior a 1 segundo. Sin embargo, en casos especiales, como operaciones frecuentes de lenguaje de definición de datos (DDL) o transacciones grandes en la base de datos, no se puede garantizar una latencia de conversión inferior a un segundo.
Características del servicio Binlog
El servicio Binlog se deshabilita automáticamente si no hay conexiones de suscripción activas durante más de 7 días.
El OceanBase Binlog Service se gestiona a nivel de inquilino. No puede habilitar el registro binario para bases de datos o tablas específicas.
El OceanBase Binlog Service es compatible con el formato Row de MySQL Binlog. Registra los cambios a nivel de fila.
-
El modo compatible con MySQL de OceanBase Database es compatible con la mayoría de los tipos de datos de MySQL. Para obtener más información, consulte Descripción general de los tipos de datos de MySQL en OceanBase. La sintaxis DDL del modo compatible con MySQL de OceanBase Database difiere de la sintaxis DDL de MySQL e incluye sintaxis extendida propia. Por lo tanto, es posible que estas sentencias DDL no se analicen correctamente.
NotaNo se admiten las semánticas extendidas para los tipos ENUM y SET dentro de un inquilino compatible con MySQL de OceanBase Database. Por ejemplo, el servicio no admite definiciones de tipo SET con más de 64 miembros, valores duplicados en tipos SET o tipos ENUM que permiten insertar datos no definidos como ''.
-
El tipo VARCHAR puede almacenar un máximo de 65,535 bytes de datos. Si la longitud de un tipo VARCHAR supera este valor, pueden producirse errores de análisis en los datos de la tabla correspondiente.
Nota: La configuración del conjunto de caracteres afecta la longitud de VARCHAR. Por ejemplo, si el conjunto de caracteres es utf8mb4, un carácter ocupa 4 bytes. En este caso, la longitud máxima configurable para VARCHAR es 16,383.
En un inquilino compatible con MySQL de OceanBase Database, los tipos LONGBLOB y LONGTEXT admiten un tamaño máximo de 48 MB. Esto difiere de la implementación de MySQL.
Si utiliza OceanBase Database V4.x, configure the atributo STORED for generated columns. Otherwise, the Binlog service will not convert data for these columns. This may cause downstream subscription parsing to fail or result in data loss.
-
El protocolo Binlog para el modo compatible con MySQL de OceanBase Database es mayormente consistente con el protocolo Binlog de MySQL 5.7 y comparte funciones básicas similares:
Admite dos modos de extracción: nombre de archivo + desplazamiento y GTID. El GTID lo genera el OceanBase Binlog Service y también es globalmente único.
Admite la lectura de archivos Binlog para todas las bases de datos y tablas. El OceanBase Binlog Service vuelca datos incrementales de todas las bases de datos y tablas a nivel de inquilino y los almacena en archivos Binlog para almacenamiento persistente.
Admite varias conexiones de suscripción Binlog Dump. Puede suscribirse desde cualquier desplazamiento dentro del rango [posición del archivo de registro binario más antiguo, posición más reciente].
Admite la limpieza periódica de archivos Binlog. Después de habilitar el OceanBase Binlog Service en Alibaba Cloud, los registros se conservan durante 18 horas o hasta 50 GB de forma predeterminada. La limpieza de registros se activa cuando se cumple cualquiera de las condiciones.
Admite la integración con herramientas principales de análisis de MySQL Binlog, como FlinkCDC, Canal y MaxWell.
El servicio Binlog proporciona alta disponibilidad (HA) y puede recuperarse automáticamente de fallos en cuestión de minutos. Sin embargo, los suscriptores posteriores deben tener un mecanismo de reconexión para evitar interrupciones en la suscripción durante un fallo.
Cómo obtener archivos Binlog
Método de conexión: Puede conectarse a través del endpoint principal del inquilino.
Requisito de versión: La instancia de base de datos OceanBase debe ser V3.2.4 o posterior.
Procedimiento:
El OceanBase Binlog Service está deshabilitado de forma predeterminada. Primero debe habilitar el servicio. Para obtener más información, consulte Enable the Binlog service.
Conéctese a la base de datos OceanBase mediante un cliente MySQL. Para obtener más información, consulte Connect to an OceanBase database instance using a MySQL client.
-
Después de conectarse a la base de datos OceanBase, ejecute los comandos relevantes de MySQL Binlog en el cliente conectado.
Ejecute la sentencia
show binary logspara consultar la lista de archivos Binlog.
Ejecute la sentencia
show master statuspara consultar el archivo Binlog que se está escribiendo actualmente.
Ejecute la sentencia
show binlog eventspara consultar los eventos específicos en un archivo Binlog.
Suscríbase a los cambios mediante Canal. Para obtener más información, consulte QuickStart.