企业上云
企业上云
- SAP 监控
- CDN下载加速
- 全球数据传输加速
- 高可用网站架构云化
- 核心数据库上云
- 应用容器化上云
- Linux服务器迁移上云
- 域名转入华为云解析
- 第三方云集群迁移至华为云CCE
- 使用自定义域名托管静态网站
- 通过VPN构建跨境网络
- 云上敏捷开发DevOps实践
- 基于Discuz快速搭建论坛
- 基于Tomcat快速构建Java web环境
- 基于WordPress搭建个人网站
- 快速构建FTP站点
- 快速构建高可用四层负载均衡
- 无服务器告警推送
- 基于Jenkins快速部署源码编译环境
- 快速部署高可用MongoDB
- 基于开源Odoo快速部署ERP系统
- 快速部署高可用七层负载均衡
- SAP Backint安装指南
- 华为云SAP on DB2安装
- 华为云基于SIOS的SAP高可用配置
- 快速部署战斧跨境电商管理系统
- 基于MetaTown构建数字资产平台
- 数字资产秒杀场景解决方案
- 基于开源wangmarketCMS快速建站
- 快速部署高可用MHA-MySQL集群
- 快速部署高可用的RabbitMQ集群
- 数据库上云
- 语音识别解决方案
- 游戏批量开服数据库解决方案
- 基于Zpan快速构建私有网盘
- 等保三级解决方案
- 基于迅响快速构建响应式网站
- 快速部署高可用Redis集群
- 快速部署赛瀚德MES系统
- 基于Ploto构建自动驾驶平台
- 无服务器日志实时分析
- 快速创建云数据库RDS 克隆实例
- 无服务器图片生成缩略图
- 快速构建Node.js运行环境
- 快速部署高可用Docker Swarm集群
- 云和恩墨数据库统一管理平台
- 基于万户快速建站
- 防勒索病毒安全解决方案
- 基于SNAT公网访问解决方案
- 基于CCE快速部署Volcano批量调度系统
- 无服务器文件解压
- 定时开关机解决方案
- 运维平台数据库解决方案
- CDN日志定时转储解决方案
- 基于VPCEP实现跨VPC连接ELB
- 基于Nginx Ingress实现灰度发布
- 基于蓝凌MK-PaaS快速构建OA系统
- 快速部署SAP S4HANA云上环境
- 快速部署高可用PostgreSQL
- 快速部署宝塔面板
- 通过Nginx反向代理访问OBS最佳实践
- 快速部署永洪BI平台
- 基于SmartBI快速构建商业智能分析平台
- 基于CCE容器快速建站
- 快速搭建OpenVPN
- 云上跨VPC添加实例到ELB最佳实践
- 企业云上办公桌面解决方案
- CDN自动刷新缓存解决方案
- CDN自动预热解决方案
- 快速部署TongWeb应用服务器
- 基于GitLab快速部署仓库管理系统
- 无服务器视频转码解决方案
- 快速部署SAP B1云上环境
- 无服务器日志文件上传LTS
- 基于云手机搭建安卓测试集群
- 基于Hexo快速搭建博客
- 基于Zabbix搭建运维监控平台
- 快速搭建WDCP管理系统
- 游戏服务托管解决方案
- 快速构建基于事件网格的运维审计环境
- 快速构建高可用Pulsar集群
- 快速构建高可用Solr集群
- 基于JumpServer快速搭建远程安全运维环境
- 快速搭建高可用Elasticsearch集群
- 基于DataGuard实现Oracle数据库快速迁移上云
- 快速搭建高可用InfluxDB集群
- 基于DBSyncer快速实现数据库迁移
- 基于WGCLOUD搭建运维监控平台
- 快速搭建DataX数据库迁移环境
- 基于辅助弹性网卡实现ECS绑定多IP
- 定时批量创建/删除ECS实例
- 公网IP不变业务迁移最佳实践
- 文档下载
- 通用参考
链接复制成功!
开始使用
验证DataX迁移服务正常运行
- 登录Flexus云服务器X实例控制台,选择创建的云服务器,单击远程登录,进入Linux云服务器。
图1 登录云服务器图2 登录Flexus云服务器
- 在Linux云服务器中输入账号和密码后回车。
- 输入命令:cd /opt/datax进入该目录,执行python3 bin/datax.py job/job.json查看回显,如回显为下图红框所示,则表示datax服务成功搭建。
图3 执行datax运行命令图4 查看执行回显
简介DataX迁移配置模板文件生成
- DataX的数据同步工作,需要使用json文件来保存配置信息。配置writer、reader等信息,我们可以使用命令来生成一份配置的json模板,在这个模板上进行修改,生成最终的json文件。
- 注意:目标数据库writer配置中的jdbcUrl字段值为字符串。
- 运行如下命令生成模板文件,将其中的{reader}替换成自己想要的reader组件名字,将其中的{writer}替换成自己想要的writer组件名字。
python3 bin/datax.py -r {reader} -w {writer}
支持的reader:
cassandrareader drdsreader hbase094xreader hbase20xsqlreader loghubreader oceanbasev10reader oraclereader otsstreamreader sqlserverreader tdenginereader clickhousereader ftpreader hbase11xreader hdfsreader mongodbreader odpsreader ossreader postgresqlreader starrocksreader tsdbreader datahubreader gdbreader hbase11xsqlreader kingbaseesreader mysqlreader opentsdbreader otsreader rdbmsreader streamreader txtfilereader
支持的writer:
adbpgwriter databendwriter elasticsearchwriter hbase11xsqlwriter hologresjdbcwriter mongodbwriter ocswriter osswriter selectdbwriter tdenginewriter adswriter datahubwriter ftpwriter hbase11xwriter kingbaseeswriter mysqlwriter odpswriter otswriter sqlserverwriter tsdbwriter cassandrawriter doriswriter gdbwriter hbase20xsqlwriter kuduwriter neo4jwriter oraclewriter postgresqlwriter starrockswriter txtfilewriter clickhousewriter drdswriter hbase094xwriter hdfswriter loghubwriter oceanbasev10writer oscarwriter rdbmswriter streamwriter
以MySQL迁移SQL Server为例,运行如下命令生成模板,红色字典区域为json数据模板:
python3 bin/datax.py -r mysqlreader -w sqlserverwriter
图5 生成模板 - 模板字段简介
- job
- 配置文件的主要对象,包含整个数据迁移任务的配置信息。
- setting
- 位于job对象下,用于设置数据迁移任务的全局参数,如并发通道数(channel),该参数决定了DataX在执行数据迁移时使用的并行线程数。
- content
- 位于job对象下,是一个数组,包含多个数据迁移任务的具体配置。每个任务都包含reader和writer两个部分。
- reader
- 位于content数组的每个对象中,用于配置数据源读取器。
- name:读取器的名称,如mysqlreader表示MySQL数据源读取器。
- parameter:读取器的参数配置,包含数据源连接信息、要读取的字段等。
- username:数据源的用户名。
- password:数据源的密码。
- column:要读取的字段列表。
- connection:数据源连接信息,包括JDBC URL和要读取的表名等。
- 位于content数组的每个对象中,用于配置数据源读取器。
- writer
- 位于content数组的每个对象中,用于配置目标数据库写入器。
- name:写入器的名称,如sqlserverwriter表示SQL Server目标数据库写入器。
- parameter:写入器的参数配置,包含目标数据库连接信息、要写入的字段等。
- username:目标数据库的用户名。
- password:目标数据库的密码。
- column:要写入的字段列表,应与数据源读取器中的字段列表对应。
- postSql:写入数据到目的表后,会执行这里的标准语句。
- preSql:写入数据到目的表前,会先执行这里的标准语句,例如:清空表数据。
- connection:目标数据库连接信息,包括JDBC URL和要写入的表名等。
- 位于content数组的每个对象中,用于配置目标数据库写入器。
图6 模板示例:{ "job": { "setting": { "speed": { "channel": "4" } }, "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "mysql_user", "password": "mysql_password", "column": ["id", "name", "age"], "connection": [ { "jdbcUrl": ["jdbc:mysql://localhost:3306/source_db"], "table": ["source_table"] } ] } }, "writer": { "name": "sqlserverwriter", "parameter": { "username": "sqlserver_user", "password": "sqlserver_password", "column": ["id", "name", "age"], "connection": [ { "jdbcUrl": "jdbc:sqlserver://localhost:1433;databaseName=target_db", "table": ["target_table"] } ] } } } ] } }
- job
数据库MySQL迁移MySQL操作验证
- 源端数据库服务器 和 目标数据库服务器,分别需对DataX服务器开放对应数据库3306访问端口,请参考修改安全组规则,配置IP地址白名单,以便DataX服务可以连接源端和目标端数据库。
- 目标端数据库如果和DataX数据库在同一子网下,模板中目标端数据库可配置私网。
- 注意:DataX迁移数据库时,reader、writer插件要匹配数据库的版本,DataX服务对应数据库的reader插件路径在DataX工作目录下的plugin/reader/{reader}}/libs下,writer插件路径在DataX工作目录下的plugin/writer/{writer}}/libs下。
- 本次以MySQL-8.0.39版本示例测试数据库迁移同步。
- 迁移前的源端和目标端的数据库、表信息展示。
图7 源端数据库、表数据图8 目标端数据库、表数据
- 迁移Json模板配置(读取源端数据库表中的id,name部分字段信息,迁移到目的端数据库)
图9 Json迁移模板
- 输入命令:cd /opt/datax进入该目录,执行python3 bin/datax.py mysql2mysql.json,查看服务迁移结果。
图10 查看执行结果图11 查看目的端数据库写入情况
数据库MySQL迁移Oracle操作验证
- 源端数据库服务器需对DataX服务器开放对应数据库3306访问端口,目标端数据库服务器需对DataX服务器开放对应数据库1521访问端口,请参考修改安全组规则,配置IP地址白名单,以便DataX服务可以连接源端和目标端数据库。
- 目标端数据库如果和DataX数据库在同一子网下,模板中目标端数据库可配置私网。
- 注意:DataX迁移数据库时,reader、writer插件要匹配数据库的版本,DataX服务对应数据库的reader插件路径在DataX工作目录下的plugin/reader/{reader}}/libs下,writer插件路径在DataX工作目录下的plugin/writer/{writer}}/libs下。
- 本次以MySQL-8.0.39,Oracle-19c版本示例测试异构数据库迁移同步。
- 迁移前的源端和目标端的数据库、表信息展示。
图12 源端数据库、表数据图13 目标端数据库、表数据
- 迁移Json模板配置(读取源端数据库表中的id,name部分字段信息,迁移到目的端Oracle数据库)
图14 Json迁移模板
- 输入命令:cd /opt/datax进入该目录,执行python3 bin/datax.py mysql2oracle.json,查看服务迁移结果。
图15 查看执行结果图16 查看目的端数据库写入情况
父主题: 实施步骤