-
Notifications
You must be signed in to change notification settings - Fork 4
canal binlog
canal-server要和mysql实例在同一台机器。
canal.id= 1234 //canal-server模拟自己是mysql-slave, 这个id相当于mysql-slaveId,要保持同master所有的slaves中不同的slaveId。
canal.ip= //不需要配置
canal.port= 11111 //异地canal-client调用canal-server时,使用的canal-server本地的port号设置。如果当前机器有多个canal-server,要配置不同的port。
canal.instance.filter.druid.ddl = true //true:过滤ddl,ddl不要自动搞。
canal.instance.filter.query.dcl = false //false:事务相关操作不能过滤,要捕获 涉及到事务的还需要再仔细看下。
canal.instance.filter.query.dml = false //false:dml(insert,update,delete,select)操作不能过滤,要捕获,最关建的sql。
canal.instance.filter.query.ddl = true //true:过滤ddl语句中的query部分,不需要,用false关闭。
canal.instance.filter.table.error = true //是否忽略表解析异常 true为忽略。
canal.instance.filter.rows = false //新增rows过滤,用于仅订阅除rows以外的数据 要使用默认制(false),使用mysql-binlog的row方式。
是否使用待考虑。
1.canal解析binlog的类
LogEventConvert(基于Linux log-event).parse(LogEvent logEvent, boolean isSeek) logEvent->Entry(canal里的标准)
1.使用canal 1.0.25,启动canal服务端时或更新数据库数据时,canal服务端报错
参考:
https://blog.csdn.net/J_bean/article/details/80027705
https://github.com/alibaba/canal/issues/494#issuecomment-372236518
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'XX') …
引起这个问题的原因是创建表的SQL语句中有“)”。根本原因是canal依赖的druid版本的问题。
目前的解决办法如下。在conf/canal.properties文件里,将如下所示的一行配置信息注释掉,然后重启就好了。
#canal.instance.tsdb.spring.xml=classpath:spring/tsdb/h2-tsdb.xml
真特么坑比!