Open q303757102 opened 2 years ago
调用sqlRS失败,就日志信息看看,可以从这几个方面排查 1.连接的基本信息 2.同步任务数量 3.同步数据量(先小量试试)
调用sqlRS失败,就日志信息看看,可以从这几个方面排查 1.连接的基本信息 2.同步任务数量 3.同步数据量(先小量试试)
需要同步的数据量100多W,这个数据少不了,我在配置里面没看到有同步任务相关的配置
看看配置文件里的mysql的信息,以及关于sql参数,在调整一下批量提交数试试,是SqlRS失败(ds数据源,sql, valuse(sql映射值))方面看看
------------------ 原始邮件 ------------------ 发件人: "alibaba/canal" @.>; 发送时间: 2022年9月5日(星期一) 下午3:00 @.>; @.**@.>; 主题: Re: [alibaba/canal] canal1.1.6全量同步ES报错 com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 3, maxActive 3, creating 0 (Issue #4390)
调用sqlRS失败,就日志信息看看,可以从这几个方面排查 1.连接的基本信息 2.同步任务数量 3.同步数据量(先小量试试)
需要同步的数据量100多W,这个数据少不了,我在配置里面没看到有同步任务相关的配置
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
看看配置文件里的mysql的信息,以及关于sql参数,在调整一下批量提交数试试,是SqlRS失败(ds数据源,sql, valuse(sql映射值))方面看看 … ------------------ 原始邮件 ------------------ 发件人: "alibaba/canal" @.>; 发送时间: 2022年9月5日(星期一) 下午3:00 @.>; @.**@.>; 主题: Re: [alibaba/canal] canal1.1.6全量同步ES报错 com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 3, maxActive 3, creating 0 (Issue #4390) 调用sqlRS失败,就日志信息看看,可以从这几个方面排查 1.连接的基本信息 2.同步任务数量 3.同步数据量(先小量试试) 需要同步的数据量100多W,这个数据少不了,我在配置里面没看到有同步任务相关的配置 — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
这是我的配置文件,现在的现象是程序运行一切正常,增量同步也正常,全量同步4W数据。最后只成功了3W多,然后就是报上面的错误
canal.conf:
mode: tcp #tcp kafka rocketMQ rabbitMQ
flatMessage: true
zookeeperHosts:
syncBatchSize: 300
retries: -1
timeout: 30000
accessKey:
secretKey:
consumerProperties:
# canal tcp consumer
canal.tcp.server.host: 127.0.0.1:11111
canal.tcp.username: canal
canal.tcp.password: A5CBrfhHDwdeNl7o
# kafka consumer
kafka.bootstrap.servers: 127.0.0.1:9092
kafka.enable.auto.commit: false
kafka.auto.commit.interval.ms: 1000
kafka.auto.offset.reset: latest
kafka.request.timeout.ms: 40000
kafka.session.timeout.ms: 30000
kafka.isolation.level: read_committed
kafka.max.poll.records: 1000
# rocketMQ consumer
rocketmq.namespace:
rocketmq.namesrv.addr: 127.0.0.1:9876
rocketmq.batch.size: 1000
rocketmq.enable.message.trace: false
rocketmq.customized.trace.topic:
rocketmq.access.channel:
rocketmq.subscribe.filter:
# rabbitMQ consumer
rabbitmq.host:
rabbitmq.virtual.host:
rabbitmq.username:
rabbitmq.password:
rabbitmq.resource.ownerId:
srcDataSources:
defaultDS:
url: jdbc:mysql://xxxxx/xxx?useSSL=false&autoReconnect=true&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
username: root
password: xxxxx
canalAdapters:
- instance: example # canal instance Name or mq topic name
groups:
- groupId: g1
outerAdapters:
- name: logger
- name: es7
hosts: http://xxx:9200 # 127.0.0.1:9200 for rest mode
properties:
mode: rest # or rest
security.auth: elastic:xxxx # only used for rest mode
cluster.name: xxx
终于找到问题了,需要加一个最大连接数。但是配置文件,以及相关文档根本没提及,谷歌真是个好东西。 再怎么也应该把这个maxActive参数添加到配置文件里面呀,不知道开发人员怎么想的,真的坑死了...
srcDataSources:
defaultDS:
url: 这里填源数据库的jdbc连接信息,例:jdbc:mysql://127.0.0.1:3306/testdb
username: 数据库账号,例:root
password: 数据库密码,例:root
maxActive: 100 #额外增加这一行,默认的连接数只有3,会导致全量同步出现异常,导致全量同步数据缺失,最好改大一点
canalAdapters:
其实改大批量次数也可以,我记得源码里是通过获取的数据量动态创建线程数量的(去年春老版本没这个参数好像,不设置会不会动态计算), 把批次数据量调大应该也行(不并行0.0),解决就好。
------------------ 原始邮件 ------------------ 发件人: "alibaba/canal" @.>; 发送时间: 2022年9月6日(星期二) 下午3:46 @.>; @.**@.>; 主题: Re: [alibaba/canal] canal1.1.6全量同步ES报错 com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 3, maxActive 3, creating 0 (Issue #4390)
终于找到问题了,需要加一个最大连接数。但是配置文件,以及相关文档根本没提及,谷歌真是个好东西。
再怎么把这个maxActive参数添加到配置文件里面呀,真的坑死了...
srcDataSources: defaultDS: url: 这里填源数据库的jdbc连接信息,例:jdbc:mysql://127.0.0.1:3306/testdb username: 数据库账号,例:root password: 数据库密码,例:root maxActive: 100 #额外增加这一行,默认的连接数只有3,会导致全量同步出现异常,导致全量同步数据缺失,最好改大一点 canalAdapters:
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>
兄弟,你用的canal_adapter 1.1.6是哪个版本的,我用1.1.6.release版的启动不了,一直报这个错。
试试换一下jdk版本
------------------ 原始邮件 ------------------ 发件人: "alibaba/canal" @.>; 发送时间: 2022年9月16日(星期五) 晚上9:45 @.>; @.**@.>; 主题: Re: [alibaba/canal] canal1.1.6全量同步ES报错 com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 3, maxActive 3, creating 0 (Issue #4390)
兄弟,你用的canal_adapter 1.1.6是哪个版本的,我用1.1.6.release版的启动不了,一直报这个错。
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>
遇到相同的问题,maxActive调大了,几十万的数据可以正常同步,但是同步千万级的表,没法把maxActive调整这么大,还是报这个错,请问怎么处理?
Question
canal_adapter 全量同步报错信息如下,有没有什么解决办法呀?
2022-09-02 20:52:12.295 [pool-4-thread-4] ERROR c.a.otter.canal.client.adapter.es7x.etl.ESEtlService - com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 3, maxActive 3, creating 0 java.lang.RuntimeException: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 3, maxActive 3, creating 0 at com.alibaba.otter.canal.client.adapter.support.Util.sqlRS(Util.java:65) ~[client-adapter.common-1.1.6-SNAPSHOT.jar:na] at com.alibaba.otter.canal.client.adapter.es7x.etl.ESEtlService.executeSqlImport(ESEtlService.java:64) ~[na:na] at com.alibaba.otter.canal.client.adapter.support.AbstractEtlService.lambda$importData$1(AbstractEtlService.java:91) ~[client-adapter.common-1.1.6-SNAPSHOT.jar:na] at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na] at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na] Caused by: com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 60000, active 3, maxActive 3, creating 0 at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1749) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1419) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1399) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:1389) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:100) ~[druid-1.2.6.jar:1.2.6] at com.alibaba.otter.canal.client.adapter.support.Util.sqlRS(Util.java:50) ~[client-adapter.common-1.1.6-SNAPSHOT.jar:na] ... 6 common frames omitted