Canal监听阿里云RDS

canal简介

早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部版本已经支持mysql和oracle部分版本的日志解析,当前的canal开源版本支持5.7及以下的版本(阿里内部mysql 5.7.13, 5.6.10, mysql 5.5.18和5.1.40/48)

canal可以干嘛:

基于日志增量订阅&消费支持的业务:
数据库镜像
数据库实时备份
多级索引 (卖家和买家各自分库索引)
search build
业务cache刷新
价格变化等重要业务消息

下载地址:链接: https://github.com/alibaba/canal/releases

在这里插入图片描述

RDS

有不少公司的生产环境数据库用的是阿里云的RDS,我们知道canal监听我们自己服务器的数据库只需要改改数据库的配置就行了但是RDS怎么改呢接下来让我们开始

1 创建RDS账号

登入到RDS控制台
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.配置canal

进入到usr/local目录下,在该目录下使用如下命令新建canal文件夹

cd /usr/local
ls
mkdir canal

给予权限

//给canal赋予读写权限
chmod 777 canal
//给canal及其以下子目录赋予读写权限
chmod -R 777 canal

使用工具将下载好的canal放置在canal文件下
在这里插入图片描述
解压canal的压缩包

tar -zxvf canal.deployer-1.1.4.tar.gz

在这里插入图片描述
解压后会出现一些文件夹
在这里插入图片描述

  1. bin
    启动和停止的脚本
  2. conf
    配置文件
  3. lib
    一些jar包不用管
  4. log
    存放canal日志启动好后可以到这里来看日志
修改canal的配置文件

在这里插入图片描述
进入到conf下的example下面会有一个instance.properties使用vim进行修改
在这里插入图片描述

wq保存退出,修改完成后,cd到bin目录下使用如下命令启动canal

./startup.sh

启动完成进入logs下的canal查看日志,如果看到这样的那代表启动成功
在这里插入图片描述
查看是否监听成功,如果看到这个,那就代表监听成功

 c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^st_aiui.res_channel_resource$|^st_aiui.res_channel$

在这里插入图片描述
至此,canal监听RDS成功

### 配置 Canal 监听 Amazon RDS 实现增量数据同步 为了实现通过 Canal 监听 Amazon RDS 并完成增量数据同步的任务,需遵循一系列特定的配置步骤。虽然提供的参考资料未直接提及此过程,但可以结合 Flink 连接器的相关信息[^3]和其他开源社区的最佳实践来构建解决方案。 #### 1. 准备工作 - **安装并部署 Canal Server**: 下载最新版本的 Canal,并按照官方文档中的说明进行安装和启动。 - **创建安全组规则**: 确保 Amazon RDS 的安全设置允许来自运行 Canal 应用程序服务器的 IP 地址访问 MySQL 数据库实例。 #### 2. 修改 Canal 配置文件 编辑 `canal.properties` 文件以适应 AWS 环境: ```properties # canal server id, must be unique in a cluster environment. canal.id=1001 # mysql user and password with binlog replication privilege on the target database canal.instance.master.address=<your-rds-endpoint>:3306 canal.instance.dbUsername=replication_user canal.instance.dbPassword=your_password_here ``` 对于 Amazon RDS 特定参数,在同一文件中添加如下内容: ```properties # Enable GTID-based replication mode (if supported by your version of MySQL) canal.instance.gtidon=true ``` #### 3. 启用二进制日志记录功能 登录到目标 RDS 实例并通过 SQL 命令启用二进制日志记录(binlog),这是 Canal 正常工作的前提条件之一。注意这可能会影响性能,因此建议仅当确实需要时才开启该选项。 ```sql SET GLOBAL log_bin_trust_function_creators = 1; FLUSH LOGS; -- 刷新现有日志文件并关闭当前会话之前的任何打开的日志文件 SHOW MASTER STATUS; -- 查看最新的 Binlog 文件名及其位置偏移量 ``` #### 4. 创建具有适当权限的用户账户 授予新创建用于 Canal 访问的 MySQL 用户足够的权限以便它可以读取所需的表结构变化事件。 ```sql GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%'; FLUSH PRIVILEGES; ``` #### 5. 测试连接与监控 最后一步是在本地环境中测试整个流程是否正常运作,确认 Canal 能够成功捕获到来自于 RDS 上发生的 DML/DCL 操作变更通知。一旦验证无误,则可考虑将其投入生产环境使用。
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值