在实际大数据工作中,常常有实时监测数据库变化或实时同步数据到大数据存储,解决大数据实时分析的需求。同时,增量同步数据库数据相比全量查询也减少了网络带宽消耗。本文以Mysql的bin-log到Kafka为例,使用Canal Server,通过SODBASE引擎不用写程序就可以设定数据同步规则。
一、搭建Canal Server
1.1. 打开bin-log
(1)编辑mysql配置文件
vi /etc/my.cnf
添加
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1#配置mysql replaction需要定义,不能和canal的slaveId重复
运行mysql客户端
mysql -uroot -p
mysql>show binlog events;
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| Log_name | Pos |Event_type | Server_id | End_log_pos |Info |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
| mysql-bin.000001 | 4 |Format_desc | 1 | 106 | Server ver: 5.1.51-log,Binlog ver: 4 |
+------------------+-----+-------------+-----------+-------------+---------------------------------------+
1 row in set (0.00 sec)
(2)重启mysql
[root@localhost user]# service mysqld stop
Stoppingmysqld: [ OK ]
[root@localhost user]# service mysqld start
Startingmysqld: [ OK ]
1.2. 下载 canal.deployer-1.0.21.tar.gz