使用Canal进行MySQL到MySQL数据库全量+增量同步以及踩坑指南

使用Canal进行MySQL到MySQL数据库全量+增量同步以及踩坑指南

背景

最近工作中遇到一个迁移数据库的需求,需要将数据库从A服务器迁移至B服务器,为了尽量减少迁移导致的停机时间,考虑使用全量迁移+增量同步的方式,最终选择使用Canal作为迁移工具

准备工作

1. 数据库

两台服务器的数据库都需要提前准备好数据库账号,用于Canal进行数据库连接,因为Canal是伪装成从库读取源数据的,所以需要对源库进行一些配置,比如账号需要授予从库权限(如果给的是最高权限账号,那基本不用担心这个)、保证Canal部署的程序与数据库网络互通、以及最重要的!开启ROW格式的Binlog,这个非常重要!

2.Canal安装

使用Canal进行全量和增量同步需要用到两个组件,Canal adapter、Canal deployer,可自行前往github仓库下载。

Canal配置启动增量同步和全量同步

1.deployer配置

将下载的两个组件解压,首先配置deployer

主要关注conf目录

进入example目录,编辑instance.properties文件:

重点关注这几个参数:canal.instance.master.addresscanal.instance.dbUsernamecanal.instance.dbPasswordcanal.instance.filter.regex(重要)

阅读更多