# 常见问题汇总(FAQ)

📚 温馨提示: 据用户反馈统计,95% 的使用问题都能通过认真阅读文档得到解决。我们建议您在联系客服前,先查阅相关操作指南、配置说明或本 FAQ。这不仅能更快定位问题,还能帮助您更深入地掌握 DataMover 的强大能力。

阅读即赋能,理解即掌控。祝您使用愉快,数据流转如丝般顺滑!✨

  • 📞 客服电话:18032410846
  • 💬 微信客服:扫描官网二维码添加
  • 📧 邮箱:service@datamover.cm

# 安装部署类

# 1. DataMover 是免费的吗?

是的!DataMover 提供永久免费版,适用于轻量级数据同步、迁移、上报等场景。免费版已包含核心功能,可满足大多数中小项目需求。

# 2. DataMover 是否提供Docker镜像?

DataMover暂未提供Docker镜像。DataMover绑定机器码进行授权,Docker无法固定实例,因此暂未发布Docker镜像。

# 3. DataMover的安装包tar.gz和zip有什么区别

解压后的文件没有任何区别,建议选择自己熟悉的压缩包使用。通常建议linux部署下载tar.gz包,windows部署下载zip包。

# 4. 执行完 install.sh 后,无法访问 https://localhost:8000

请按以下步骤排查:

  1. 确认服务是否已正常启动

    运行以下命令查看管理端和工作节点的日志:

    tail -300f /home/datamover/manager/logs/manager.log
    tail -300f /home/datamover/worker/logs/worker.log
    
    • 如果日志中出现 ERRORException,请根据具体错误信息进一步排查(如数据库连接失败、端口冲突等)。
    • 如果日志末尾显示类似 Started Application in X secondsServer started on port 8000,说明服务已正常启动。
  2. 检查服务器防火墙设置

    即使服务已启动,若服务器启用了防火墙(如 firewalldufw 或云平台安全组),8000 端口可能未开放

    • 本地测试:可先在服务器本机执行 curl -k https://localhost:8000 验证服务是否响应。
    • 远程访问请确保:
      • Linux 防火墙放行 8000 端口(例如:firewall-cmd --add-port=8000/tcp --permanent
      • 云服务器(如阿里云、腾讯云)的安全组规则允许入方向 8000 端口

# 5. 数据库连接失败

查看manager.log日志,若发现类似,错误日志时,可以使用数据库客户端工具,验证账号是否可以正常连接数据库。确认数据库连接信息、权限无误后,重新安装manager和worker。

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
ERROR 2026-01-07 13:12:26.278 [Druid-ConnectionPool-Create-1598068850] DruidDataSource.run(2916): create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/datamover1?serverTimezone=SERVER&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai, errorCode 1045, state 28000
java.sql.SQLException: Access denied for user 'datamover2'@'127.0.0.1' (using password: YES)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-j-8.0.31.jar:8.0.31]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1682) ~[druid-1.2.23.jar:?]
	at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1803) ~[druid-1.2.23.jar:?]
	at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2914) ~[druid-1.2.23.jar:?]

# 6. 端口被占用

DataMover默认使用80008011端口,若看到类似的日志,请确认下端口是否被占用。

INFO  2026-01-07 08:20:57.131 [main] org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener.logMessage(136): 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
ERROR 2026-01-07 08:20:57.267 [main] org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter.report(40): 

***************************
APPLICATION FAILED TO START
***************************

Description:

Web server failed to start. Port 8011 was already in use.

Action:

Identify and stop the process that's listening on port 8011 or configure this application to listen on another port.

需要修改默认端口,可以修改manager或者worker的conf目录中的application.properties文件

server.port=8000

指定未被占用的端口,执行bin目录中的stop.sh和start.sh启动项目。

# 7. 无在线节点

安装完成DataMover,正常登录创建数据源,点击测试连接提示:

验证数据源连接失败!xxx连接失败,xxx连接异常,无可用节点,请去节点管理页面检查是否有在线节点

这种原因主要为worker没有在manager成功注册,先打开节点管理页面查看是否有执行引擎上线。

查看worker日志,根据日志解决问题。

tail -300f /home/datamover/worker/logs/worker.log

常见原因1:端口被占用,没有启动成功。

常见原因2:数据库连接信息配置错误。

修复后,执行worker/bin目录中的start.sh。片刻后在节点管理确认worker是否上线。


# 工具使用类

恭喜你已经完成了DataMover的安装,管理界面和执行引擎都已正常启动,下面是常见的数据同步过程中的问题。

# 1. 实时任务启动失败

DataMover 支持两类任务:

  • 普通任务

    • 全量同步:适用于数据量较小的表,可选择“清空目标表后同步”,通常用于每日一次初始化。
    • 增量同步:适用于大表,基于增量字段(如自增主键、create_timeupdate_time)周期性同步新增/变更数据。
  • 实时任务
    基于数据库的 CDC(Change Data Capture)机制,实时捕获源库的 INSERT / UPDATE / DELETE / TRUNCATE 操作,并在目标库重放对应 SQL。

# 🔍 排查步骤:

  1. 确认源数据库已正确开启 CDC 功能
    不同数据库要求如下:

    • MySQL:必须开启 binlog,且格式为 ROW,例如:

      [mysqld]
      log-bin=mysql-bin
      binlog-format=ROW
      server-id=1
      
    • PostgreSQL:需开启 WAL 并设置 wal_level = logical,同时创建具有 REPLICATION 权限的用户。

    • SQL Server:需启用数据库级 CDC 和具体表的 CDC。

    • Oracle:需配置并启动 LogMiner,并授予相应权限。

  2. 确认 JDBC 账号具备 CDC 订阅权限
    例如:

    • MySQL 用户需拥有 REPLICATION SLAVEREPLICATION CLIENT 权限;
    • PostgreSQL 用户需有 LOGIN + REPLICATION 属性;
  • 权限不足将导致任务启动即报错(常见错误如 CanalParseException)。
  1. 建议首次使用先验证基础连通性
    • 先选择一张小表,创建一个普通全量任务进行一次性同步。
    • 若成功,说明网络、账号、驱动等基础配置无误;
    • 再在此基础上配置实时任务或复杂增量任务,降低排查难度。

# 2. 任务运行失败

任务运行失败不要慌,点击任务操作列点击更多操作中的日志按钮,下载任务日志。

压缩包中有三个文件reader.log(源端数据抽取日志)、writer.log(目的端写入日志)、worker.log(引擎调度日志)。

将日志中的***报错信息发给AI***,他会告诉你问题原因,能帮助你解决百分之九十的问题

image-20260107220544248

Last Updated: 2026/1/7 17:26:43