Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具
Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具
1 kettle
--第一次使用kettle玩迁移,有什么不足之处和建议,请大家指正和建议。
下载软件,官网比较慢,国内有一些镜像
下载完成,解压
pdi-ce-7.0.0.0-25.zip
G:\download\pdi-ce-7.0.0.0-25\data-integration
双击Spoon.bat 运行
提示找不到javaw.exe
下载jdk安装(这里在oracle官网上选择相应的进行下载安装jdk-8u191-windows-x64.exe),路径C:\Program Files\Java\jdk1.8.0_191
添加环境变量 C:\Program Files\Java\jdk1.8.0_191

在双击Spoon.bat 运行
--整库转移数据

ojdbc5.jar ojdbc6.jar mysql-connector-java-5.1.47.jar
拷贝到kettle的lib路径 G:\download\pdi-ce-7.0.0.0-25\data-integration\lib
在启动kettle之前拷贝进去,这里重新运行
--mysql连接

--连接oralce,由于oralce是11g r2 rac环境,之前一直报错
Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
--所以这里直接指定一个sid,即bol1,选择第一个节点,ip是scan ip

新建一个job,创建2个db的连接,source,target,在菜单中找到[复制多表导向],点击进行关联操作
工具--向导--复制多表导向




--点击 finish

--开始执行


--日志

--登录mysql进行查询,发现数据和表已经同步

--问题,oracle迁移到mysql的表,字段是number类型,迁移到mysql之后,变成了double类型,数据存储的是整数。字段是date类型并且有default值,迁移后到mysql,只是为not null属性,没有default值。
-- oracle

-- mysql

2 Navicat 迁移 oracle 到mysql
--分别创建oracle和mysql的连接
--选择工具--数据传输

基本上table 到table的迁移是没什么问题
--迁移比较慢
--date字段 迁移到mysql 出错--未解决
[Msg] [Dtf] Create table: `AIRCRAFT`
[Err] [Dtf] 1426 - Too big precision 7 specified for column 'AIRCRAFTDATE'. Maximum is 6.
[Msg] [Dtf] Get table data for: .AIRCRAFT
3 sql develope Mysql迁移到oracle
这个工具只能把mysql迁移到oracle
自行在oracle 官网上下载相应的sql developer版本,只能是其它数据库导入oracle
下载安装包
--sqldeveloper-18.3.0.277.2354-x64.zip
--mysql-connector-java-5.1.47.zip
--oracle 用户设置
CREATE TABLESPACE TEST DATAFILE
'+DATA/bol/datafile/test01.dbf' SIZE 50M AUTOEXTEND OFF
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
create user TEST identified by TEST DEFAULT TABLESPACE TEST;
grant connect to TEST;
grant resource to TEST;
grant dba to TEST;
--mysql 用户设置
grant ALL PRIVILEGES ON *.* TO 'test'@'10.15.%' IDENTIFIED BY "testmysql";
--连接oracle


--连接mysql

--选择mysql-connector-java-5.1.47.zip 该包解压出的的bin.jar

--创建连接

复制表
如果不用迁移整个数据,只是迁移表的数据,则可以直接在mysql数据库中选择要转移的表,点击右键 选择复制到oracle即可。此时会把表转移到sql developer链接oracle数据库的用户下,并且该用户下不能有同名的表
复制表要比迁移数据库的效率低,如果是复制所有表,最好是移植数据库
移植数据库





--选择test库测试

--指定转换规则,可以根据自己的情况设定字段转换,也可以添加新的规则






修改oracle用户名
因为转换过来的数据默认存放在users表空间,而且会创建一个和mysql一模一样的oracle用户,并把mysql数据库导入到该用户下。可以exp出来新用户的数据后,然后在导入到正确的用户下,这样数据会存在正确的表空间下面,如果数据量大,exp/imp比较耗时,建议数据量大的时候不要采用。
先创建好用户名(用户名|mysql数据库的库名),定义好默认的表空间,然后在做mysql到oracle的转换,也可以改变数据库的默认表空间防止自动创建用户的默认表空间使用user表空间
SQL> alter database default tablespace m_data;
改过名字的用户,权限会继承,但是默认表空间不会继承,需要手工设定
SQL> alter user oa identified by oa default tablesapce m_data temporary tablespace TEMP;
修改oracle用户名需要sys用户,或者操作user$表权限
SQL> GRANT SELECT ON USER$ TO SYSTEM;
SQL> GRANT UPDATE ON USER$ TO SYSTEM;
SQL> SELECT USER#,NAME FROM SYS.USER$ WHERE NAME=’TEST’;
SQL> UPDATE USER$ SET NAM=NEW_NAME WHERE USER#=93;
SQL> COMMIT;
SQL> ALTER SYSTEM CHECKPOINT;
SQL> ALTER USER NEW_USER IDENTIFIED BY PASS
SQL> ALTER SYSTEM FLUSH SHARED_POOL;
SQL> CONN NEW_USER/PASS@ORCL;
Oracle 数据库迁移到MySQL (kettle,navicate,sql developer等工具的更多相关文章
- 从其他数据库迁移到MySQL及MySQL特点
从其他数据库迁移到MySQL Oracle,SQL Server迁移到MySQL 一些变化 不再使用存储过程.视图.定时作业 表结构变更,如采用自增id做主键,以及其他语法变更 业务SQL改造,不使用 ...
- Oracle数据库迁移到AWS云的方案
当前云已经成为常态,越来越多的企业希望使用云来增加基础设施的弹性.减轻基础设施的维护压力,运维的成本等.很多企业使用云碰到的难题之一是如何将现有的应用迁移到云上,将现有应用的中间件系统.Web系统及其 ...
- Oracle数据库迁移至PostgreSQL数据库问题及解决
Oracle数据库迁移PostgreSQL数据库问题及解决 目录 如何计划迁移数据库(现状及问题分析) 统计系统表及表功能 解耦公共表 建立数据库 迁移表结构 导入表数据 改SQL语法 保证数据时效性 ...
- oracle数据库不支持mysql中limit功能
oracle数据库不支持mysql中limit功能,但可以通过rownum来限制返回的结果集的行数,rownum并不是用户添加的字段,而是oracle系统自动添加的. (1)使查询结果最多返回前10行 ...
- [转载]如何将OFBIZ(opentaps)默认数据库迁移至mysql((2
原文地址:如何将OFBIZ(opentaps)默认数据库迁移至mysql(利昂原创)作者:利昂 ofbiz自带的数据库是Derby,这是一种小型的适合与测试系统的数据库,但不适合在产品级系统中使用,所 ...
- pl/sql developer开发工具的beautifier美化插件
对于存储过程中需要编写大量的sql语句,这必然需要美化语句,使得程序可读性更高. pl/sql developer开发工具自带美化工具,不过美化的时候容易使得语句全部改变成大写格式,这样就需要一个插件 ...
- Oracle数据迁移至MySQL
ORACLE DB: 11.2.0.3.0 MYSQL DB: 5.5.14 因项目需求,需要将ORACLE生产中数据迁移至MYSQL数据库中作为初始数据,方法有如下几种: 1.ORACLE OGG ...
- 将Oracle数据库迁移到达梦数据库
公司某产品在项目现场上常用到的数据库有Oracle和达梦. 做性能测试需要根据项目现场预埋大量的基础数据和业务数据,耗费时间.精力.故完成Oracle数据库的性能测试之后,采用直接将Oracle数据库 ...
- MySQL数据库迁移与MySQL数据库批量恢复
目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...
随机推荐
- gitblit搭建git服务器
如果你的公司使用git作为版本管理工具,那么对gitblit应该也不会陌生.gitblit是一个开源的git服务器java实现,一般情况下gitblit都是由别人已经搭建好你直接使用就行了,除非你就是 ...
- MySQLdump导出sql脚本
1.问题描述 通过图形化工具,在查询窗口用select语句按条件查询出所需结果,然后用“导出向导”把查询结果导成sql文件,但是导出来的sql语句不全,没有表名.字段名. 通过图形化工具,试了好多次都 ...
- Netsh 命令详解
1. help帮助指南 2. 常用命令介绍netsh interface ip show addressnetsh interface ip dumpnetsh interface ip dump & ...
- MAC 系列 之XCode7.1 + HBuilder MUI 离线打包 ipa 上次application leader 问题:ERROR ITMS - 90032
90032 解决方法:
- java 实现HTTP连接(HTTPClient)
在实习中,使用到了http连接,一直理解的很模糊,特地写个分析整理篇.分析不到位的地方请多多指教. Http 目前通用版本为 http 1.1 . Http连接大致分为2种常用的请求——GET,POS ...
- 获取本机MSSQL保存凭证
首先要感谢哥们对我的指点,多谢. 当我们遇到类似情况下,如何获取保存在MSSQL工具里的凭证呢? //如果对方连接地址后面加了IP\sqlexpress 连接的时候你也记得加上,不然即使密码正确,也 ...
- Spring初学之通过工厂方法配置Bean
工厂方法配置bean分为两种,一种是实例工厂方法,另一种是静态工厂方法. 先来看看实体bean: Car.java: package spring.beans.factory; public clas ...
- Jedis使用过程中踩过的那些坑
1. 一个 大坑:若实例化 JedisShardInfo 时不设置节点名称(name属性),那么当Redis节点列表的顺序发生变化时,会发生“ 键 rehash 现象” 使用BTrace追踪redis ...
- Linux命令之awk_1
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- C++(十一)— map的插入、查找、删除
标准库map类型是一种以键-值(key-value)存储的数据类型. map是STL的一个关联容器.它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值 ...