数据库迁移

Oracle SQL Developer

Oracle SQL Developer 包含迁移支持,让用户可以将数据库对象和数据从 IBM DB2、MySQL、Microsoft SQL Server、Microsoft Access、Sybase 和 Teradata 迁移到 Oracle。

DataX

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

运行环境

DataX 需要 Python 运行环境的支持,官方推荐安装 Python2.6.X 版本。

快速开始

方式一

  1. 下载DataX

  2. 启动DataX

    1
    2
    $ cd {DATAX_HOME}
    $ python ./bin/datax.py ./job/job.json

方式二

  1. 下载DataX源码

    1
    $ git clone git@github.com:alibaba/DataX.git
  2. 通过maven打包

    1
    2
    $ cd {DATAX_HOME}
    $ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
  3. 启动DataX

    1
    2
    $ cd {DATAX_HOME}/target/datax/datax
    $ python ./bin/datax.py ./job/job.json

说明:打包成功后的DataX包位于 {DATAX_HOME}/target/datax/datax/ 目录下

配置

  1. 根据模板创建作业的配置文件(JSON格式)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
{
"job": {
"setting": {
"speed": {
"channel": 8
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "${jdbc_username_r}",
"password": "${jdbc_password_r}",
"connection": [
{
"jdbcUrl": ["${jdbc_url_r}"],
"querySql": [
"SELECT id, username, password, nickname, salt, phone, email, avatar, lang_key, activated, activation_key, reset_key, reset_date, created_by, created_at, updated_by, updated_at FROM sys_user"
]
}
]
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"username": "${jdbc_username_w}",
"password": "${jdbc_password_w}",
"column": [
"id", "username", "password", "nickname", "salt", "phone", "email", "avatar", "lang_key", "activated", "activation_key", "reset_key", "reset_date", "created_by", "created_at", "updated_by", "updated_at"
],
"connection": [
{
"jdbcUrl": "${jdbc_url_w}",
"table": ["sys_user"]
}
],
"preSql": [
"TRUNCATE TABLE @table"
]
}
}
}
]
}
}

(1)可通过命令查看配置模板:python ./bin/datax.py -r mysqlreader -w mysqlwriter
(2)job.setting.speed.byte配置全局的byte限速,core.transport.channel.speed.byte配置单个channel的byte限速(channel个数 = 全局的byte限速 / 单个channel的byte限速)

  1. 启动DataX
    1
    2
    $ cd {DATAX_HOME}
    $ python ./bin/datax.py ./job/mysql2mysql.json -p"-Djdbc_username_r=root -Djdbc_password_r=root -Djdbc_url_r=jdbc:mysql://127.0.0.1:3306/cloud -Djdbc_username_w=root -Djdbc_password_w=root -Djdbc_url_w=jdbc:mysql://127.0.0.1:3306/test"