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等工具的更多相关文章

  1. 从其他数据库迁移到MySQL及MySQL特点

    从其他数据库迁移到MySQL Oracle,SQL Server迁移到MySQL 一些变化 不再使用存储过程.视图.定时作业 表结构变更,如采用自增id做主键,以及其他语法变更 业务SQL改造,不使用 ...

  2. Oracle数据库迁移到AWS云的方案

    当前云已经成为常态,越来越多的企业希望使用云来增加基础设施的弹性.减轻基础设施的维护压力,运维的成本等.很多企业使用云碰到的难题之一是如何将现有的应用迁移到云上,将现有应用的中间件系统.Web系统及其 ...

  3. Oracle数据库迁移至PostgreSQL数据库问题及解决

    Oracle数据库迁移PostgreSQL数据库问题及解决 目录 如何计划迁移数据库(现状及问题分析) 统计系统表及表功能 解耦公共表 建立数据库 迁移表结构 导入表数据 改SQL语法 保证数据时效性 ...

  4. oracle数据库不支持mysql中limit功能

    oracle数据库不支持mysql中limit功能,但可以通过rownum来限制返回的结果集的行数,rownum并不是用户添加的字段,而是oracle系统自动添加的. (1)使查询结果最多返回前10行 ...

  5. [转载]如何将OFBIZ(opentaps)默认数据库迁移至mysql((2

    原文地址:如何将OFBIZ(opentaps)默认数据库迁移至mysql(利昂原创)作者:利昂 ofbiz自带的数据库是Derby,这是一种小型的适合与测试系统的数据库,但不适合在产品级系统中使用,所 ...

  6. pl/sql developer开发工具的beautifier美化插件

    对于存储过程中需要编写大量的sql语句,这必然需要美化语句,使得程序可读性更高. pl/sql developer开发工具自带美化工具,不过美化的时候容易使得语句全部改变成大写格式,这样就需要一个插件 ...

  7. Oracle数据迁移至MySQL

    ORACLE DB: 11.2.0.3.0 MYSQL DB: 5.5.14 因项目需求,需要将ORACLE生产中数据迁移至MYSQL数据库中作为初始数据,方法有如下几种: 1.ORACLE OGG ...

  8. 将Oracle数据库迁移到达梦数据库

    公司某产品在项目现场上常用到的数据库有Oracle和达梦. 做性能测试需要根据项目现场预埋大量的基础数据和业务数据,耗费时间.精力.故完成Oracle数据库的性能测试之后,采用直接将Oracle数据库 ...

  9. MySQL数据库迁移与MySQL数据库批量恢复

    目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...

随机推荐

  1. 修改和重置WAMP的phpMyAdmin密码

    WAMP是Windows下的Apache+Mysql/MariaDB+Perl/PHP/Python,常用来搭建动态网站或者服务器的开源软件. 1.下载页面:http://www.wampserver ...

  2. java resources 红叉 Cannot change version of project facet Dynamic Web Module to 2.5

    在使用maven导入项目的时候,markers提示Cannot change version of project facet Dynamic Web Module to 2.5,不能将工程转换为2. ...

  3. window 安装 thrift

    1.下载thrift:http://thrift.apache.org/ 2.然后将该执行文件,保存到磁盘的文件夹下(你自己喜欢的,随便一个个目录下) 我的是(目录名少了个t,无妨): 3.把该执行文 ...

  4. vim 乱码问题的方法参考

    linux 中设置当前用户的系统默认编码为 UTF-8 格式解决 vim 乱码问题的方法参考  任侠  2013-05-02 11:58  电脑基础  抢沙发  13,732 views  在使用 l ...

  5. svg_path

    1. path 的 d属性中,M的大/小写貌似不影响图形显示效果(至少现在[20160108]我测试下来是这样[chrome 版本 47.0.2526.80 m]):L/H/V 的大小写 是影响图形显 ...

  6. External (and Live) snapshots with libvirt

    list all the block devices associated with the guest $ virsh domblklist testvm --details Type Device ...

  7. 一款简易的CSS3扁平化风格联系表单

    CSS3扁平化风格联系表单是一款CSS3简易联系表单非常清新,整体外观不是那么华丽,但是表单扁平化的风格让人看了非常舒服,同时利用了HTML5元素的特性,表单的验证功能变得也相当简单.经测试效果相当不 ...

  8. dede数据库表结构和dedecms数据库字段说明

    表名:dede_addonarticle (ENGINE=MyISAM/CHARSET=gbk) 说明:Top 字段名 说明描述 具体参数 aid 文章ID mediumint(8) unsigned ...

  9. SQL Server 2016 —— 聚集列存储索引的功能增强

    作者 Jonathan Allen,译者         邵思华         发布于     2015年6月14日   聚集列存储索引(CC Index)是SQL Server 2014中两大最引 ...

  10. 简单使用location.hash的方法 ,怎么做,有什么用? 简单的js路由页面方法。

    hash 属性是一个可读可写的字符串,该字符串是URL的锚部分(从#号开始的部分).语法location.hash刚开始我真不知道hash有什么用,直到我在项目中遇上一个最大的问题.而且很恶心的体验 ...