`
bywei
  • 浏览: 42244 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

从Oracle迁移数据到MySql方法大全

阅读更多

最近工作需要从Oracle迁移大量数据到MySql,由于涉及不深,便网上学习了很多的方法,现总结Oracle迁移大量数据到MySql如下:

一,牛人编写的Oracle到MySQL的数据迁移工具

从Oracle迁移数据到MySQL的小程序,ora2mysql下载地址 http://www.anysql.net/software/ora2mysql.zip
使用方法如下:
    D:\>ora2mysql user1=scott/tiger user2=/@localhost:3306:test table=emp
            0 rows processed at 2011-04-02 15:03:08.
            2 rows processed at 2011-04-02 15:03:08.

    在速度方面,由于不支持Array操作,因此速度比较慢,希望Oracle能让SQL * Plus也能连接MySQL库,或改造一下MySQL客户端,增加Array接口。

    D:\>ora2mysql user1=scott/tiger user2=/@::test table1=emp_bak table2=emp
            0 rows processed at 2011-04-02 19:48:51.
        100000 rows processed at 2011-04-02 19:49:17.
        200000 rows processed at 2011-04-02 19:49:42.
        300000 rows processed at 2011-04-02 19:50:07.
        400000 rows processed at 2011-04-02 19:50:32.
        500000 rows processed at 2011-04-02 19:50:57.
        600000 rows processed at 2011-04-02 19:51:23.
        700000 rows processed at 2011-04-02 19:51:48.
        800000 rows processed at 2011-04-02 19:52:14.
        900000 rows processed at 2011-04-02 19:52:39.
      1000000 rows processed at 2011-04-02 19:53:03.
      1100000 rows processed at 2011-04-02 19:53:29.
      1200000 rows processed at 2011-04-02 19:53:56.
      1300000 rows processed at 2011-04-02 19:54:24.
      1400000 rows processed at 2011-04-02 19:54:53.

    目前还不支持BLOB类型, 也不支持字符集的设置

   作者地址:http://www.anysql.net/tools/oracle-mysql-data-migration-tool.html/comment-page-1#comment-4146


二,从oracle导数据到mysql,使用命令
   (1)在使用pl/sql developer生成的sql文件然后插入到mysql时由于to_date()和chr()问题,insert时会失败。
   (2)phpmyadmin里面有个SQL compatibility mode 的 Oracle选项,具体作用还未知。
   (3)DBA高效数据迁移方法:先导出成文本,然后LOAD DATA 命令直接导入。
建议用

        select u_id||'&'||u_pid||'&'||str_1||'&' ||str_2||'&' ||str_3||'&'||tm_create_time   from table_foo

        这样的形式,在sql plus里面导出用&分割的数据,然后在mysql里面用

        load data local infile '~/table_foo' into table tbl_gbase_inf fields terminated by '&';

        导入。

如果str里面包含多行文本,而默认是文本文件里一行对应数据库里一行数据的,多行文本被误认为是多行数据,格式就不对,导入出错。可以在pl/sql developer里面进行以下查询:

select t.*,'$' from tbl_foo t

        用$作 为一行数据的结束符,这样即使遇到回车,mysql仍然能够正确处理了。然后把结果全选,右键菜单导出结果到TSV文件("导出结果"->"TSV 文件")。这个文件的格式就是一行一项数据的文本文件了,而且字段之间是用tab分隔的,正好就是load data命令的默认分隔符。
        在 select语句里加了一个'$'作为最后一个域,也就是说在文本文件里,它前面会有一个tab,后面会有一个回车换行。所以要用ultraedit把 '\t\$\r\n'(Ultredit正则)都替换成'$',这样一搞,文本文件基本上没法看了,但在load edit眼里,它就是一个正好合胃口的美味的数据源了。用如下命令导入:

load data local infile '~/table_foo' into table tbl_gbase_inf lines terminated by '%';show warnings;

回 车搞定。可以在文件名和into之间插上replace关键字,自动替换掉原有数据。 注意,load data可能不是立即生效的,可以show processlist;看看是否被delay了,过一段时间表没人访问应该就会插进去了。  另外,如果插入的中文显示出来是乱码,就用
show   variables   like   "%char%";

         看看结果是不是长这样的:

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

        如果database或server的字符集不是utf8,用set 命令将其改为utf8,然后重新load data,应该就不会是乱码。

三,使用mysql工具迁移数据

        1. MySQL Administrator —— MySQL 服务器的管理利器。这个工具解决了MySQL管理的很多问题,譬如:可以让你简单通过GUI界面模式选择热备份数据库计划,或者是冷备份,你可以方便的选 择备份时间,每周或是每日的什么时候进行。
        2.MySQL Query Browser —— 查询工具,使用起来也很简单,而且支持调试等功能。
        3.MySQL Migration Kit —— 数据库迁移工具,如何将现有的Oracle或MSSQL数据库转移到MySQL上,如果你水平够高,当然自己直接搞,对一般用户,MySQL开发者还是很 贴心的,因为他们知道,很多人不愿意选择这个免费数据库的原因其实是因为迁移的成本以及复杂度。
        所以有了这个工具,一般人员就可 以很简单的将现有的Oracle和MSSQL数据库迁移到MySQL上了(以后估计还会有针对其他数据库的迁移工具,等着吧)。现版本的 Migration Kit不支持对Stored Procedure的迁移,function或Stored Procedure的迁移。

  MySQL Migration Kit下载地址:www.mysql.com/products/tools/migration-toolkit/

四,推荐数据迁移转换网站

        http://www.convert-in.com/ora2sql.htm
        该网站支持一下数据库的数据迁移,具体的效果还未一一测试过。
Access to MySQL,Access to Oracle,DBF to MySQL,Excel Export Kit,Excel to MySQL,Excel to Oracle,MSSQL to MySQL,MySQL Migration Toolkit,MySQL to Access,MySQL to Excel,MySQL to MSSQL,MySQL to Oracle,Oracle Migration Toolkit,Oracle to MySQL,OraDump Export Kit,OraDump to Access,OraDump to CSV,OraDump to Excel,OraDump to MSSQL,OraDump to MySQL,PDF to Excel,PDF to Word,PDF to XML,PDF Export Kit,PostgreSQL-to-MySQL

 

博文地址:从Oracle迁移数据到MySql方法大全

更多:

分享到:
评论

相关推荐

    从Oracle迁移数据到MySql-工具oracle2mysqlcn

    数据迁移 oracle转mysql oracle数据迁移 mysql数据迁移 从Oracle迁移数据到MySql-工具oracle2mysqlcn 从Oracle迁移数据到MySql方法大全文章地址: http://www.bywei.cn/post/111.html

    Oracle到Mysql数据库迁移总结

    Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结Oracle到Mysql数据库迁移总结

    从Oracle迁移到MySQL经典实战

    从Oracle迁移到MySQL经典实战,省钱公司必备

    mysql和Oracle数据互相迁移

    Oracle和Mysql互相迁移数据,可同时迁移多个不同数据库数据(并发的将数据在oracle和mysql之间随意迁移),效率高(实际测试表明,将100万数据从oracle迁移到mysql耗时2分30秒,其中1分30秒耗在oracle查询上),支持...

    Oracle导Mysql适用于百、千万级别数据迁移

    Oracle导Mysql适用于百、千万级别数据迁移,速度是kettle的10倍以上数据库迁移 数据迁移 千万级 亿万级数据,MySQL oracle关系型 现需要开发一套程序用来快速迁移数据库,要求如下: 1.使用人员可以指定迁移数据库...

    记使用Oracle SQL Developer 迁移MySql 数据至 Oracle.docx

    将mysql的数据库表迁移到oracle中,使用sql developer 工具进行迁移,在迁移过程中遇到了很多坑,比如视图或表不存在错误,本文都进行了一一讲解,亲测成功。

    从Oracle迁移到MySQL的那些坑.pdf

    从Oracle迁移到MySQL的那些坑.pdf

    oracle迁移到mysql问题记录.txt

    oracle迁移到mysql问题记录

    Mysql迁移Oracle方案

    2 数据迁移 2.1 数据准备 2.1.1 生产数据备份 2.1.2 导入机还原备份文件 2.2 Oracle SQL Developer配置连接 2.2.1 连接本机mysql数据库 2.2.2 连接生产oracle数据库 2.3 执行迁移 2.3.1 关联移植资料档案库 2.3.2 ...

    oracle数据迁移到mysql小工具

    oracle数据迁移到mysql小工具,方便连接两个系统进行数据迁移。

    基于JDBC同步Oracle到MySQL

    分别有:数据源配置、数据表结构转换、字段更新、数据迁移、根据oracle SQL的UPDATE DELETE 事物执行记录转为Mysql可执行SQL,同步执行到MySql数据库,此项目为个人兴趣爱好练手项目,项目问题欢迎留言,共同进步...

    DTM_mk_MySQL Migration Kit—mysql_wp_oracle2mysql

    DTM_mk_MySQL Migration Kit—mysql_wp_oracle2mysql 从Oracle迁移数据到MySql方法大全 http://www.bywei.cn/view.asp?id=111

    数据库迁移 数据迁移 千万级 亿万级数据MySQL oracle关系型

    1.使用人员可以指定迁移数据库类型 如:(orcal,sqlServer,csv 迁移至mysql) 2.在迁移数据库时,可以只迁移指定字段. 3.开发多任务的平台,按权重去执行任务,如:权重为1,1,2,3,4 那么1,1的权重一起执行,执行完毕后2...

    Mysql转Oracle软件 DBMover for Mysql to Oracle

    Dbmover for Mysql to Oracle 是高效的将Mysql导入到Oracle数据库的工具。 使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 ...

    oracle到mysql建表语句迁移

    oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本

    PHP将数据从Oracle向Mysql数据迁移的技术要领

    由于Mysql可以节约费用,并且其稳定性和功能也在提高,所以部分用户希望从Oracle迁移到Mysql上。本文就介绍了一下用PHP将Oracle迁移到Mysql的过程中用到的技术要领及一些注意事项。

    迁移mysql数据到oracle上

    迁移mysql数据到oracle上,详细描述步骤。

    oracle 数据库 迁移 mysql

    Oracle到MySQL转换器是将数据库从Oracle迁移到MySQL服务器的工具。由于直接连接到源数据库和目标数据库,该程序保证了转换过程的高性能。它不使用ODBC或任何其他中间件组件。不需要安装Oracle组件。安装包包括产品到...

    oracle迁移mysql自增序列问题

    今天从oracle迁移数据到mysql碰到个需求:原先的主键字段需要改成mysql中的自增字段,而且原先数据的值不能变,以后新插入的值从原先数据最大的值开始自增。 解决办法: 构建环境: mysql> CREATE TABLE test -> ( ...

    ORACLE数据库迁移方案

    ORACLE数据库迁移方案,单机迁移到rac

Global site tag (gtag.js) - Google Analytics