当前位置: 首页 > ops >正文

使用DataX同步MySQL数据

经常需要从不同环境同步数据库表数据,在这里推荐使用DataX。

下载DataX

https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz

部署DataX

将datax.tar.gz上传到服务器,解压到/data/public下,解压后目录为/data/public/datax/

编写同步配置

{"job": {"setting": {"speed": {"channel": 1},"errorLimit": {"record": 0,"percentage": 0}},"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "root","password": "********","column": ["id", "user_name", "password", "create_time"],"connection": [{"querySql": ["SELECT * FROM t_user"],"jdbcUrl": ["jdbc:mysql://172.17.9.100:3306/test?useSSL=false"]}]}},"writer": {"name": "mysqlwriter","parameter": {"print": true,"username": "root","password": "********","column": ["id", "user_name", "password", "create_time"],"preSql": ["DELETE FROM t_user"],"writeMode": "insert","connection": [{"jdbcUrl": "jdbc:mysql://172.17.10.200:3306/test2?useSSL=false","table": ["t_user"]}]}}}]}
}

同步数据

执行如下命令

[root@dev datax]# python ./bin/datax.py my2my.json

执行结果如下,表示同步正常:

2025-06-09 17:00:05.535 [job-0] INFO  JobContainer - jobContainer starts to do split ...
2025-06-09 17:00:05.536 [job-0] INFO  JobContainer - Job set Channel-Number to 1 channels.
2025-06-09 17:00:05.538 [job-0] INFO  JobContainer - DataX Reader.Job [mysqlreader] splits to [1] tasks.
2025-06-09 17:00:05.538 [job-0] INFO  JobContainer - DataX Writer.Job [mysqlwriter] splits to [1] tasks.
2025-06-09 17:00:05.563 [job-0] INFO  JobContainer - jobContainer starts to do schedule ...
2025-06-09 17:00:05.566 [job-0] INFO  JobContainer - Scheduler starts [1] taskGroups.
2025-06-09 17:00:05.568 [job-0] INFO  JobContainer - Running by standalone Mode.
2025-06-09 17:00:05.573 [taskGroup-0] INFO  TaskGroupContainer - taskGroupId=[0] start [1] channels for [1] tasks.
2025-06-09 17:00:05.581 [taskGroup-0] INFO  Channel - Channel set byte_speed_limit to -1, No bps activated.
2025-06-09 17:00:05.582 [taskGroup-0] INFO  Channel - Channel set record_speed_limit to -1, No tps activated.
2025-06-09 17:00:05.647 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] taskId[0] attemptCount[1] is started
2025-06-09 17:00:05.654 [0-0-0-reader] INFO  CommonRdbmsReader$Task - Begin to read record by Sql: [SELECT * FROM t_user
] jdbcUrl:[jdbc:mysql://172.17.9.100:3306/test?useSSL=false&yearIsDateType=false&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&rewri    teBatchedStatements=true].
2025-06-09 17:00:05.669 [0-0-0-reader] INFO  CommonRdbmsReader$Task - Finished read record by Sql: [SELECT * FROM t_user
] jdbcUrl:[jdbc:mysql://172.17.10.200:3306/test?useSSL=false&yearIsDateType=false&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&rewri    teBatchedStatements=true].
2025-06-09 17:00:05.748 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] taskId[0] is successed, used[101]ms
2025-06-09 17:00:05.748 [taskGroup-0] INFO  TaskGroupContainer - taskGroup[0] completed it's tasks.
2025-06-09 17:00:20.040 [job-0] INFO  StandAloneJobContainerCommunicator - Total 8 records, 146 bytes | Speed 10B/s, 0 records/s | Error 0 re    cords, 0 bytes |  All Task WaitWriterTime 0.000s |  All Task WaitReaderTime 0.000s | Percentage 100.00%
2025-06-09 17:00:20.040 [job-0] INFO  AbstractScheduler - Scheduler accomplished all tasks.
2025-06-09 17:00:20.041 [job-0] INFO  JobContainer - DataX Writer.Job [mysqlwriter] do post work.
2025-06-09 17:00:20.041 [job-0] INFO  JobContainer - DataX Reader.Job [mysqlreader] do post work.
2025-06-09 17:00:20.041 [job-0] INFO  JobContainer - DataX jobId [0] completed successfully.
2025-06-09 17:00:20.042 [job-0] INFO  HookInvoker - No hook invoked, because base dir not exists or is a file: /data/public/datax/hook
2025-06-09 17:00:20.043 [job-0] INFO  JobContainer -[total cpu info] =>averageCpu                     | maxDeltaCpu                    | minDeltaCpu-1.00%                         | -1.00%                         | -1.00%[total gc info] =>NAME                 | totalGCCount       | maxDeltaGCCount    | minDeltaGCCount    | totalGCTime        | maxDeltaGCTime         | minDeltaGCTimePS MarkSweep         | 1                  | 1                  | 1                  | 0.032s             | 0.032s                 | 0.032sPS Scavenge          | 1                  | 1                  | 1                  | 0.009s             | 0.009s                 | 0.009s2025-06-09 17:00:20.044 [job-0] INFO  JobContainer - PerfTrace not enable!
2025-06-09 17:00:20.044 [job-0] INFO  StandAloneJobContainerCommunicator - Total 8 records, 146 bytes | Speed 10B/s, 0 records/s | Error 0 re    cords, 0 bytes |  All Task WaitWriterTime 0.000s |  All Task WaitReaderTime 0.000s | Percentage 100.00%
2025-06-09 17:00:20.045 [job-0] INFO  JobContainer -
任务启动时刻                    : 2025-06-09 17:00:02
任务结束时刻                    : 2025-06-09 17:00:20
任务总计耗时                    :                 17s
任务平均流量                    :               10B/s
记录写入速度                    :              0rec/s
读出记录总数                    :                   8
读写失败总数                    :                   0
http://www.xdnf.cn/news/13040.html

相关文章:

  • 【免费赠书5本】《DeepSeek大模型高性能核心技术与多模态融合开发》
  • 【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
  • S5P6818_驱动篇(26)网络驱动
  • Python 如何在Python 3.6上安装PIP
  • JAVA后端开发——多租户
  • Python importlib 动态加载
  • SCRM客户关系管理软件的内容管理功能深度解析
  • modelscope下载gguf格式模型
  • 快速排序算法改进:随机快排-荷兰国旗划分详解
  • 【PostgreSQL系列】PostgreSQL连接参数
  • 深入理解 S3 标签字符清洗的正则表达式实践
  • Python Day47
  • DAY 19 常见的特征筛选算法
  • 如何实现本地快速识别相似图像
  • [尚庭公寓]01-项目概述
  • 容器-使用slim减少10x+大模型镜像
  • 信息系统分析与设计复习
  • Qt项目中使用 CmdManager 实现高效的命令分发机制
  • 国际上与麦角硫因相关的人体功效试验文献分享
  • 使用homeassistant 插件将tasmota 接入到米家
  • mysql8.0忘记root密码情况下修改密码
  • VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
  • 十一、MySQL 事务底层与高可用原理
  • 基于PSO与BP神经网络回归模型的特征选择实战(Python实现)
  • MySQL--慢查询日志、日志分析工具mysqldumpslow
  • Java多线程实现之Runnable接口深度解析
  • SQLSERVER-DB操作记录
  • PyTorch学习路径与基础实践指南
  • window 显示驱动开发-如何查询视频处理功能(二)
  • SAM2Long本地部署,视频分割处理,绿幕抠像,超长视频支持