首页 > 数据库 >数据库迁移之从oracle 到 MySQL

数据库迁移之从oracle 到 MySQL

时间:2023-05-06 20:31:34浏览次数:41  
标签:color 数据库 Oracle 导入 MySQL oracle 迁移


关键字:数据库迁移之从oracle 到 MySQL
开场白:
对于水平扩展需求很强烈的大型网站,oracle到mysql的迁徙是必然的,一个重要的因素就是
Oracle数据库是收费的, 而MySQL 则是完全免费的,mysql经过在大型网站的考验及沉淀目前已经修复的很完美了,下面就oracle到mysql的迁徙经验介绍给大家,希望对大家有所帮助。

理论上来说, MySQL 已经被Oracle 收购, 这两者之间的Migrate 应该比较容易, 但实际的迁移还是有一些问题, 以下就说一说一些实现的方式和问题。


方式一: 手动方式导入导出

手动的方式导入, 就是操作步骤会比较繁琐一些。

对Table 的结构和数据:

1. 使用 SQL Developer 把 oracle 的 table 的schema 和 Data(.sql 和 .xls) 导出

2. 使用 MySQL 的 WorkBench 创建 Table 和导入数据。

这里语法上会稍微有一些不同, 所以需要略微做一些调整。


对于View 来说, 特别是复杂的有子查询的Oracle View 说, 要导入到MySQL 看起来就不是那么容易了。


[color=red]方式二: 使用工具Navicat 进行导入[/color]

http://www.navicat.com.cn
Navicat , 这是MySQL 官方网站上有人建议使用的工具。 这是一个[color=red]收费[/color]的软件。 目前的收费是 1000 到1600 人民币。 但是可以[color=red]免费试用一个月[/color]。

下载安装后, 启动的页面如下:


迁移的流程如下:

1. 新建数据库的连接


建立需要迁移的Oracle 和 MySQL 的数据库连接。

另外, 建立Oracle 连接的时候还需要下载一个oci.dll 的文件。

下载地址:

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

下载之后, 解压到某个目录:

在 Navicat 的 工具 --> 选项 下做类似如下设置:

InstantClientOptions.jpg

细部可以参见:

http://wiki.navicat.com/wiki/index.php/Instant_client_required

完成设置后, 重启 navicat


2. 设置过连接之后, 接下来就可以进行表和数据的migrate 了

点击: 工具 --》 数据传输

在 "常规" 的标签页中设置需要 migrate 的连接


在 “高级” 的标签页中 , 设置需要 migrate 哪些具体的内容:

配置完成之后, 点 "开始" 就可以了。


基本上: 对于 Table 的结构和数据的迁移的话, 基本上没什么问题。

但是对于 View 的导入, 因为MySQL 的View 的语法不能有子查询语句。

在Navite 上, 可以看到从 Oracle 导入到 MySQL 的时候, View 的Checkbox 不能选取。


方式三: 使用工具DBMover 的OracleToMySQL 进行导入

DBMover这个网站也提供了 Oracle 到 MySQL 迁移的工具。

下载地址是:

http://dbmover.com/download/oracletomysql_cn.zip

这也是一个收费的软件, 试用版的限制是: 允许迁移的记录条数累计为10万条。

下载安装,启动后会先要求输入 数据库连接的信息:


一直配置完成之后的页面是:


这里就只能看到table 了。

和Navicat比较起来, 感觉这个显得简单, 只能migrate table , 而且使用上也不是很方便。

下一次Migrate 又得重头到尾输入一次, 没办法记住之前配置的连接。


方式四: 使用工具intelligent-converters 的 oracle-to-mysql 进行导入

同样是一个收费的工具:

下载地址:

http://www.intelligent-converters.com/oracle-to-mysql.htm

使用版的限制是每个table 只能导入 5 笔数据。

操作方式上和DbRemover 提供的很类似。好处是能记住上次的一些连接信息。

同样只能对表进行导入。

导入的页面:

标签:color,数据库,Oracle,导入,MySQL,oracle,迁移
From: https://blog.51cto.com/u_7450530/6251189

相关文章

  • 【DB】MySQL傻瓜安装,超简单
    一、概述MySQL版本:5.7.17下载地址:http://rj.baidu.com/soft/detail/12585.html?ald客户端工具:NavicatforMySQL绿色版下载地址:http://www.cr173.com/soft/38153.html  二、MySQL安装 安装条件:1).netframework4.0(下载地址:http://rj.baidu.com/soft/d......
  • 使用 grom 后所有操作数据库的代码都使用同一个表-链式调用
    在写业务代码的时候一位同事写代码是这样的func(p*PromptRepo)GetArtPrompt(ctxcontext.Context,options...func(option*gorm.DB))(articles[]*model.ArticlePrompt,errerror){ p.db=p.db.Table(model.ArticlePrompt{}.TableName()) for_,option:=rangeop......
  • mysql 查询根据外部数据排序
    1、FIELD函数FIELD是一个MySQL函数,用于返回一个或多个表达式在列表中的位置。它可以用于对查询结果进行排序或筛选。2、根据外部数据排序在MySQL中,可以使用ORDERBYFIELD()函数根据外部数据对查询结果进行排序。FIELD()函数可以接受一个或多个参数,并返回第一个参数在......
  • 【MySql】Sql优化(三)——性能优化
    一、前言      当数据库数据达到一定数量的时候,结合数据库连接池Druid的可视化监控界面,对系统中运行的sql语句进行检测,对使用频繁、执行时间长的sql语句进行优化。二、优化方案原则[原则一:选择需要优化的SQL]1,选择需要优化的SQL:不是所有的SQL都需要优化,在优化的过程中,首......
  • oracle第一课
    一、sql初步了解1**SQL****语句分为以下三种类型DML:DataManipulationLanguage数据操纵语言DDL:DataDefinitionLanguage数据定义语言DCL:DataControlLanguage数据控制语言1.1DML用于查询与修改数据记录包括如下SQL语句:INSERT:添加数据到数据库中UPDATE:修......
  • MySQL如何获取binlog的开始时间和结束时间
    MySQL数据库恢复到指定时间点时,我们必须通过MySQL全备+MySQL增量备份(可选)+MySQL的二进制日志(binlog)进行重放来恢复到指定时间点,实际的生产环境中,可能一段时间内生成了多个二进制日志文件(binlog),MySQL本身不会存储二进制日志文件(binlog)的开始时间和结束时间,如果要还原到某个时间点......
  • Flink Cdc MySQL 整库同步到 StarRocks
    这段时间开始调研使用StarRocks做准实时数据仓库:flinkcdc实时同步数据到StarRocks,然后在StarRocks中做分层计算,直接把StarRocks中的ADS层提供给BI查询。架构如下:由于用到的表比较多,不能用FlinkSQL给每个表都做个CDC的任务(任务太多不好维护、对数据库又可能有......
  • mysql查询某条数据出现两次以上
    查询order_id重复出现两次以上selectorder_idfromt_testwhere1=1GROUPBYorder_idHAVINGcount(order_id)>1;查询order_id,phone重复出现两次以上select*fromt_testwhere1=1GROUPBYorder_id,phoneHAVINGcount(order_id+phone)>1; ......
  • oracle大数据量优化
    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及orderby涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:selectidfromtwherenumisnull可以在num上设置默认值0,......
  • MongoDB 从 mysql等数据库中导入数据
    关键字:MongoDB从mysql等数据库中导入数据一、向mongodb数据库导入数据在MongoVUE中选择一个数据库右键import然后填写mysql等数据库的连接信息点击import即可导入!......