Tag Archives: sqlldr

ODA性能概述

前一段时间对ODA进行了大概一周的测试,简单描述一下性能相关的测试结果。 Oracle的一体机是将软件和硬件结合在一起打包进行出售,那么硬件如何配置势必做过大量的测试之后才确定下来,ODA显然也是精心调测后给出的配置方案。 首先看一下ODA的硬件配置: 包含两个等同配置的节点: 2CPU,6核处理器,每个节点12核处理器; 每个节点96G内存; 每个节点配置2块500G 7200转的SATA硬盘,用来存放操作系统和数据库软件; 共享磁盘部分: 总共20块600G 15000转的SAS硬盘,底层不进行RAID,完全由ASM实现3重镜像,冗余后可用容量4T; 4块73G SAS SSD固态硬盘,用来存储REDO,同样使用ASM实现3重镜像; 网络部分: 提供了两个节点间内部通信的1G网络连接; 对外提供服务的1G网络连接端口; 对外提供服务的10G网络连接端口。 无论是CPU、内存、磁盘数量和容量还是网络连接数量都是配置平衡的,这使得ODA在处理绝大部分工作时都不会碰到明显的性能瓶颈。 经过测试,ODA磁盘的ORION测试结果为: 20块SAS盘只读方式: SIMPLE方式: IOPS=5910 MBPS=1604.98 ADVANCE方式:-run advanced -testname oda_big -size_small 8 -size_large 1024 -type rand -simulate concat -write 0 -duration 10 … Continue reading

Posted in ORACLE | Tagged , , , , , , , | Leave a comment

ORA-600(6928)错误

客户的测试环境碰到了这个错误。 告警日志中错误如下: Sat Oct 15 01:21:40 GMT+08:00 2011ALTER SYSTEM SET service_names=’SYS$SYS.KUPC$S_1_20111015004332.DB’,’db’ SCOPE=MEMORY SID=’db1′; Sat Oct 15 01:21:40 GMT+08:00 2011ALTER SYSTEM SET service_names=’db’ SCOPE=MEMORY SID=’db1′; Sat Oct 15 01:39:03 GMT+08:00 2011Errors IN file /u01/app/oracle/admin/db/udump/db11_ora_4325842.trc: ORA-00600: 内部错误代码, 参数: [6928], [886], [], [], … Continue reading

Posted in BUG | Tagged , , , | Leave a comment

ROWNUM固化外部表结果集存在问题

在客户的11.2.0.2环境中碰到了这个问题,Oracle在处理包含ROWNUM固化的外部表加载数据时返回错误的结果。 外部表构造描述可以参考:利用外部表读取告警日志文件 客户环境中创建的外部表和上面链接中的例子几乎完全一致: SQL> CREATE TABLE T_ALERT 2 (TEXT VARCHAR2(4000) 3 ) 4 ORGANIZATION EXTERNAL 5 (TYPE ORACLE_LOADER 6 DEFAULT DIRECTORY D_ALERT 7 ACCESS PARAMETERS 8 (RECORDS DELIMITED BY NEWLINE 9 FIELDS (TEXT (1:255) CHAR)) 10 LOCATION (’alert_xshdb1.log’)); TABLE created. … Continue reading

Posted in BUG | Tagged , , | 2 Comments

利用外部表读取告警日志文件

数据库的告警日志以文本的格式保存到文件系统中,虽然可以很方便的通过操作系统命令进行查看,而且11g中Oracle甚至还提供了专门的adrci工具,但是对于只能通过SQLPLUS或者其他查询工具连接到数据库的人而言,还是非常不方便。 不过其实这个问题可以很容易的通过外部表的方式解决。最简单的办法就是将alert文件中的每一行记录都当做表中一个VARCHAR2(4000)类型列的一行记录,这样就可以轻松的通过SQL的方式来访问告警日志了。 在创建外部表之前,需要创建一个DIRECTORY,这个目录的位置就是background_dump_dest初始化参数指定的位置。 SQL> SHOW parameter background_dump_dest NAME TYPE VALUE ———————————— ———– —————————— background_dump_dest string D:\ORACLE\PRODUCT\ADMIN\YTK102\BDUMP SQL> CREATE directory d_alert AS ‘D:\ORACLE\PRODUCT\ADMIN\YTK102\BDUMP’; 目录已创建。 一旦目录创建成功后,就可以创建外部表了: SQL> CREATE TABLE t_alert 2 (text varchar2(1000) 3 ) 4 organization external 5 (TYPE oracle_loader 6 … Continue reading

Posted in ORACLE | Tagged , , | 3 Comments

TRUNCATE模式SQLLDR导致SECUREFILE的LOB空间不断增长

测试LOB的SECUREFILE存储方式时发现,如果利用SQLLDR的TRUNCATE方式导入数据,随着测试次数的增加,LOB对象占用的空间也会逐步增加。 创建表的脚本很简单: CREATE TABLE t_load_4m_sf (id NUMBER, full_name varchar2(100), create_date DATE, contents BLOB, CONSTRAINT pk_t_load_4m_sf PRIMARY KEY(id)) lob (contents) store AS securefile; 用于加载LOB数据的控制文件如下: [oracle@dbserver1 sqlldr]$ more sqlldr_4M_sf.ctl LOAD DATA INFILE ‘filename.dat’ INTO TABLE T_LOAD_4M_SF TRUNCATE FIELDS TERMINATED BY ‘,’ (ID … Continue reading

Posted in ORACLE | Tagged , , , | 1 Comment