在审计工作,将几亿条的oracle数据通过sqlserver自带工具导入到sqlserver中,速度不是特别的理想,虽然通过视图方式能提高一些速度,但是既不简洁,也不方便。

用ociuldr工具,可以支持生成多个数据文件,并通过bcp方式导入到sqlserver中,速度狠理想。

ociuldr工具默认一个batch是50W条记录(即:batch=2 表示100W条记录生成一个文件),通过指定file选项来定义生成的数据文件名,中间请用包含” %b “字样,
” %b “ 会被打印成序列号:

在虚拟机模拟如下:

SQL> select count(*) from yoon;

COUNT(*)
----------
   7340032

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

1. 将ociuldr工具上传至BIN目录下

2. chown oracle.oinstall  ociuldr

3. chmod 775  ociuldr

[oracle@db01 ~]$ ociuldr -help
Usage: ociuldr user=... query=... field=... record=... file=...
(@) Copyright Lou Fangxin 2004/2005, all rights reserved.
Notes:
       -si   = enable logon as SYSDBA
       user  = username/password@tnsname
       sql   = SQL file name
       query = select statement
       field = seperator string between fields
       record= seperator string between records
       file  = output file name(default: uldrdata.txt)
       read  = set DB_FILE_MULTIBLOCK_READ_COUNT at session level
       sort  = set SORT_AREA_SIZE & SORT_AREA_RETAINED_SIZE at session level (UNIT:MB) 
       hash  = set HASH_AREA_SIZE at session level (UNIT:MB) 
       serial= set _serial_direct_read to TRUE at session level
       trace = set event 10046 to given level at session level
       table = table name in the sqlldr control file
       mode  = sqlldr option, INSERT or APPEND or REPLACE or TRUNCATE 
       log   = log file name, prefix with + to append mode
       long  = maximum long field size
       array = array fetch size
       buffer= sqlldr READSIZE and BINDSIZE, default 16 (MB)

for field and record, you can use '0x' to specify hex character code,
  \r=0x0d \n=0x0a |=0x7c ,=0x2c \t=0x09[oracle@db01 ~]# su - oracle
 
[oracle@db01 ~]$ ociuldr user=scott/tiger@orcl query="select * from scott.yoon" field='<[!]>' record='<[end]>' file=/u01/yoon_%b.txt table=scott.yoon batch=2
     
     2050 bytes allocated for column EMPNO (1) 
     550 bytes allocated for column ENAME (2) 
     500 bytes allocated for column JOB (3) 
    2050 bytes allocated for column MGR (4) 
    1050 bytes allocated for column HIREDATE (5) 
    2050 bytes allocated for column SAL (6) 
    2050 bytes allocated for column COMM (7) 
    2050 bytes allocated for column DEPTNO (8)

0 rows exported at 2014-10-30 01:13:21
  500000 rows exported at 2014-10-30 01:13:46
 1000000 rows exported at 2014-10-30 01:14:15
         output file /u01/yoon_1.txt closed at 1000000 rows.
  500000 rows exported at 2014-10-30 01:14:40
 1000000 rows exported at 2014-10-30 01:15:07
         output file /u01/yoon_2.txt closed at 1000000 rows.
  500000 rows exported at 2014-10-30 01:15:36
 1000000 rows exported at 2014-10-30 01:16:02
         output file /u01/yoon_3.txt closed at 1000000 rows.
  500000 rows exported at 2014-10-30 01:16:29
 1000000 rows exported at 2014-10-30 01:16:48
         output file /u01/yoon_4.txt closed at 1000000 rows.
  500000 rows exported at 2014-10-30 01:17:05
 1000000 rows exported at 2014-10-30 01:17:12
         output file /u01/yoon_5.txt closed at 1000000 rows.
  500000 rows exported at 2014-10-30 01:17:17
 1000000 rows exported at 2014-10-30 01:17:22
         output file /u01/yoon_6.txt closed at 1000000 rows.
  500000 rows exported at 2014-10-30 01:17:27
 1000000 rows exported at 2014-10-30 01:17:32
         output file /u01/yoon_7.txt closed at 1000000 rows.
  340032 rows exported at 2014-10-30 01:17:38
         output file /u01/yoon_8.txt closed at 340032 rows.

[root@db01 u01]# ls
app  backup  yoon_1.txt  yoon_2.txt  yoon_3.txt  yoon_4.txt  yoon_5.txt  yoon_6.txt  yoon_7.txt  yoon_8.txt

ociuldr 支持分多个数据文件的更多相关文章

  1. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 大数据支持分表优化

    公司的短信平台,数据量越来越大了,需要对数据进行一些优化,下面是拆分后的数据库量参考. 新开发的软件模块,必须支持分表,拆表的功能一个数据表里,不适合保存1000万以上的记录新开发的业务模块,能分表的 ...

  2. 数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案

    作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段.简单地说,Sharding就是将原来单一 ...

  3. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件

    小程序导入,别人导出的数据库json文件,错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:373985)异常,错误信息:解析导入文件错误,请检查导入文件内容 ...

  4. DB 分库分表(5):一种支持自由规划无须数据迁移和修改路由代码的 Sharding 扩容方案

    作为一种数据存储层面上的水平伸缩解决方案,数据库Sharding技术由来已久,很多海量数据系统在其发展演进的历程中都曾经历过分库分表的Sharding改造阶段.简单地说,Sharding就是将原来单一 ...

  5. [APUE]系统数据文件与信息

    一.口令文件 UNIX口令文件包含下表中的各个字段,这些字段包含在 由于历史原因,口令文件是/bin/passwd,而且是一个文本文件,每一行都包括了上表中的七个字段,字段之间用":&quo ...

  6. MySQL到底能支持多大的数据量?

    MySQL是中小型网站普遍使用的数据库之一,然而,很多人并不清楚MySQL到底能支持多大的数据量,再加上某些国内CMS厂商把数据承载量的责任推给它,导致很多不了解MySQL的站长对它产生了很多误解,那 ...

  7. Postman—使用数据文件

    前言 数据文件是非常强大的方式使用不同的测试数据来测试我们的API,以检查它们是否在各种情况下都能正常运行.我们可以认为数据文件是“Collection Runner”中每个请求的参数.下面,通过一个 ...

  8. AIX用裸设备给表空间添加数据文件

    近期在对生产数据库表空间进行扩容,目的是春节期间保证表空间的使用率,不会出现紧急告警信息. 1.查看表空间使用率的SQL语句 col tablespace_name for a16 col SUM_S ...

  9. java 分次读取大文件的三种方法

    1. java 读取大文件的困难 java 读取文件的一般操作是将文件数据全部读取到内存中,然后再对数据进行操作.例如 Path path = Paths.get("file path&qu ...

随机推荐

  1. Unity AssetBundles and Resources指引 (三) AssetBundle基础

    本文内容主要翻译自下面这篇文章 https://unity3d.com/cn/learn/tutorials/topics/best-practices/guide-assetbundles-and- ...

  2. [翻译]你不会想知道的kobject,kset,和ktypes

    ---------------------------------------------------------------------------------------------------- ...

  3. nginx 配置.json文件直接访问

    不要弹出下载 配置nginx.conf http { include mime.types; default_type application/json;

  4. 在C++中调用DLL中的函数 (2)

    应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息. Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin. ...

  5. 入门学习PHP之变量_1

    1.函数里只能访问局部变量,不能访问全局变量,如果函数里需要访问全局变量则需要在变量前加global作用域,如下实例: <?php $x=5; $y=10; function myTest() ...

  6. Find out who the “mole” is?

    Blueheat Company’s  production server was out of order again. The CEO was very upset and want their ...

  7. 优秀的富文本编辑器 Kindeditor

    <textarea name="txtbody" style="width:100%;height:320px;" > {$article.txt} ...

  8. 浅谈Bootstrap自适应功能在Web开发中的应用

    随着移动端市场的强势崛起,web的开发也变得愈发复杂,对于个体开发者来说,自己开发的网站,在电脑.手机.Pad等上面都要有正常的显示以及良好的用户体验.如果每次都要自己去调整网页去匹配各个不同的客户端 ...

  9. 一个学生分数表,用sql语句查询出各班级的前三名

    昨天去一家公司面试,被这道题难住了,哎,又失去一次好的机会. 回来 之后就再想这个问题 表结构及数据如下:

  10. sublime text 2 中文乱码解决办法

    sublime text 2是一款非常优秀的跨平台文本及源代码编辑器,本人非常喜欢,但是不支持GB2312和GBK编码在某些时候比较麻烦.可以通过向sublime text 中添加编码类型转换包(比如 ...