使用 Canal 从 OceanBase 数据库迁移数据到 MySQL 数据库
什么是 CDC
CDC 全称是 Change Data Capture,即变更数据捕获。
为什么需要 CDC 功能
CDC 能够帮助识别上次提取之后发生变化的数据。CDC 提供的数据可以做很多事情,比如:做历史库、做近实时缓存、提供给消息队列(MQ),用户消费 MQ 做分析和审计等。
OceanBase CDC 实现逻辑
oblogproxy 是 OceanBase 数据库的增量日志代理服务。基于 liboblog,以服务的形式提供实时增量链路接入和管理能力,方便应用接入 OceanBase 增量日志。能够解决在网络隔离的情况下,订阅增量日志的需求,并提供多种链路接入方式。
Canal 是开源 MySQL 数据库 Binlog 的增量订阅和消费组件,基于 MySQL 数据库的增量日志解析,可以用于数据同步。
数据链路:
ob_cluster -> oblogreader -> oblogmsg -> canal_server -> canal_client -> mysql
下载地址为:https://github.com/oceanbase/oblogproxy/releases/tag/v1.0.0
yum install oblogproxy-1.0.0-1.el7.x86_64.rpm
[root@172.30.xxx.xx ~]$cd /usr/local/oblogproxy/
[root@172.30.xxx.xx oblogproxy]$ldd ./bin/logproxy
linux-vdso.so.1 => (0x00007fffe68fe000)
liboblog.so.1 => /lib/liboblog.so.1 (0x00002ae0113f1000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ae046bf8000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002ae046e14000)
librt.so.1 => /lib64/librt.so.1 (0x00002ae047018000)
libm.so.6 => /lib64/libm.so.6 (0x00002ae047220000)
libc.so.6 => /lib64/libc.so.6 (0x00002ae047522000)
/lib64/ld-linux-x86-64.so.2 (0x00002ae0111cd000)
libaio.so.1 => /lib64/libaio.so.1 (0x00002ae0478f0000)
[root@172.30.xxx.xx bin]$pwd
/usr/local/oblogproxy/bin
[root@172.30.xxx.xx bin]$./logproxy -x root@sys
EA87898018FD1EDDC2AA11CE1556E917
[root@172.30.xxx.xx bin]$./logproxy -x Root@2021
****************************************
[root@172.30.xxx.xx conf]$pwd
/usr/local/oblogproxy/conf
[root@172.30.xxx.xx conf]$ls -l
总用量 4
-rw-r--r-- 1 root root 1081 10月 25 18:00 conf.json
1. 修改conf.json的内容
"ob_sys_username": "EA87898018FD1EDDC2AA11CE1556E917",
"ob_sys_password": "****************************************",
[root@172.30.xxx.xx oblogproxy]$./run.sh start
work path : /usr/local/oblogproxy
is_running : (8252)/usr/local/oblogproxy logproxy is running !
logproxy started!
启动 oblogproxy
[root@172.30.xxx.xx oblogproxy]$pwd /usr/local/oblogproxy [root@172.30.xxx.xx oblogproxy]$./run.sh start
停止 oblogproxy
[root@172.30.xxx.xx oblogproxy]$pwd /usr/local/oblogproxy [root@172.30.xxx.xx oblogproxy]$./run.sh stop
查看 oblogproxy 状态
[root@172.30.xxx.xx oblogproxy]$pwd /usr/local/oblogproxy [root@172.30.xxx.xx oblogproxy]$./run.sh status
说明:
oblogproxy 启动成功后进程确认。
[root@172.30.xxx.xx ~]$ps -ef | grep logproxy | grep -v grep
root 26379 26373 0 10:45 pts/1 00:00:00 ./bin/logproxy -f ./conf/conf.json
[root@172.30.xxx.xx ~]$