
作者:楼方鑫 (网名:d.c.b.a) 个人主页:http://www.anysql.net
作者:楼方鑫 (网名:d.c.b.a) 个人主页:http://www.anysql.net
Sqluldr2
Sqluldr2 是灵活与强大的 Oracle 文本导出程序,已被大众使用三年多了,有几千国内外
DBA 在使用它或使用过它,并在使用的过程中提出了宝贵实用的改进意见,在完善了众多
真实客户的需求后,最终形成了现在的稳定版本。Oracle 有一个工具叫 SQL*Loader(sqlldr)
是用来将文本文件装载到数据库中的,而我的工具是用来将 Oracle 中的数据导出成文本的,
因此取名为 SQL*UnLoader(sqluldr),而最后的 2 是因为第一版是用 OCI 7 接口写的,而现
在发布的是用 OCI 8 接口重写的,是第二代的意思。学会这样的好工具,在一定的场合可以
让 DBA 的某些工作做得更轻松自在。
文本方式有什么作用?文本方式是不同类型数据库数据交换的重要方式,从小的地方
说,例如将一些 Oracle 性能数据收集到 MySQL 中,进行分析和展示;从大的地方讲,sqluldr2
曾被用来在 Oracle 系统中导出大批量的数据,然后装载到数据仓库(NCR 或 Sybase IQ)中。
阿里巴巴(Alibaba)集团的 DBA 几年前就开始用 sqluldr 从生产系统中导出巨量数据给数
据仓库分析,并在真实应用环境下创下了我所见过的文本导出速度的最高记录, 总共用了
595 秒钟导出了 171135273 条记录,平均每秒 287622 条记录。
或者用在不同字符集的同种数据库之间进行数据交换,如 US7ASCII 字符集的 Oracle
数据库和 ZHS16GBK 字符集的 Oracle 数据库进行中文信息交换,这时 Database Link 是不行
的。在某些系统中为了防止软件版本变迁的问题,而选择用最简可靠的文本方式来归档和永
久保存历史数据。最近也有不少人用 sqluldr2 来快速将数据导出成文本,为 GreenPlum 这样
的海量数据分析处理系统提供数据。也有做搜索的,结合 sqluldr 的早期源代码,结合到商
品搜索引挚的数据 dump 程序中。也有人整合 sqluldr 的早期源代码到普通数据库与内存数
据库的数据同步程序中。
更有国外的工程师,发邮件来谢谢我免费发布这个小工具,说这个工具被成功地用于某
些项目中,帮他们解决了数据迁移的问题。从个人网站的统计来看,源代码和预编译好的可
执行文件的累计下载量已经突破了 20000 大关。
Sqluldr2 工具的主要优点如下:
用 Oracle 的 C 语言接口写成,短小精干,运行速度快。
0 rows exported at 2007-11-28 15:43:09
171135273 rows exported at 2007-11-28 15:53:04
评论