我们都知道处理LOB数据是很烦人的,在数据库设计完成后,我们常常需要装载测试数据,同样对于LOB很烦人,我们可以用sql*loader来实现, followin...
编写相应的sqlldr控制文件 # more a0.ctl load data infile 'a_0000.txt' badfile 'a0.bad' discardfile 'a0.dsc'...使用sqlldr并行直接路径加载 sqlldr userid=user1/123456 control=a0.ctl direct=y parallel=true skip_index_maintenance...=true & sqlldr userid=user1/123456 control=a1.ctl direct=y parallel=true skip_index_maintenance=true...& sqlldr userid=user1/123456 control=a2.ctl direct=y parallel=true skip_index_maintenance=true & sqlldr...=user1/123456 control=a4.ctl direct=y parallel=true skip_index_maintenance=true & sqlldr userid=user1
apps.cux_sqlldr_test_s FOR cux.cux_sqlldr_test_s; Sqlldr 有两种使用方式 (1) 在控制文件中包涵数据....创建一个文件命名为cux_sqlldr_test.ctl,在服务器下创建目录Sqlldr,在sqlldr下创建log和bad文件夹, 上传cux_sqlldr_test.ctl至服务器 ,如下图所示:.../bad/cux_sqlldr_test.bad” discardfile “/u02/ebsuat/app/fs2/EBSapps/appl/cux/12.0.0/sqlldr/bad/cux_sqlldr_test.disc...log=$CUX_TOP/sqlldr/file/cux_sqlldr_test.log 查看结果 查看表 由上图可以看出,运行命令后,在file文件夹下生成了cux_sqlldr_test.log...上传cux_sqlldr_test.txt,cux_sqlldr_test.ctl至服务器,cux_sqlldr_test.txt由上面PLSQL脚本生成,cux_sqlldr_test.ctl如下
环境: 服务端:RHEL6.4 + Oracle 11.2.0.4 客户端:WIN10 + Oracle 11.2.0.1 client 目录: sqlldr语法 sqlldr实验准备 sqlldr...常规加载 sqlldr常规加载优化 sqlldr直接路径加载 sqlldr直接路径加载优化 References 1. sqlldr语法 用法: SQLLDR keyword=value [,keyword...前者的例子是 'sqlldr scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo userid=scott/tiger'。...例如, 允许 'sqlldr scott/tiger control=foo logfile=log', 但是 不允许 'sqlldr scott/tiger control=foo log', 即使...3. sqlldr常规加载 sqlldr jingyu/jingyu@db1 control=E:\jingyu\scripts\ldr_object.ctl bad=E:\jingyu\scripts
date 'ddmmyyyyhh24miss' , SAL char(44 ), COMM char(44 ), DEPTNO char(44 ) ) --下面我们先truncate表emp,然后尝试使用sqlldr...--装载数据到emp robin@SZDB:/u02/database/SYBO2SZ/BNR/dump> sqlldr scott/tiger control=emp.ctl data=emp.dat...''''; RAISE; END; END run; END unloader; / 4、小结 a、本文描述了单表以及多表如何高速卸载数据,并且批量生成sqlldr
因为项目需要,对比datapump性能还是不理想,所以还是希望采用sqlldr来做。...]$ sqlldr n1/n1 control=sqlldr.ctl data=t.lst SQL*Loader: Release 11.2.0.3.0 - Production on Tue May...查看自动生成的sqlldr.log 里面有如下的错误。...[ora11g@rac1 sqlldr]$ sqlldr n1/n1 control=sqlldr.ctl data=t.lst SQL*Loader: Release 11.2.0.3.0 - Production...8s [ora11g@rac1 sqlldr]$ sqlldr n1/n1 direct=true control=sqlldr.ctl data=t.lst SQL*Loader: Release
yyyy-mm-dd')", c1 "SEQ_test_c1.nextval" ) BEGINDATA AAAAAAAAAA 2005-12-01 BBBBBBBBBB 2005-01-12 sqlldr
SDATE “to_date(:SDATE, ‘yyyy-mm-dd hh24:mi:ss’)” 4、使用sqlldr导入数据 配置环境变量执行: sqlldr userid = oracle/oracle...import_csv.log' 没有配置环境变量执行: whereis oracle --查看oracle可执行文件路径的命令 cd /oracle/11.2.0/db_1/bin --根据上面获取到的路径 sqlldr...oracle服务器的bin(/oracle/11.2.0/db_1/bin)目录下,并重命名为sqluldr2.bin 注意事项:本文所写的对应的是Linux版本,Winodws版参考下载链接里的说明 2、使用sqlldr2
接着续上次提到的sqlldr的性能问题,加载一个表数据400多万条记录,竟然用了6个多小时。最后大家争论不休的时候,我发现应该是网络的问题。...Mon Jun 16 13:16:37 2014 Elapsed time was: 00:07:02.61 CPU time was: 00:00:31.23 àtune sqlldr...time was: 00:03:05.75 CPU time was: 00:00:41.27 所以综上所述,在排查了cpu,io,缓存,网络的因素后,还可以使用一些选项来优化sqlldr
编写导数据的CTL文件 3.1 查看CTL文件 3.2 查看SHELL脚本 4 查看执行的效率 4.1 查看导入到ORACLE数据的效率 4.2 查看统计的日志 5 效率总结 1 查看命令参数 $ sqlldr...前者的例子是 'sqlldr scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo userid=scott/tiger'。...例如, 允许'sqlldr scott/tiger control=foo logfile=log', 但是 不允许'sqlldr scott/tiger control=foo log', 即使 参数...'log' 的位置正确 2 查看需要导入的文本内容 2.1 查看文本的行数 $ wc -l test-sqlldr.csv 9415010 test-sqlldr.csv 2.2 查看文本的大小 $...du -sh test-sqlldr.csv 2.8G test-sqlldr.csv 2.3 查看文本的内容 $ head -n 2 test-sqlldr.csv K1|!?
大家的注意力都集中到了sqlldr的加载性能上。等到他们找到我时,已经讨论了不少关于direct,convention加载的各种情况了,看似工作也做了不少了。...我首先要确定的就是具体的环境,在那台服务器上跑sqlldr,要把数据加载到哪个库。如果在生产上半个小时,可能在环境的某些地方还是有一些差别。...首先和开发协调了下,要到了他们使用的control file和sqlldr的命令。 首先查看control file,可以看到字段并不多,结构也不复杂。...查看sqlldr的命令,和开发确认过,和生产使用的是同一套。所以基本的配置都有。没有太大问题。...当然了,我查看的时候数据已经加载完成了,也不能确定当时的cpu负载情况,这个时候可以从sqlldr日志中得到印证。加载了6个小时,cpu时间其实就是半个小时左右。这样来说cpu导致的可能性很小。
RHEL6 + Oracle 11g客户端快速部署 需求:只是用到客户端的sqlplus, sqlldr功能....--赋予sqlplus,sqlldr执行权限 cd $ORACLE_HOME chmod u+x sqlplus sqlldr 3.测试验证客户端sqlplus, sqlldr可用,任意目录输入命令均返回如下提示...用法: SQLLDR keyword=value [,keyword=value,...]...前者的例子是 'sqlldr scott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foo userid=scott/tiger'。...例如, 允许 'sqlldr scott/tiger control=foo logfile=log', 但是 不允许 'sqlldr scott/tiger control=foo log', 即使
3.查询分区表的某个分区数据 select * from f_l_c_eutrancelltdd_d partition (P_1D_20161016) 4.sqlldr 导入数据库数据文件中字段被双引号引起...可以尝试执行 alter table 表名 enable row movement; //允许更改时间戳 6.sqlldr 导入数据字符集设置,ctl文件需要添加如下语句: CHARACTERSET UTF8...7.sqlldr 导入数据忽略第一行 sqlldr scott/tiger@orcl control=emp.ctl skip = 1 或者 ctl 文件添加如下语句: OPTIONS(SKIP=1)...8.sqlldr 无法判断最后一个字符是什么 substr(:col1,0,length(:col1)-1)
可以看到sqlldr的速度做数据抽取大概耗费了14分钟,而且不包括2张含有clob的表,生成的dump文件有150G oracle_datapump的速度要更快一些。...当然了sqlldr可以使用客户端来抽取数据,而oracle_datapump只能基于服务端,灵活性上sqlldr要好一些。...extract start time extract end time Duration Dump_generated sqlldr(exclude 2 tables)_68 tables Tue...可以看到采用sqlldr加载数据的时候,启用了150个并行线程,sqlldr开启了并行。耗费了大约80分钟,产生的日志数据量也不少有,230G左右。...--》数据纠错 在数据纠错方面,sqlldr提供了完整的处理机制,如果数据不符合要求被reject,可以生成对应的错误文件,里面包含所有被拒的数据,可以再次使用sqlldr来加载。
3、外部表acess paramter获得方式 sqlldr oracle/oracle control=user.ctl external_table=generate_only eg:...optionally enclosed by ‘”‘ trailing nullcols (user_name varchar2(20), user_id number) 2、sqlldr...), “USER_ID” NUMBER ) ORGANIZATION external ( TYPE oracle_loader DEFAULT DIRECTORY SYS_SQLLDR_XT_TMPDIR...ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE CHARACTERSET ZHS16GBK BADFILE ‘SYS_SQLLDR_XT_TMPDIR..._00000′:’data.bad’ DISCARDFILE ‘SYS_SQLLDR_XT_TMPDIR_00000′:’data.dis’ LOGFILE ‘user_data.log_xt
迁移方式 这里想说说大家常用的迁移方式,可能数据量小的时候,使用imp/impdp就可以,数据量稍大一些,impdp或者sqlldr就可以,如果数据量更大,就可以考虑sqlldr或者外部表了。...个人的感觉来说imp/impdp/sqlldr都属于物理级的数据加载,外部表的数据加载才是逻辑级别的。...在数据导入之前,你不可能从imp/impdp的dump文件中查看到表的数据,如果发生数据冲突,也是在数据导入的时候才可能发现,sqlldr可能还可以查看一部分数据,但是不够直观,数据都是行列形式的文件,...即使你想对数据进行预检查,那么你可能得用Impdp或者sqlldr的形式把数据先加载到一个临时的用户下,那么问题就来了,你得准备足够多的空间资源,而且导入的过程中队系统负载也是很大挑战。...磁盘空间不足 如果数据导入的过程中发生空间的问题,使用sqlldr的时候你就得仔细的查看日志文件,慢慢一个一个修复吧。最好还是给30%左右的buffer,别自己为难自己。
,方便导入到其他数据库中,如今国产化进行的如火如荼,这个工具也是在国产数据库迁移中使用比较广泛的工具,值得大家去学习与使用,今天要说的是 Oracle 数据库自带的数据导入工具 SQL*Loader(sqlldr...用法 --示例sqlldr test/mypassword@pdb1 /home/oracle/test.ctl log=test.log [oracle@test19crac1 bin]$ sqlldr...Usage: SQLLDR keyword=value [,keyword=value,...]...An example of the former case is 'sqlldr scott/tiger foo'; an example of the latter is 'sqlldr control...For example, 'sqlldr scott/tiger control=foo logfile=log' is allowed, but 'sqlldr scott/tiger control
但是上面的问题现场已经确认,Oracle并没有hang在sqlldr这个命令上。 3.3 最终答案 看了好多博客,最后发现竟然不是Oracle的原因。...4 解决方案 问题已经很明确了,解决方案也就有了,处理sqlldr的输出就可以解决。解决方法有下面三种。...4.1 增加参数 在sqlldr命令后面增加一个参数,silent=(ALL),最后命令如下: sqlldr test/test123@biz control=/home/jinjunzhu/biz/T_BIZ.ctl...-1 : status; } 4.3 文件接收标准输出 可以在sqlldr命令中增加文件参数来接收命令的标准输出,最后我采用了这种方式,命令如下: sqlldr test/test123@biz control...关于sqlldr命令的详细参数介绍,已经比较成熟,大家可以自行网络查找。
sqlldr的加载效率是很高的,同时在oracle 10g以后推出的oracle_loader效率也不容小视。...sqlldr提供了额外的功能来生成external_table的创建和insert脚本,不过control file是关键,今天尝试的时候就出现了一些问题。...> sqlldr n1/n1 control=NAME_DATA_sqlldr.ctl external_table=generate_only SQL*Loader: Release 11.2.0.2.0...查看control file的内容,如下: > less NAME_DATA_sqlldr.ctl LOAD DATA CONTINUEIF LAST !..._00000 ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE BADFILE 'SYS_SQLLDR_XT_TMPDIR_00000
sql*loader 可以理解sqlldr是基于客户端的,而言这个工具可能更具有通用性,因为一些数据在它面前都是可扩展的,我们可以尝试从sqlserver中导出数据,然后通过sqlldr来做为数据的导入...比较纳闷的是,sqlldr作为可扩展的数据导入工具,oracle为什么没有出类似sqlldr这样的数据导出工具,因为exp/expdp导出的是二进制文件,生成平面文件还是有一定的距离,在tom的网站答疑中...oracle_loader 外部表在较新的版本中开始出现,可能大家用的比较多的还是通过oracle_loader来读取alert日志的信息,其实在某种程度上而言,oracle_loader可以在某种程度上作为sqlldr...而无须消耗额外的数据空间,相比于sqlldr生成的dump而言,基于oracle_loader创建的外部表更加的具体,我们可以在数据导入前做一些相关的数据检查和稽核工作。
领取专属 10元无门槛券
手把手带您无忧上云