它是最常用最简单的方法,一般是基于应用的owner级做导出导入。
操作方法为:
优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间。
二、Storage存储迁移:
这种情况下,数据文件、控制文件、日志文件、spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。
操作方法:将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置。将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库。
优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba只需配合即可,停机时间为停库、切存储、起库的时间;缺点是要求新老库都是同一平台,是相同的数据库版本。
三、利用data guard迁移:
用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式。
操作方法:可见http://www.oracleblog.cn/study-note/dg-created-by-rman/或者
http://www.oracleblog.cn/study-note/create-dg-by-rman-one-datafile-by-one-datafile/或者其他相关网文。注意switch over之后,可以将dg拆掉,去掉log_archive_dest_2、FAL_SERVER、FAL_CLIENT、standby_file_management参数。另外还要注意如果用rman做dg,注意手工添加tempfile。
优缺点:优点是停机时间短,停机时间为switch over的时间;缺点:主机必须双份、存储必须双份。
四、用rman做迁移:
rman比较适合于跨文件系统的迁移,如同平台下的不同文件系统。
操作方法:
1.停第三方的归档备份,如legato或dp;
2.backup数据库;
DB2DB 是目前经过测试速度最快、最稳定实现多种数据库之间进行数据转换的工具。支持 SQL Server、MySQL、SQLite、Access 等多种数据库类型,通过该工具可以把原来的系统,方便快速地部署在不同的数据库甚至是云端数据库下。在大数据情况下(千万级别以上),处理速度比国内外同类软件要高出300%以上。并针对云端数据库中使用最多的 MySQL 数据库进行优化,使得从源数据库复制到新数据库时保留更多的数据表属性设置。这样大大减少程序员、DBA、实施人员将大型数据库进行迁移时的等待、测试和调试时间,减少公司为了测试某系统转换到新数据库系统时的人力成本。
————————————————
项目需要对oracle数据迁移到MySQL中,搜集了一些方法和工具,现在做一个汇总和总结,较好的有以下几种:
1、SQLyog(https://link.zhihu.com/?target=https%3A//www.webyog.com/product/sqlyog)
SQLyog是世界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog,可以快速直观地让我们从世界上任何角落通过网络来维护远端的MySQL数据库。
2、 intelligent-converters 的 oracle-to-mysql (https://link.zhihu.com/?target=http%3A//www.convert-in.com/)
外国软件,官网说法一般的i7可达2万/秒。
3、DB2DB(https://link.zhihu.com/?target=http%3A//www.szmesoft.com/DB2DB)
国内深圳的软件,官网介绍说在大数据情况下(千万级别以上),处理速度比国内外同类软件要高出300%以上。
4、MySQL Migration Toolkit免费
MySQL Migration Toolkit是一款很不错的将其他数据源转换成mysql的工具。这个 Mysql官方提供的工具。
5、Navicat Premium
这个不多做介绍,都知道的。
6、kettle等ETL工具
很多ETL工具带有从一个数据库读取写入另一个数据库的功能。
7、自己编写
利用JAVA、R、python等编写程序进行数据转移。
限制迁移的速度中除了工具性能外,估计在网络速度方面也会有较大限制;按照每秒可以达到10M(万条数据左右)的网络传输速度,1T需要1024*1024/3600*10约30小时,实际估计还没有这么快。具体的方法工具使用网上有比较多的教程。
————————————————