当前位置: 首页 > news >正文

oracle库中数据利用datax工具同步至mysql库

查看oracle版本

$sqlplus aaa/aaaa@192.168.1.1/lcfaSQL*Plus: Release 19.0.0.0.0 - Production on Tue Oct 17 15:56:46 2023
Version 19.15.0.0.0Copyright (c) 1982, 2022, Oracle.  All rights reserved.Last Successful login time: Tue Oct 17 2023 15:56:03 +08:00Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.15.0.0.0SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.15.0.0.0

查看mysql版本

$mysql -V
mysql  Ver 14.14 Distrib 5.7.43, for linux-glibc2.12 (x86_64) using  EditLine wrapper

查看主机版本

$cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.6 (Maipo)```

查看主机jdk和python版本

$ java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)$python --version
Python 2.7.5

注意点:
1、部署datax的主机需要jdk1.8和python2.7.5以上版本,主机、数据库版本没有要求

2、部署datax的主机需要安装python控件cx_Oracle-7.3.0来登录oracle

3、部署datax的主机需要和mysql、oracle主机网络是通的且能登录数据库

4、mysql和oracle库中表的字段必须要统一,josn配置文件中字段要一样

5、Mysql保留字处理:
ID,ip,port,desc 等mysql的关键字被认为是保留字,这个不能用在json文件中

第一步:解压datax

tar -zxvf datax.tar.gz 
ls -rlt
total 810304
-rw-rw-r--  1 lcims lcims 829749309 Oct 16 14:34 datax.tar.gz
drwxr-x--- 14 lcims lcims       236 Oct 16 14:52 datax

datax目录包含:
在这里插入图片描述

bin:程序的执行目录,里面的data.py是控制台执行该程序的启动文件
log:执行后的日志,每执行一次生成一个日志文件,可以清楚的看到报错信息
plugin:reader和writer插件,比如reader里的mysqlreader为mysql的读取插件
3ajob:是自定义的文件夹,写入了要迁移的表信息 

3ajob目录下为要迁移表数据的josn文件配置信息:
python /datax/datax/bin/datax.py -r mysqlreader -w oraclewriter --查看josn格式模板

./3ajob/tables_name.josn
解释:
{"job": {"setting": {"speed": {"channel": 16    #(这个是多线程,我们是16核cpu,所以用的是16)}}, "content": [{"reader": {"name": "oraclereader", #(oracle的信息配置,从oracle读取)"parameter": {"username": "test", #(oracle的用户和密码)"password": "test", #(oracle的用户和密码)"column": [   #(column[]中是oracle表中的字段信息)"aaa",
"bbb",
"ccc"],"where":" 1=1 ","connection": [{"table": ["表名" #(要迁移的表)], "jdbcUrl": ["jdbc:oracle:thin:@ip:端口/实例"#(oracle表数据源配置)]}]}}, "writer": {"name": "mysqlwriter", #(mysql写入配置)"parameter": {"writeMode": "update", #(mysql写入配置)"username": "test", "password": "test", "column": [ #(mysql字段)"aaa",
"bbb",
"ccc"], "session": ["set session sql_mode='ANSI'"], "preSql": ["select 1 from 表名"], "connection": [#(mysql链接信息){"jdbcUrl": "jdbc:mysql://ip:端口/实例?useUnicode=true&characterEncoding=utf8", "table": ["表名"]}]}}}]}
}

配置完成进入bin目录执行脚本,查看日志

进入bin目录
cd  ./datax/bin
执行命令:nohup python ./datax.py /路径/脚本名 &
例:
$  nohup python ./datax.py ../3ajob/aaa.json &
查看日志:tail -100f nohup.out 

在这里插入图片描述

数据同步完成,即可查看mysql中的数据

http://www.lryc.cn/news/196081.html

相关文章:

  • 【Unity HDRP渲染管线下的WorleyUtilities文件,“Hash”函数】
  • 前端跨域问题解决
  • 【前端】Js
  • 第四章 Istio出口流量管理
  • leetcode做题笔记188. 买卖股票的最佳时机 IV
  • 基于springboot实现大学生社团活动平台项目【项目源码+论文说明】
  • 力扣--第三大的数
  • Android 11.0 禁用adb reboot recovery命令实现正常重启功能
  • Cesium Vue(一)— 项目初始化配置
  • 【linux下centos7.9安装docker,docker-composed(root用户)】
  • 腾讯云我的世界mc服务器配置怎么选择?
  • 《低代码指南》——AI低代码维格云架构视图怎么用?
  • ubuntu16.04安装vscode遇到的code 依赖于 libnss3 (>= 2:3.30)解决
  • 它来了,xhadmin多应用Saas框架正式发布!
  • PixMIM论文笔记
  • 设计师首选:最佳的5款网页设计软件
  • ES6箭头函数
  • 毫米波雷达在环境监测中的关键作用
  • print() 函数
  • PyQt 小程序
  • 大模型技术实践(五)|支持千亿参数模型训练的分布式并行框架
  • [正式学习java②]——数组的基本使用,java内存图与内存分配
  • ESP32网络开发实例-TCP服务器数据传输
  • 四川天蝶电子商务有限公司抖音电商服务引领行业标杆
  • 复制活动工作表和计数未保存工作簿进行
  • ORA-12541:TNS:no listener 无监听程序
  • UE 多线程
  • BootStrap5基础入门
  • 企业文件防泄密软件!好用的文件加密系统推荐
  • 【LLM微调范式1】Prefix-Tuning: Optimizing Continuous Prompts for Generation