用squldr2进行Oracle到MySQL的数据迁移
Posted by anysql on 2012-05-17从Oracle迁移数据到MySQL时,通常用文本或SQL语句的方式,但都为MySQL的特殊字符处理而发愁,后来淘宝丁奇告诉MySQL的标准函数中有unhex函数,可以将十六进制的串转换成原来的字符串,从而轻松解决原来很麻烦的特殊字符处理的问题,于是对sqluldr2作了改进处理,对于所有的字符字段,都直接转换成十六进制串处理算了。
E:\dbpress>sqluldr2 anysql/anysql query=tab text=mysqlins
INSERT INTO `tab` (`TNAME`,`TABTYPE`,`CLUSTERID`) VALUES
(unhex(’4150505f43415445474f5259′),unhex(’5441424c45′),null),
(unhex(’4150505f444550454e4453′),unhex(’5441424c45′),null),
……
(unhex(’545f4d565445535432′),unhex(’5441424c45′),null);
不管增加了多不功能,sqluldr2都保持了一如即往的导出性能,生成复杂INSERT语句的速度和直接导出文本一样快。
E:\dbpress>sqluldr2 anysql/anysql query=test3 text=mysqlins file=temp.txt
0 rows exported at 2012-05-17 08:38:51, size 0 MB.
1000000 rows exported at 2012-05-17 08:38:59, size 244 MB.
2000000 rows exported at 2012-05-17 08:39:11, size 492 MB.
3000000 rows exported at 2012-05-17 08:39:23, size 740 MB.
4000000 rows exported at 2012-05-17 08:39:37, size 984 MB.
4764032 rows exported at 2012-05-17 08:39:46, size 1175 MB.
output file temp.txt closed at 4764032 rows, size 1175 MB.
有了这个功能后,sqluldr2会成为最流行的从Oracle迁移数据到MySQL的工具,我们自己及淘宝DBA都在日常工作中使用它。


Recent Comments