网站制作价格便宜,直播平台排行榜前十名,集团有限公司,2003服务器怎么挂网站Oracle数据迁移至MySQL 一、生成测试数据表和数据1.在Oracle创建数据表和数据2.在MySQL创建数据表 二、生成模板文件1.模板文件内容2.模板文件参数详解2.1 全局设置2.2 数据读取#xff08;Reader#xff09;2.3 数据写入#xff08;Writer#xff09;2.4 性能设置 三、案例… Oracle数据迁移至MySQL 一、生成测试数据表和数据1.在Oracle创建数据表和数据2.在MySQL创建数据表 二、生成模板文件1.模板文件内容2.模板文件参数详解2.1 全局设置2.2 数据读取Reader2.3 数据写入Writer2.4 性能设置 三、案例1.全量数据迁移1.1 配置迁移模板1.2.运行迁移命令 2.增量数据迁移2.1 配置迁移模板2.2 运行迁移命令 一、生成测试数据表和数据
1.在Oracle创建数据表和数据
部署Oracle教程
# 创建数据库查看上面的部署教程
# 1.创建表
CREATE TABLE student (id INTEGER,name VARCHAR2(20),create_time TIMESTAMP DEFAULT SYSTIMESTAMP,update_time TIMESTAMP DEFAULT SYSTIMESTAMP
);
# 2.插入测试数据
INSERT INTO student (id, name)
SELECT level, Name || level
FROM dual
CONNECT BY level 10;2.在MySQL创建数据表
部署MySQL教程
# 1.创建数据库
CREATE DATABASE oracle_test charsetutf8mb4;
# 2.创建数据库表
use oracle_test;
CREATE TABLE student (id INT,name VARCHAR(20),create_time DATETIME DEFAULT CURRENT_TIMESTAMP,update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);二、生成模板文件
当前安装DataX的目录为/data/datax
# 1.进入datax的工具目录
cd /data/datax/bin/
# 2.生成模板
python datax.py -r oraclereader -w mysqlwriter ../job/oracle_to_mysql.json1.模板文件内容
{job: {content: [{reader: {name: oraclereader, parameter: {column: [], connection: [{jdbcUrl: [jdbc:oracle:thin:[HOST_NAME]:PORT:[DATABASE_NAME]], table: []}], password: , username: ,where: }}, writer: {name: mysqlwriter, parameter: {column: [], connection: [{jdbcUrl: , table: []}], password: , preSql: [], session: [], username: , writeMode: }}}], setting: {speed: {channel: }}}
}
2.模板文件参数详解
2.1 全局设置
job: 定义了整个数据迁移作业的配置。 content: 包含了一个或多个数据同步任务的列表。
2.2 数据读取Reader
reader: 定义了数据来源的相关配置。 name: 使用的读取插件名称这里是oraclereader表示从Oracle数据库读取数据。parameter: 读取数据时的参数配置。 column: 需要读取的列名列表。connection: 数据库连接信息。 jdbcUrl: 数据库的JDBC连接URL。需要替换[HOST_NAME], [PORT], [DATABASE_NAME]为实际的服务器地址、端口和数据库名。table: 指定要读取数据的表名列表。 password: 用于连接Oracle数据库的密码。username: 用于连接Oracle数据库的用户名。where: 可以指定一个WHERE条件来过滤读取的数据这里留空表示不过滤读取所有数据。
2.3 数据写入Writer
writer: 定义了数据目的地的相关配置。 name: 使用的写入插件名称这里是mysqlwriter表示数据将被写入到MySQL数据库。parameter: 写入数据时的参数配置。 column: 指定写入到目标表的列名。应与读取的列对应。connection: 目标数据库的连接信息。 jdbcUrl: MySQL的JDBC连接URL。table: 指定要写入数据的表名。 password: 用于连接MYSQL数据库的密码。postSql: 在数据写入完成后执行的SQL语句列表这里留空。preSql: 在数据写入前执行的SQL语句列表这里留空。username: 用于连接MYSQL数据库的用户名。writeMode: 写入模式这里设置为insert表示通过INSERT语句进行数据写入。
2.4 性能设置
setting: 定义了作业的全局设置。 speed: 控制数据同步的速度。 channel: 指定并发通道的数量这里设置为4意味着数据迁移任务将并行执行使用4个并发通道。
三、案例
1.全量数据迁移
1.1 配置迁移模板
{job: {content: [{reader: {name: oraclereader, parameter: {column: [id, name, create_time, update_time], connection: [{jdbcUrl: [jdbc:oracle:thin:192.168.86.128:1521/helowin], table: [student]}], password: ***, username: ora_user}}, writer: {name: mysqlwriter, parameter: {column: [id, name, create_time, update_time], connection: [{jdbcUrl: jdbc:mysql://192.168.86.128:3306/oracle_test?useUnicodetruecharacterEncodingutf-8, table: [student]}], password: ****, preSql: [], username: root, writeMode: insert}}}], setting: {speed: {channel: 1}}}
}1.2.运行迁移命令
python /data/datax/bin/datax.py /data/datax/job/mysql_to_clickhouse.json2.增量数据迁移
主要差别在于需要有一个createTime字段代表源数据的创建时间那么更新的时候只迁移过滤这个时间段的数据达到增量数据迁移
2.1 配置迁移模板
{job: {content: [{reader: {name: oraclereader, parameter: {column: [id, name, create_time, update_time], connection: [{jdbcUrl: [jdbc:oracle:thin:192.168.86.128:1521/helowin], table: [student]}], password: ***, username: ora_user,where:CREATE_TIME TO_TIMESTAMP(2024-02-14 00:00:00, YYYY-MM-DD HH24:MI:SS) AND CREATE_TIME TO_TIMESTAMP(2024-02-14 23:59:59, YYYY-MM-DD HH24:MI:SS)}}, writer: {name: mysqlwriter, parameter: {column: [id, name, create_time, update_time], connection: [{jdbcUrl: jdbc:mysql://192.168.86.128:3306/oracle_test?useUnicodetruecharacterEncodingutf-8, table: [student]}], password: ****, preSql: [], username: root, writeMode: insert}}}], setting: {speed: {channel: 1}}}
}2.2 运行迁移命令
注意指定参数的话参数名称面前需要加-D
python /data/datax/bin/datax.py /data/datax/job/oracle_to_mysql.json -p -DstartDatetime2024-02-14 -DendDatetime2024-02-14