企业级应用中常遇到sqlserver粑颇岔鲷、mysql、Oracle之间互相迁移的场景,或者sqlserv髫潋啜缅er在不同版本间做数据迁移。在同版本同数据库基础上我们可以做主从同步,但不同数据库或不同版本就遇到问题了。本篇便是为了帮助那些遇到此问题的童鞋
工具/原料
linuxorwindows
DataX-src源码orDatax-bin工具包
方法/步骤
1、配置环境JDK(1.6以上,推荐1.6)Python(推荐Python2.6.X)ApacheMaven3.x注:也可以在windows上部署,只要有环境就可以了
2、下载源码or工具包源码:壹执慵驾github.com/Arvin-Mark/DataX-src工具包:github.com/Arvin-Mark/datax-bin请自行选择下载方式
3、启动一个mysql或其他数据库实例,并创建两个测试库。名字自行定义我这里是school和school_shanghai
4、分别在两个库中建立相同表结构的表我这里分别建了两个t_student表
5、往其中一个库中插入一些数据
6、配置config.json,用于从一个库读数据写入到另外一个库{"job&quo隋茚粟胫t;:{"content&qu泠贾高框ot;:[{"reader":{"name":"mysqlreader","parameter":{ "username":"root", "password":"123456", "column":["*"], "connection":[ { "table":[ "t_student" ], "jdbcUrl":[ "jdbc:mysql://127.0.0.1:3306/school?useUnicode=true&characterEncoding=utf-8" ] } ] }},"writer":{ "name":"mysqlwriter", "parameter":{ "writeMode":"insert", "username":"root", "password":"123456", "column":["*"], "session":[ "setsessionsql_mode='ANSI'" ], "preSql":[ "deletefromt_student" ], "connection":[ { "jdbcUrl":"jdbc:mysql://127.0.0.1:3306/school_shanghai?useUnicode=true&characterEncoding=utf-8", "table":[ "t_student" ] } ] }}}],"setting":{"speed":{"channel":5}}}}
7、进入到datax-bin\bin目录执行命令pythondatax.pystream2stream.json
8、执行结果
9、检查切换到另一个库中查看表的数据是否已经同步过来