mysql迁移到oracle 详解 您所在的位置:网站首页 oracle数据迁移到oracle mysql迁移到oracle 详解

mysql迁移到oracle 详解

2023-10-07 03:19| 来源: 网络整理| 查看: 265

背景:

更换数据库,需要将Mysql数据库表框架迁移到oracle数据库中.

数据库版本:

Mysql:5.7.1

Oracle:12.2.0

注:oracle须使用12.2以上版本,低版本不支持长表名

工具:

 

推荐使用Navicat,PLSQL,PLSQL作为oracle语句的编译工具,两者配合使用

            

备注:PLSQL安装和配置请参考

https://blog.csdn.net/qq_40709468/article/details/81122028

迁移过程: 思路: 创建相应表空间和用户用Navicat将表结构迁移到oracle数据库,将oracle不支持的表类型进行转换查看编码,导出原始脚本,删除脚本里不必要的信息特殊字段处理脚本增加索引,序列,触发器,视图,存储过程和函数所有的创建语句在执行前做判断脚本合并脚本调试 过程:

过程中遇到一些典型的问题拿出来讲一下

检查Mysql的数据库,确保是完整一套数据库,如图所示,该数据库中包含了MES系统用的所有数据库

 

2. 对应mysql里的数据库,使用PLSQL创建表空间和用户,并赋予用户权限,这里我把mysql上的每个数据库作为一个表空间,然后给对应的用户。对应关系如下:

 

 

Mysql:库 cloudbackend                       oracle: 表空间:cloudbackend

      cloud_mes_device                                    cloud_mes_device

         …                                                  …

3. 使用navicat连接oracle,将mysql里的表结构迁移到oracle对应下的表空间,具体过程跟sqlserver表迁移类似,不多赘述。

4. 迁移成功可以看到表的原始结构语句

 

将其语句转到sql文件里,并打开,删除“”和cloudbackend.并且将数据类型转换(需要转换的要转换),可以参考另一份文档“mysql与oracle数据类型转换”

5. 在使用PLSQL执行建表脚本调试时遇到特殊字段,如group, index等,如图

 

这里我把这种特殊字段做了“”处理,调试通过,值得注意的是,在编译时如用到这种特殊字段,需加“”去操作。

建表的脚本调试时会碰到如下的错误:

 

说明脚本里有DEFRRED,将其改为immediate,执行通过。调试需要耐心,表数据庞大,每张表在改动脚本的时候都要做一次调试

6. 索引的创建需要对应表空间,不多赘述。在处理自增时耗费的时间比较久,在实现id字段自增的过程中,mysql和oracle是完全不同的。举例说明:

Mysql实现id自增

create table test (

             id int not null auto_increment,

name,varchar,

            primary key (id) );

只要主键添加auto_increment,即可实现自增

Oracle实现自增方法:

i:创建序列

ii:  创建触发器

这两者协同实现表id的自增。

建表时添加判断的函数目的是为了,多次执行可以覆盖前面的创建。这里判断主要使用在了表,索引,序列,其他的创建,比如创建触发器等可以用replace代替判断。

 

 

8.为了方便调试开始时最好每一项作为一个单独脚本调试,最后将已调试好的脚本合并到一个脚本中再做一个调试,注意语句中可能会用到/去做语句连接,调试过程中会遇到大量的错误,需要耐心调查和解决。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有