作者:Amber,OB 网红文档工程师。个人主页:https://space.bilibili.com/557737255/
OceanBase CDC 基本组件
liboblog
数据同步:将 OceanBase 数据同步到同构或者异构的数据库,可以做逻辑迁移、逻辑备库、逻辑升级等。
数据订阅:将 OceanBase 数据同步给消息队列或数据仓库等,用于做实时计算、审计、监控等。
oblogproxy
oblogmsg
以 OceanBase 为源向 MySQL 同步数据
安装 oblogproxy
来到它的 GitHub 仓库,从 Release 页面下载安装包。安装之前要配置 OceanBase 社区版 yum 源,这样安装 rpm 包时,才能自动安装依赖,比如 liboblog 等内容。也可以使用以下命令安装:
yum install -y oblogproxy-1.0.0-1.el7.x86_64.rpm
安装完成后,来到 oblogproxy 的安装目录,来到 bin 目录,默认安装目录为 /usr/local/oblogproxy/bin
。
ldd ./bin/logproxy
#生成用户
/logproxy -x root@sys
EA87898018FD1EDDC2AA11CE1556E917
#生成密码
/logproxy -x Root@2021
8852DB95B3D54B1A8F866836A9D8FD52
vim /usr/local/oblogproxy/conf/conf.json
"ob_sys_username": "",
"ob_sys_password: "",cd /usr/local/oblogproxy
./run.sh start
#查看状态
./run.sh status
#停止oblogproxy
./run.sh stop配置 Canal
部署 Canal Deployer
mkdir /tmp/canal2
tar zxvf canal.deployer-$version.tar.gz -C /tmp/canal2cd /tmp/canal
ls
bin :canal启动、重启、停止文件
conf :canal配置文件
lib :canal运行所需的jar包,注意数据库驱动包版本,可手动更换
logs :canal运行日志
plugin :一些扩展包,如消息队列vi conf/canal.properties# 指定instance的spring配置
canal.instance.global.spring.xml = classpath:spring/ob-file-instance.xml# oceanbase集群参数
canal.instance.oceanbase.rsList=127.0.0.1:2882:2881
canal.instance.oceanbase.username=username
canal.instance.oceanbase.password=password
canal.instance.oceanbase.startTimestamp=0
# oceanbase logproxy的地址
canal.instance.oceanbase.logproxy.address=127.0.0.1:2983
# 与oceanbase logproxy间通信可以使用ssl加密,默认关闭
canal.instance.oceanbase.logproxy.sslEnabled=false
canal.instance.oceanbase.logproxy.serverCert=../conf/${canal.instance.destination:}/ca.crt
canal.instance.oceanbase.logproxy.clientCert=../conf/${canal.instance.destination:}/client.crt
canal.instance.oceanbase.logproxy.clientKey=../conf/${canal.instance.destination:}/client.key
# 是否要在库名中去掉租户前缀。logproxy输出的日志中库名默认为 [tenant].[db]
canal.instance.parser.excludeTenantInDbName=true
canal.instance.oceanbase.tenant=sys
# 日志过滤。格式为[tenant].[database].[table],支持正则
canal.instance.filter.regex=sys.canal_test.*
canal.instance.oceanbase.tenant和
canal.instance.filter.regex也要改成业务租户。
# 指定当前instance对应的topic
canal.mq.topic=example
# 动态路由topic的规则,若设置则会覆盖上面的canal.mq.topic
#canal.mq.dynamicTopic=canaltest\\..*
# 指定使用的partition
canal.mq.partition=0sh bin/startup.sh
yum install java-1.8.0-openjdk* -yvi logs/canal/canal.log
# 查看 Canal 实例的日志
vi logs/example/example.log
通过日志,我们看到已经启动成功,接下来我们部署 Canal Adaptor。
部署 Canal Adaptor
vim conf/application.yml
canalAdapters:
- instance: example # canal instance Name or mq topic name
groups:
- groupId: g1
outerAdapters:
- name: logger
- name: rdb # 指定为 rdb 类型同步
key: mysql1 # 指定 adapter 的唯一 key, 与表映射配置中 outerAdapterKey 对应
properties:
jdbc.driverClassName: com.mysql.jdbc.Driver
jdbc.url: jdbc:mysql://127.0.0.1:2881/amber?useUnicode=true #这里amber是待同步的database名称
jdbc.username: root@amber_babe # jdbc username,ob的用户@业务租户,创建业务租户我就不演示了
jdbc.password: root # jdbc password ob业务租户密码vim conf/rdb/mytest_user.yml
## Mirror schema synchronize config
dataSourceKey: defaultDS
destination: example
groupId: g1
outerAdapterKey: mysql1
concurrent: true
dbMapping:
mirrorDb: true
database: amber # 只改这个,需要源库、目标库一模一样./startup.sh联系我们
社区版官网论坛 open.oceanbase.com/answer
社区版项目网站提 Issue : github.com/oceanbase/oceanbase
钉钉群:33254054

文章转载自OceanBase技术闲谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




