ORACLE数据库和MYSQL数据库之间的数据表的数据同步、数据迁移、数据割接

本文主要讲述两个数据表之间如何进行数据同步,或者叫数据迁移、数据割接。

一、需求:在oracle数据库上有一个sys_org表,要在mysql数据库上创建一个表sys_org_new作为该表的备份。表sys_org大概10000条记录。

二、Oracle同步到MySQL

Oracle数据库使用PLSQL Developer连接
MySQL数据库使用Navicat for MYSQL连接
1、查看oracle上sys_org数据表的表结构,并导出建表语句。由于数据库涉及隐私,这里只给出操作指引及表结构。

->使用PLSQL Developer登录Oracle数据库
->工具
->导出表
->找到名称为sys_org的数据表
->右键“查看”
->右下角“查看SQL

通过上述指引,就可以看到sys_org的建表语句了。
ORACLE数据库和MYSQL数据库之间的数据表的数据同步、数据迁移、数据割接_第1张图片
2、通过Oracle数据库的sys_org的建表语句,在mysql数据库上创建一个sys_org_new数据表。数据类型上,mysql的时间类型datetime可变长度字符串类型varchar【oracle上是varchar2】,具体的可根据建表语句和mysql数据类型进行调整。当然,先全部设置为varchar(255),在插入数据后再调整也是可以的。在mysql创建好表sys_org_new,要保证字段个数、字段名已经保持一致了。数据类型兼容即可,兼容就是说sys_org上的数据可以放进去。

3、在PLSQL Developer上查询sys_org的数据,查询的时候格式要调整成可以放进mysql数据库sys_org_new的格式【主要是时间格式要注意,字符串类型的都能放进去的】
在查询出结果后,点击PLSQL Developer的导出功能,导出SQL文件。
在这里插入图片描述
通过这个SQL文件,就可以看到sys_org的每条记录的insert语句。此时,注意,由于mysql的表名和oracle的表名不一样,可在SQL文件中用文本替换功能,将sys_org全部替换成sys_org_new,替换是要区分大小写

4、数据量虽然只有1w+,但是不想浪费时间,还是要细心操作的。先把前几条记录在mysql中插入,看看能不能成功,不能的话就要调整sys_org的查询语句了。当测试到每次插入都能成功,此时就可以将整个SQL文件的insert语句放到mysql中运行了。1w+数据的插入,估计需要两三分钟,需耐心等待,中途建议不要进行其他操作。

5、在mysql上运行完,就可以通过查询sys_org_new看看数据记录数是否与sys_org相同了。若相同,则打完收工。若是不相同,估计是上述步骤有问题,可以删除表sys_org_new再来。

三、MySQL同步到Oracle

这个同步的步骤与上述相似,这里仅介绍如何找到MySQL数据库表的建表语句。

法一:MySQL同步到MySQL建议使用

Navicat for MYSQL的”表“中搜索到sys_org_new,右键”转储SQL文件“,就可以生成sys_org_new的建表语句和所有记录的insert语句的SQL脚本。
在这里插入图片描述

法二:MySQL同步到Oracle建议使用

通过select语句,调整各字段格式兼容Oracle数据库相应的数据表,再利用”导出向导“导出相应的SQL脚本,该脚本中没有建表语句,只有每条记录的insert语句。

在这里插入图片描述

通过以上学习,可以做到数据量不是太大的数据同步、数据迁移、数据割接。如果数据量达几百万,还是建议使用工具进行同步,毕竟insert几百万次想想就有点吓人。

你可能感兴趣的:(ORACLE数据库和MYSQL数据库之间的数据表的数据同步、数据迁移、数据割接)