当前位置: 首页 > Oracle, oracle 11g > 正文

oracle 11g延迟段创建导致exp-00003错误及关闭延迟段创建特性

开发人员在远程使用exp导出11.2.0.2.0(64bit for linux)版本的数据库中一张分区表时,遇到EXP-00003错误。客户端版本是11.2.0.1.0(32bit for windows)。

C:\Documents and Settings\1>exp resourcedb/resourcedb@192.168.20.105/FHACDB file=d:\aaa.dmp tables=T_FILE_INFO

Export: Release 11.2.0.1.0 - Production on 星期二 11月 5 09:49:52 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Produc
tion
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 AL32UTF8 字符集 (可能的字符集转换)

即将导出指定的表通过常规路径...
. . 正在导出表                     T_FILE_INFO
EXP-00003: 未找到段 (0,0) 的存储定义
导出成功终止, 但出现警告。

关于EXP-00003错误,网上什么版本都有,很明显这个错误和segment有关,猜测是和11g的新特性延迟段创建有关系,在MOS上看到一篇关于EXP-00003错误的文章说是由于这张表被其他用户建了索引,而这个用户没有权限去导出其他用户的索引信息,就报这个错误,我感觉这篇文章和我遇到的不是一回事,于是查了下是否有其他用户给我要导出的表建索引。

SQL> SELECT OWNER,TABLE_OWNER,INDEX_NAME FROM DBA_INDEXES WHERE TABLE_NAME='T_FILE_INFO';
 
OWNER                          TABLE_OWNER                    INDEX_NAME
------------------------------ ------------------------------ ------------------------------
RESOURCEDB                     RESOURCEDB                     T_F_I_IDE
RESOURCEDB                     RESOURCEDB                     T_F_I_ID
RESOURCEDB                     RESOURCEDB                     T_F_I_OBJ

经查看,并没有其他用户在这张表上创建索引,再看看这张表的分区信息、段信息和数据分布情况。

SQL> SELECT PARTITION_NAME,NUM_ROWS FROM USER_TAB_PARTITIONS WHERE TABLE_NAME='T_FILE_INFO';
 
PARTITION_NAME                   NUM_ROWS                   SEGMENT_CREATED
------------------------------ ----------                   --------------
PART01                                                      NO
PART02                             745200                   YES
PART03                             902900                   YES
PART04                             457400                   YES
PART05                              91970                   YES
PART06                                                      NO
PART07                                                      NO
PART08                                                      NO
PART09                               2294                   YES
PART10                                152                  YES
PART11                                                     NO
PART12                                                     NO
PART13                                                     NO
PART14                                                     NO
PART15                                                     NO
PART16                                                     NO
PART17                                                     NO
PART18                              85208                  YES
PART19                                                     NO
PART20                                                     NO
PART21                              41436                  YES
PART22                                                     NO
PART23                                                     NO
PART24                                                     NO
PART25                                                     NO
PART26                                                     NO
PART27                                                     NO
PART28                                                     NO
PART29                                                     NO
PART30                                                     NO
PART31                                                     NO
PART32                                                     NO
PART33                                                     NO
PART34                                                     NO
PART35                                                     NO
PART36                                                     NO
PART37                                                     NO
PART38                                                     NO
PART39                                                     NO
PART40                                                     NO
PART41                               2692                  YES
PART42                                                     NO
PART43                                                     NO
PART44                                                     NO
PART45                                                     NO
PART46                                                     NO
PART47                                                     NO
PART48                                                     NO
PART49                                                     NO
PART50                                                     NO
PART51                                                     NO
PART52                                                     NO
PART53                                                     NO
PART54                                                     NO
PART55                                                     NO
PART56                                                     NO
PART57                                                     NO
PART58                                                     NO
PART59                                                     NO
PART60                                                     NO
PART61                                                     NO
PART62                                                     NO
PART63                                                     NO
PART64                                                     NO
PART65                                                     NO
PART66                                                     NO
PART67                                                     NO
PART68                                                     NO
PART69                                                     NO
PART70                                                     NO
PART71                                                     NO
PART72                                                     NO
PART73                                                     NO
PART74                                                     NO
PART75                                                     NO
PART76                                                     NO
PART77                                  0                  YES
 
77 rows selected

这张表是list分区,当前业务只有几个分区有数据,其他数据还没有加工到,现在只有几个分区分配了段,其他分区由于没有数据没有分配段信息。这样就触发了EXP-00003错误。将所有分区都分配下段信息,看看exp还会不会报错。

SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(9999999,'01');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000000,'02');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000001,'03');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000002,'04');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000003,'05');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000004,'06');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000005,'07');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000006,'08');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000007,'09');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000008,'10');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000009,'11');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000010,'12');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000011,'13');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000012,'14');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000013,'15');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000014,'16');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000015,'17');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000016,'18');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000017,'19');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000018,'20');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000019,'21');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000020,'22');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000021,'23');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000022,'24');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000023,'25');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000024,'26');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000025,'27');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000026,'28');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000027,'29');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000028,'30');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000029,'31');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000030,'32');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000031,'33');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000032,'34');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000033,'35');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000034,'36');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000035,'37');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000036,'38');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000037,'39');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000038,'40');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000039,'41');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000040,'42');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000041,'43');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000042,'44');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000043,'45');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000044,'46');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000045,'47');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000046,'48');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000047,'49');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000048,'50');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000049,'51');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000050,'52');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000051,'53');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000052,'54');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000053,'55');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000054,'56');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000055,'57');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000056,'58');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000057,'59');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000058,'60');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000059,'61');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000060,'62');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000061,'63');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000062,'64');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000063,'65');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000064,'66');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000065,'67');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000066,'68');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000067,'69');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000068,'70');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000069,'71');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000070,'72');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000071,'73');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000072,'74');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000073,'75');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000074,'76');
 
1 row inserted
SQL> INSERT INTO T_FILE_INFO (ID,FOND_CODE) VALUES(10000075,'77');
 
1 row inserted
 
SQL> ROLLBACK;
 
Rollback complete

竟然不可以使用ALTER TABLE XXX ALLOCATE EXTENT的方式和ALTER TABLE XXX PARTITION XX ALLOCATE EXTENT的方式分配段信息,只能每个分区都插一条记录来分区了,下面看下exp可不可以直接导出这张表。

C:\Documents and Settings\1>exp.exe resourcedb/resourcedb@105 file=XXXXXX.DMP TA
BLES=T_FILE_INFO

Export: Release 11.2.0.1.0 - Production on 星期二 11月 5 13:30:04 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Produc
tion
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
服务器使用 AL32UTF8 字符集 (可能的字符集转换)

即将导出指定的表通过常规路径...
. . 正在导出表                     T_FILE_INFO
. . 正在导出分区                          PART01导出了           0 行
. . 正在导出分区                          PART02导出了      741589 行
. . 正在导出分区                          PART03导出了      913385 行
. . 正在导出分区                          PART04导出了      469726 行
. . 正在导出分区                          PART05导出了       91501 行
. . 正在导出分区                          PART06导出了           0 行
. . 正在导出分区                          PART07导出了           0 行
. . 正在导出分区                          PART08导出了           0 行
. . 正在导出分区                          PART09导出了        2294 行
. . 正在导出分区                          PART10导出了         152 行
. . 正在导出分区                          PART11导出了           0 行
. . 正在导出分区                          PART12导出了           0 行
. . 正在导出分区                          PART13导出了           0 行
. . 正在导出分区                          PART14导出了           0 行
. . 正在导出分区                          PART15导出了           0 行
. . 正在导出分区                          PART16导出了           0 行
. . 正在导出分区                          PART17导出了           0 行
. . 正在导出分区                          PART18导出了       85349 行
. . 正在导出分区                          PART19导出了           0 行
. . 正在导出分区                          PART20导出了           0 行
. . 正在导出分区                          PART21导出了       41400 行
. . 正在导出分区                          PART22导出了           0 行
. . 正在导出分区                          PART23导出了           0 行
. . 正在导出分区                          PART24导出了           0 行
. . 正在导出分区                          PART25导出了           0 行
. . 正在导出分区                          PART26导出了           0 行
. . 正在导出分区                          PART27导出了           0 行
. . 正在导出分区                          PART28导出了           0 行
. . 正在导出分区                          PART29导出了           0 行
. . 正在导出分区                          PART30导出了           0 行
. . 正在导出分区                          PART31导出了           0 行
. . 正在导出分区                          PART32导出了           0 行
. . 正在导出分区                          PART33导出了           0 行
. . 正在导出分区                          PART34导出了           0 行
. . 正在导出分区                          PART35导出了           0 行
. . 正在导出分区                          PART36导出了           0 行
. . 正在导出分区                          PART37导出了           0 行
. . 正在导出分区                          PART38导出了           0 行
. . 正在导出分区                          PART39导出了           0 行
. . 正在导出分区                          PART40导出了           0 行
. . 正在导出分区                          PART41导出了        2692 行
. . 正在导出分区                          PART42导出了           0 行
. . 正在导出分区                          PART43导出了           0 行
. . 正在导出分区                          PART44导出了           0 行
. . 正在导出分区                          PART45导出了           0 行
. . 正在导出分区                          PART46导出了           0 行
. . 正在导出分区                          PART47导出了           0 行
. . 正在导出分区                          PART48导出了           0 行
. . 正在导出分区                          PART49导出了           0 行
. . 正在导出分区                          PART50导出了           0 行
. . 正在导出分区                          PART51导出了           0 行
. . 正在导出分区                          PART52导出了           0 行
. . 正在导出分区                          PART53导出了           0 行
. . 正在导出分区                          PART54导出了           0 行
. . 正在导出分区                          PART55导出了           0 行
. . 正在导出分区                          PART56导出了           0 行
. . 正在导出分区                          PART57导出了           0 行
. . 正在导出分区                          PART58导出了           0 行
. . 正在导出分区                          PART59导出了           0 行
. . 正在导出分区                          PART60导出了           0 行
. . 正在导出分区                          PART61导出了           0 行
. . 正在导出分区                          PART62导出了           0 行
. . 正在导出分区                          PART63导出了           0 行
. . 正在导出分区                          PART64导出了           0 行
. . 正在导出分区                          PART65导出了           0 行
. . 正在导出分区                          PART66导出了           0 行
. . 正在导出分区                          PART67导出了           0 行
. . 正在导出分区                          PART68导出了           0 行
. . 正在导出分区                          PART69导出了           0 行
. . 正在导出分区                          PART70导出了           0 行
. . 正在导出分区                          PART71导出了           0 行
. . 正在导出分区                          PART72导出了           0 行
. . 正在导出分区                          PART73导出了           0 行
. . 正在导出分区                          PART74导出了           0 行
. . 正在导出分区                          PART75导出了           0 行
. . 正在导出分区                          PART76导出了           0 行
. . 正在导出分区                          PART77导出了           0 行

导出成功终止, 但出现警告。

在每个分区都分配段之后,exp可以导出数据了。
这个问题和11g的新特性-延迟段创建有关系,由新的参数deferred_segment_creation来控制是否启用延迟段创建功能,这个参数默认就是TRUE也就是开启,同时呢,在11g的CREATE TABLE语法中也新出现了SEGMENT CREATION参数,该参数有2个值,IMMEDIATE和DEFERRED,默认值是DEFERRED也就是在创建空表示,不分配段信息,有关这个问题详见我之前写过的一篇文章http://www.dbdream.com.cn/?p=346
下面来看下deferred_segment_creation参数:

SYS@105>  show parameter defe

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- --------------------
deferred_segment_creation            boolean                TRUE

我个人建议关闭这个特性,现在磁盘都足够大,禁掉这个参数的好处往往要大于节省的那点磁盘空间。特别是在项目开发阶段,要频繁的从开发环境迁移数据到测试环境,而很多人习惯使用exp而不使用expdp来迁移这些数据,而开启延迟段创建特性就不会为新建的空表分配段,exp就导不出这些没有分配段的空表(expdp可以),这样迁移过去的数据,可能就会报表或对象不存在的错误。

这是个动态参数,可以直接修改就生效。

SYS@105>  alter system set deferred_segment_creation=false;

系统已更改。

下面创建张空表看看是否分配段。

SYS@105>  conn dbdream/dbdream@105
已连接。

DBDREAM@105>  create table seg_test(id number);

表已创建。

DBDREAM@105>  select segment_name from user_segments where segment_name='SEG_TEST';

SEGMENT_NAME
--------------------------------------------------------------------------------

SEG_TEST         

可见,在关闭延迟段创建特性后,创建空表时分配了段信息。

本文固定链接: https://www.dbdream.com.cn/2013/11/oracle-11g%e5%bb%b6%e8%bf%9f%e6%ae%b5%e5%88%9b%e5%bb%ba%e5%af%bc%e8%87%b4exp-00003%e9%94%99%e8%af%af%e5%8f%8a%e5%85%b3%e9%97%ad%e5%bb%b6%e8%bf%9f%e6%ae%b5%e5%88%9b%e5%bb%ba%e7%89%b9%e6%80%a7/ | 信春哥,系统稳,闭眼上线不回滚!

该日志由 dbdream 于2013年11月05日发表在 Oracle, oracle 11g 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: oracle 11g延迟段创建导致exp-00003错误及关闭延迟段创建特性 | 信春哥,系统稳,闭眼上线不回滚!
关键字: , , , , ,

oracle 11g延迟段创建导致exp-00003错误及关闭延迟段创建特性:等您坐沙发呢!

发表评论

快捷键:Ctrl+Enter