最近有一个项目需求, 甲方数据库是原库, 数据需要实时更新且数据量特别大未分表, 所以就打算拿到甲方的数据自建数据库分表, 但是需要数据同步,
所以就选用了阿里巴巴的方案Canal; 工作原理:解析MySQL的binlog日志,提供增量数据, 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费;
示例环境为Linux单机Canal环境, Windows环境大同小异;
#查看mysql是否打开bin_log日志show variables like '%log_bin%';
[mysqld]log-bin=mysql-bin # 开启 binlogbinlog-format=ROW # 选择 ROW 模式server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;FLUSH PRIVILEGES;
wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gztar -zxvf canal.deployer-1.1.5.tar.gz
进入到conf/example, 修改instance.properties文件
回到上级bin目录, 执行startup.sh