因Oracle dblink BUG导致每次查询大量数据的时候无法查询,现在通过datax直接将重要数据同步过来。 datax的文档还是很齐全的,这里走了许多弯路。

{
    "job": {
        "setting": {
            "speed": {
                "channel": 5
            }
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "username": "selectuser",
                        "password": "selectpass",
                        "column": ['*'],
                        "splitPk": "id",
                        "connection": [
                            {
                               "table": ["user"],
                               "jdbcUrl": ["jdbc:mysql://192.168.0.2:3306/mall_db"],
                            }
                        ]
                      }
                    },
                "writer": {
                    "name": "oraclewriter",
                    "parameter": {
                        "username": "oracleuser",
                        "password": "oraclepass",
                        "column": ['*'],
                        "truncate": "true",
                        "preSql": ["truncate table user"],
                        "connection": [
                           {
                              "jdbcUrl": "jdbc:oracle:thin:@172.19.12.149:1521:oracleuser",
                              "table": ['user'],
                           }
                        ]
                    }
                }
                }
        ]
    }
}

注意: 1.在Oracle建立表的时候,所有的表名以及字段全部采用大写,否则出现缺失字段或者找不到表的问题 2.reader的数据库jdbc是要用[]数组形式的,否则将会报错 3.在用datax的时候在导入的数据排序不是按照id的自增的,这点注意下