Migration mass DB from Mysql to Oracle (原创)
2008-06-17 15:11
399 查看
主要工具:Oracle SQL Developer1.5.0.53 - Migration
原因:由于数据量越来越大,mysql也越来越承受不了,访问速度开始变慢。
情况:mysql里有31张表,其中有2张表的数据超大(2G左右)。由于此工具对这么大的数据处理是无能为力的,所以采用以下办法:
1)先把另外数据量少的29张利用工具能完美地导到Oracle。
2)然后把数据量超大的2张表分步地手工地在命令行里导入Oracle。
1. Oracle SQL Developer Tool
先把Mysql和Oracle的DB连接到Tool里面。
1)先Create Repository
2) 在Tool的Connections里选中Mysql右键Capture Mysql. 这步如果有问题,通常解决办法就是把以前的那些Repository DB删掉。
3) 在Captured Objects框里要把一些Sequences, Views, Indexes删除掉,同时把数据超大的那两张表A,B也删除掉。
4)在Captured Objects框里右键Convert to Oracle Mode, 然后在Converted Objects框里造句选中右键Generate产生建那29张表的sql语句,里面的开头语句关于新建一个与Mysql DB同名的Oracle DB。
5)执行sql语句新建一个DB和29张表。
6)在Converted Objects框里造句选中右键Move Data即可。
2. 导入数据量超大的2张表A和表B。
1) 按照1的步骤执行到第4步时,选Generate Data Move Scripts产生保存一些脚本,再找出A.ctl和B.ctl。
2) 在Oracle DB里独立为表A和表B建表,其中必须注意的是:a. 字段不能少,属性要一样,包括是否为空选项也要一样。b. 表里每个字段顺序必须与Mysql里表的字段顺序一样.
3) 用如下命令把表A和表B的数据导出:
只导出纯数据,不包含建表的脚本的TXT文件。 (在linux命令行下执行)
sudo mysqldump reader_prod Atable -v --host=localhost --port=3306 -T tmp --fields-terminated-
by="<EOFD>" --lines-terminated-by="<EORD>" --fields-escaped-by=''
4) 然后在oracle用户linux使命令行下执行:
sqlldr userid=username/password control=A.ctl
sqlldr userid=username/password control=B.ctl
注意:用户对文件的权限必须是可读可写。
另:如果你本机已经安装了Oracle的管理客户端,在使用Tool启动时会调用Oracle的管理客户端的JDBC jar包。但Tool需要用回自己的Jar包。所以需要手动做一个启动文件star.cmd
SET ORACLE_HOME=%CD%
START SQLDEVELOPER.exe
原因:由于数据量越来越大,mysql也越来越承受不了,访问速度开始变慢。
情况:mysql里有31张表,其中有2张表的数据超大(2G左右)。由于此工具对这么大的数据处理是无能为力的,所以采用以下办法:
1)先把另外数据量少的29张利用工具能完美地导到Oracle。
2)然后把数据量超大的2张表分步地手工地在命令行里导入Oracle。
1. Oracle SQL Developer Tool
先把Mysql和Oracle的DB连接到Tool里面。
1)先Create Repository
2) 在Tool的Connections里选中Mysql右键Capture Mysql. 这步如果有问题,通常解决办法就是把以前的那些Repository DB删掉。
3) 在Captured Objects框里要把一些Sequences, Views, Indexes删除掉,同时把数据超大的那两张表A,B也删除掉。
4)在Captured Objects框里右键Convert to Oracle Mode, 然后在Converted Objects框里造句选中右键Generate产生建那29张表的sql语句,里面的开头语句关于新建一个与Mysql DB同名的Oracle DB。
5)执行sql语句新建一个DB和29张表。
6)在Converted Objects框里造句选中右键Move Data即可。
2. 导入数据量超大的2张表A和表B。
1) 按照1的步骤执行到第4步时,选Generate Data Move Scripts产生保存一些脚本,再找出A.ctl和B.ctl。
2) 在Oracle DB里独立为表A和表B建表,其中必须注意的是:a. 字段不能少,属性要一样,包括是否为空选项也要一样。b. 表里每个字段顺序必须与Mysql里表的字段顺序一样.
3) 用如下命令把表A和表B的数据导出:
只导出纯数据,不包含建表的脚本的TXT文件。 (在linux命令行下执行)
sudo mysqldump reader_prod Atable -v --host=localhost --port=3306 -T tmp --fields-terminated-
by="<EOFD>" --lines-terminated-by="<EORD>" --fields-escaped-by=''
4) 然后在oracle用户linux使命令行下执行:
sqlldr userid=username/password control=A.ctl
sqlldr userid=username/password control=B.ctl
注意:用户对文件的权限必须是可读可写。
另:如果你本机已经安装了Oracle的管理客户端,在使用Tool启动时会调用Oracle的管理客户端的JDBC jar包。但Tool需要用回自己的Jar包。所以需要手动做一个启动文件star.cmd
SET ORACLE_HOME=%CD%
START SQLDEVELOPER.exe
相关文章推荐
- OracleDBControl启动失败Unable to determine local host from URL REPOSITORY_URL=http://your-url.co 解决方法
- Porting from Oracle to MySQL
- Migration from SQLServer to MySQL
- RDS Migration from 5.5 to 5.6 with mysqldump
- Guide to Database Migration from Microsoft SQL Server using MySQL Workbench
- Oracle RMAN Migrate DB from RAC ASM to Single non-ASM
- Export data to text mode from oracle db
- OracleDBControl启动失败Unable to determine local host from URL REPOSITORY_URL=http://
- ALinq1.3(由LinqToAccessDB改名)源码发布--支持Access、SQLite、MySql、Oracle四种数库
- OracleDBControl启动失败Unable to determine local host from URL REPOSITORY_URL=http://your-url.co 解决方法
- How to get data from Oracle DB in silverlight via WCF ?
- data type Migration from MySQL to PostgreSQL
- PHP Tutorials : Add, View, Edit & Delete from to MySQL database, Live Example (News System)
- iOS ERROR: unable to get the receiver data from DB
- web服务连接mysql报错 解析:Can not read response from server. Expected to read 4 bytes, read 0 bytes before c
- Moving From Top To Bottom in Detailed Block in Oracle Forms
- Why do I need to use DAC from Oracle BI?
- mysql:Failed to read auto-increment value from storage engine
- message from server: "Host 'XXXX' is not allowed to connect to this MySQL server"
- Jdbc-Type mismatch: cannot convert from java.sql.ResultSet to com.mysql.jdbc.ResultSet