- 前言
在上文Canal大作战基本已经实现了数据库实时根据binlog同步到ES的增删改。但是若要放到生产中,基本配置显然是不够的。接下去我就平时遇到的点记录下来!
-
重点
1.canal服务重启或者新部署,之前未进行同步的数据该怎么处理?
这个情况要分两种,第一种是之前的数据没有binlog,那么这个只能自己通过代码来进行初始化的同步,第二种是有binlog的。第二种比较好操作,只要指定下canal server起来的时候读取的binlog即可,如下图:
canal.instance.master.journal.name 一般在/var/lib/mysql路径下,可以自己决定从哪个binlog开始。
canal.instance.master.position 可以在mysql下通过show master status in 'xxx'(binlog名) limit 0, 10指令来获取你需要的position;
这个时候这里有个坑,就是和instance.properties平级的目录下有一个meta.dat文件中记录了
meta.dat文件中记录了canal服务取binlog的信息。如果不删掉,或者修改,那么就算在instance.properties改了也是不起效果的。
最后发现canal服务启动的时候打的日志就可以知道成功啦!