3
博客oceanbase通过canal 同步数据到mariadb实践

oceanbase通过canal 同步数据到mariadb实践-c7电子娱乐

2024-12-04用户实践

最近在处理oceanbase 通过 canal同步数据到mariadb 数据库,实践过程中遇到了一些问题,发现社区中这类实践较少。现在将自己实践过程中遇到的问题以及如何解决的,在这里和大家分享一下。

所使用版本:


组件版本号
操作系统centos7.6
oceanbase-ce4.2.4.0
obproxy4.3.2.0-26
oblogproxy4.0.1-1
canal-for-ob.deployer1.1.6
canal-for-ob.adapter1.1.6


步骤一: 安装 oblogproxy

按照官方手册安装

注意:

1. 注意oblogproxy的版本,因为有可能不支持当前oceanbase版本。可查看版本发布记录了解。

修改 env/deploy.conf.json 配置文件时,注意要先创建元数据库,比如默认的元数据是 binlog_cluster,这个数据库要先创建,否则报错。

{
   "host": "",
   "port": 0,
   "user": "",
   "password": "",
   "database": "binlog_cluster", <============ 需要先创建
   "sys_user": "",
   "sys_password": "",
   "supervise_start": "",
   "init_schema": "",
   "node_ip": ""
}


步骤二: 安装canal server、adapter

这一步完全按照c7电子娱乐官网安装即可:

1. 下载安装包,下载

c7电子娱乐官网默认下载的是1.1.6版本:

如果1.1.6有问题可以试试1.1.7

1733279770


步骤三: 启动canal server 和 adapter

报错:

canal server 日志中

com.oceanbase.clogproxy.client.exception.logproxyclientexception: unsupported protocol version: 19968

在源端oceanbase做dml adapter日志中无任何变化。

在社区中找到类似案例:

1733280254


步骤四:替换ob版本的canal 为原生canal

注意:
原生canal server 的instance.properties 中,要使用业务租户的root用户连接,端口使用代理端口2883
canal.instance.master.address=192.168.179.198:2883
canal.instance.dbusername=root@ten_en#clu_t

安装原生canal的替换后,会发现问题:

1. 如果oblogproxy部署在单独的服务器上,原生canal无法获取到binlog。 因为instance.properties配置文件中指向的是observer的地址。

所以oblogproxy 应该和observer 部署在一起,虽然这有违背官方的推荐。如果有其他大佬有解决办法,欢迎指出。

将oblogproxy 与observer 安装一起后,添加任务后,启动canal server 和 adapter 组件,发现同步正常。

点赞3
收藏

声明

本网站下的“博客”等板块为技术爱好者提供分享、交流的平台。发布者发布的任何内容、信息等,并不反映或代表本网站的观点、立场或政策。本网站不对其任何内容和信息的错误以及由此产生的损失或损坏承担任何责任。

尊重知识产权是本网站的基本原则之一,如您在使用本网站过程中发现本网站中存在侵犯您或其他第三人合法知识产权的情况,请您即可将侵权材料及初步证据提交至下述邮箱:obcompliance@oceanbase.com 。本网站将在收到材料后尽快进行审核及处理。

d

已发布 1 篇博文

网站地图