环境信息
CentOS Linux release 7.5.1804 (Core) java version "1.8.0_191"
canal 1.1.3 mysql 5.7.24
问题描述
数据库数新增数据,canal日志无变化。
canal日志内容 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=96m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release. 2019-01-17 11:17:00.303 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## set default uncaught exception handler 2019-01-17 11:17:00.396 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## load canal configurations 2019-01-17 11:17:00.402 [main] INFO com.alibaba.otter.canal.deployer.CanalLauncher - ## load canal configurations 2019-01-17 11:17:00.416 [main] INFO com.alibaba.otter.canal.deployer.CanalStater - ## start the canal server. 2019-01-17 11:17:00.860 [main] INFO com.alibaba.otter.canal.deployer.CanalController - ## start the canal server[192.168.2.106:11111] 2019-01-17 11:17:02.156 [main] WARN o.s.beans.GenericTypeAwarePropertyDescriptor - Invalid JavaBean property 'connectionCharset' being accessed! Ambiguous write methods found next to actually used [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.nio.charset.Charset)]: [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.lang.String)] 2019-01-17 11:17:02.203 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^...$ 2019-01-17 11:17:02.203 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table black filter : 2019-01-17 11:17:02.294 [main] INFO com.alibaba.otter.canal.deployer.CanalStater - ## the canal server is running now ...... 2019-01-17 11:17:03.777 [destination = example , address = /192.168.2.106:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> begin to find start position, it will be long time for reset or first position 2019-01-17 11:17:03.778 [destination = example , address = /192.168.2.106:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status 2019-01-17 11:17:03.830 [destination = example , address = /192.168.2.106:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> find start position successfully, EntryPosition[included=false,journalName=bin-log.000003,position=3880,serverId=,gtid=,timestamp=] cost : 13ms , the next step is binlog dump
example日志内容 2019-01-17 11:17:01.785 [main] INFO c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [canal.properties] 2019-01-17 11:17:01.798 [main] INFO c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [example/instance.properties] 2019-01-17 11:17:02.156 [main] WARN o.s.beans.GenericTypeAwarePropertyDescriptor - Invalid JavaBean property 'connectionCharset' being accessed! Ambiguous write methods found next to actually used [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.nio.charset.Charset)]: [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.lang.String)] 2019-01-17 11:17:02.186 [main] INFO c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start CannalInstance for 1-example 2019-01-17 11:17:02.203 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^...$ 2019-01-17 11:17:02.203 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table black filter : 2019-01-17 11:17:02.251 [main] INFO c.a.otter.canal.instance.core.AbstractCanalInstance - start successful.... 2019-01-17 11:17:03.777 [destination = example , address = /192.168.2.106:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> begin to find start position, it will be long time for reset or first position 2019-01-17 11:17:03.778 [destination = example , address = /192.168.2.106:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status 2019-01-17 11:17:03.830 [destination = example , address = /192.168.2.106:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> find start position successfully, EntryPosition[included=false,journalName=bin-log.000003,position=3880,serverId=,gtid=,timestamp=] cost : 13ms , the next step is binlog dump
原提问者GitHub用户GitGitGitWang
如果Canal日志中没有输出变更数据,有可能是Canal与MySQL之间的同步出现了问题。建议您按照以下步骤排查问题:
确认Canal Server是否正常工作。可以通过查看Canal Server的日志文件,查看Canal Server是否有启动异常,以及是否能连接到MySQL服务器和Zookeeper服务器。另外,您还可以使用telnet或者nc等工具,测试Canal Server与MySQL服务器之间的网络连接是否正常。
确认MySQL中的binlog是否启用。如果MySQL中未开启binlog,那么Canal便无法监听到MySQL的数据变更。可以登录到MySQL命令行中,执行如下命令,查看binlog是否正常启用:
SHOW VARIABLES LIKE 'log_bin';
如果结果显示Value: OFF
,则需要在MySQL配置文件中(一般是my.cnf文件),找到与binlog相关的配置项,将其修改为以下内容:
log-bin=mysql-bin
这样,就开启了MySQL的binlog功能。
确认Canal对MySQL的订阅是否正确。可以查看Canal的配置文件(通常是conf/canal.properties
),确认其中是否包含了对MySQL的订阅信息,包括MySQL的主机名、端口号、用户名、密码以及要同步的数据源等。
确认Canal是否正确同步binlog数据。可以查看Canal Server的日志文件,查看Canal Server是否成功获取到binlog数据。如果Canal Server中的binlog未发生变化,或者Canal Server无法订阅到指定的binlog数据,则可能是Canal Server与MySQL服务器之间网络连接错误或权限问题。可以检查Canal Server和MySQL服务器之间的网络连接是否正常,以及MySQL服务器是否正确设置了相关的权限。
确认Canal Adapter是否正确工作。如果Canal Server能够正确采集到MySQL的binlog数据,但Canal Adapter无法将数据写入指定的目标系统,那么可能是Canal Adapter的配置有误,或者Canal Adapter和目标系统之间网络连接等存在问题。建议您检查Canal Adapter的配置文件是否正确,以及目标系统的访问权限和网络连接是否正常。您可以尝试启动Canal Adapter的Debug模式,查看Canal Adapter的日志信息,以便更有效地发现和解决问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。