首批通过分布式安全可靠测评,为关键业务系统打造
Binlog 服务概述
更新时间:2026-01-21 14:58:49
Binlog 服务是用于收集 OceanBase 的事务日志并转换为 MySQL Binlog 的服务,主要用于实时数据订阅等场景。OCP 支持白屏化单机部署或集群模式部署 Binlog Service,并可对 Binlog 集群及实例进行基础的运维操作。同时,OCP 支持 Binlog Service 的监控告警能力,为您提供 Binlog 集群的资源使用视图,并支持关联至告警,帮助您快速定位并解决问题。
背景信息
在 MySQL 中,Binlog 作为实现数据订阅的起点,用户可以以较低的性能和消耗来开启 Binlog 日志,从而实现诸多的下游业务场景。
OceanBase Binlog Service 是为兼容 MySQL Binlog 能力而推出的功能,支持客户复用现有的 MySQL Binlog 增量解析系统来同步 OceanBase MySQL 模式的增量数据,无需做二次开发或搭建一套新环境。Binlog Service 与 MySQL Binlog V4 版本协议保持对齐,具备同样的功能(如支持多个订阅连接)、特性(如支持 GTID 拉取模式),以及保障 Binlog 日志中数据的唯一性。您可以无缝使用原本基于 MySQL 的增量数据订阅方案,并切换到 OceanBase 上来。
注意
OceanBase 提供的 Binlog 服务暂不适用于主备搭建和增量恢复等场景。
架构介绍

Binlog 集群
Binlog 集群是由一个或多个 Binlog Server 组成的统一的对外服务,在 Binlog 集群中存在多台 Binlog Server 的场景下,租户 Binlog 服务启动时,将根据负载均衡的逻辑选择合适的 Binlog Server;当任意一台 Binlog Server 故障时,将由其他正常的 Binlog Server 接管其 Binlog 服务。
Binlog Server
Binlog Server 负责管理节点上的若干 Binlog 实例,并处理 SQL 请求;多个 Binlog Server 间经由 MetaDB 实现信息共享。Binlog Server 支持处理自定义的 SQL API,主要对 Binlog 实例进行管理操作。
Binlog Instance
Binlog Instance 是租户粒度的 Binlog 实例,负责生成 Binlog 日志以及发送 Binlog 日志,同时根据 MySQL 协议开启 TCP 监控处理 SQL 请求。一个 OceanBase Binlog 实例可类比于一个 MySQL 实例,同一租户的多个 OceanBase Binlog 实例可类比于 MySQL 主备实例,支持处理 MySQL Binlog 相关的 SQL、协议和变量,例如 SHOW MASTER STATUS 等。
通过 OCP 使用 Binlog 服务
服务限制
Binlog Service 对各服务及租户模式具有如下限制:
- OBServer 版本要求不低于 V4.1.0.1。
- OBProxy 版本要求不低于 V4.2.1,建议使用 V4.3.1.0-402024062810 或 V4.2.1.0-20240604114727。
- Binlog Service 版本要求不低于 V4.0.0。
- MetaDB 版本要求不低于 2.2.77 (Built Feb 14 2022 18:11:59)。
- 仅支持 MySQL 模式的租户。
环境准备
目前 Binlog 服务依赖 jq、mysql、java、diff,您需要提前在主机上进行手动安装。安装示例如下,请您依照实际环境进行安装:
# 1. jq sudo yum install jq # 2. mysql sudo yum install mysql # 3. java # 如果已经有 java 环境,也可直接配置环境变量 sudo yum install java-1.8.0-openjdk* echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0" >> /etc/profile echo "export JRE_HOME=${JAVA_HOME}/jre" >> /etc/profile echo "export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib:${CLASSPATH}" >> /etc/profile echo "export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${PATH}" >> /etc/profile # 4. diff sudo yum install diffutils其中,
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0" >> /etc/profile需要使用环境中实际 java 的目录,可以通过ls /lib/jvm | grep java或which java命令进行查看。检查依赖是否已安装成功:
# 1. jq command -v jq # 2. mysql command -v mysql # 3. java echo $JAVA_HOME # 4. diff command -v diff
快速入门
您可参考如下流程在 OCP 上使用 Binlog 服务:
创建满足版本要求的 OceanBase 集群、OceanBase 租户及 OBProxy 集群。
详情可参考 创建集群、创建租户 和 创建 OBProxy 集群。
OceanBase Binlog 服务功能依赖于单独提供的 Binlog 组件,您可以通过创建 Binlog 集群获取相关组件。
详情可参考 创建 Binlog 集群。
为 OceanBase 租户开通 Binlog 服务,用于收集 OceanBase 的事务日志并转换为 MySQL Binlog 的服务。
详情可参考 管理租户 Binlog 服务。
相关文档
关于 Binlog 服务的更多信息,详情可参考 Binlog 服务介绍。