在执行一个业务数据库迁移的时候发现导入报告如下错误,常识几次都不能正常执行导入操作。
数据在其他库中导出时使用默认导出dmp包,但在导入到本机时提示如下问题。
Export file created by EXPORT:V10.02.01 via conventional path
Warning: the objects were exported by POST_KF, not by you
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. importing POST_KF's objects into POST_CT
. importing POST_KF's objects into POST_CT
. . importing table "Z_HEJI" 252974 rows imported
. . importing table "Z_XXGD" 104619 rows imported
. . importing table "Z_SDDD" 140575 rows imported
. . importing table "Z_BKDD" 1370 rows imported
. . importing table "R_YYGL_ORDER" 101553 rows imported
. . importing table "GTH_AGT_IN" 11326 rows imported
. . importing table "GTH_AGT_OUT" 8542 rows imported
. . importing table "GTH_AJ_DS" 4891132 rows imported
IMP-00017: following statement failed with ORACLE error 1659:
"CREATE INDEX "LOGDATE_INDE3" ON "GTH_AJ_DS" ("SYSTEM_DATE" ) PCTFREE 10 IN"
"ITRANS 2 MAXTRANS 255 STORAGE(INITIAL 4294967294 FREELISTS 1 FREELIST GROUP"
"S 1 BUFFER_POOL DEFAULT) TABLESPACE "POST_KF" LOGGING"
IMP-00003: ORACLE error 1659 encountered
ORA-01659: unable to allocate MINEXTENTS beyond 270 in tablespace POST_KF
IMP-00017: following statement failed with ORACLE error 20000:
"BEGIN DBMS_STATS.SET_INDEX_STATS(NULL,'"LOGDATE_INDE3"',NULL,NULL,NULL,455"
"5696,16026,2933713,1,1,3420944,2,6); END;"
IMP-00003: ORACLE error 20000 encountered
ORA-20000: INDEX "POST_CT"."LOGDATE_INDE3" does not exist or insufficient privileges
ORA-06512: at "SYS.DBMS_STATS", line 2124
ORA-06512: at "SYS.DBMS_STATS", line 5473
ORA-06512: at line 1
. . importing table "GTH_SYS_CALLFAIL" 123 rows imported
Warning: the objects were exported by POST_KF, not by you
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. importing POST_KF's objects into POST_CT
. importing POST_KF's objects into POST_CT
. . importing table "Z_HEJI" 252974 rows imported
. . importing table "Z_XXGD" 104619 rows imported
. . importing table "Z_SDDD" 140575 rows imported
. . importing table "Z_BKDD" 1370 rows imported
. . importing table "R_YYGL_ORDER" 101553 rows imported
. . importing table "GTH_AGT_IN" 11326 rows imported
. . importing table "GTH_AGT_OUT" 8542 rows imported
. . importing table "GTH_AJ_DS" 4891132 rows imported
IMP-00017: following statement failed with ORACLE error 1659:
"CREATE INDEX "LOGDATE_INDE3" ON "GTH_AJ_DS" ("SYSTEM_DATE" ) PCTFREE 10 IN"
"ITRANS 2 MAXTRANS 255 STORAGE(INITIAL 4294967294 FREELISTS 1 FREELIST GROUP"
"S 1 BUFFER_POOL DEFAULT) TABLESPACE "POST_KF" LOGGING"
IMP-00003: ORACLE error 1659 encountered
ORA-01659: unable to allocate MINEXTENTS beyond 270 in tablespace POST_KF
IMP-00017: following statement failed with ORACLE error 20000:
"BEGIN DBMS_STATS.SET_INDEX_STATS(NULL,'"LOGDATE_INDE3"',NULL,NULL,NULL,455"
"5696,16026,2933713,1,1,3420944,2,6); END;"
IMP-00003: ORACLE error 20000 encountered
ORA-20000: INDEX "POST_CT"."LOGDATE_INDE3" does not exist or insufficient privileges
ORA-06512: at "SYS.DBMS_STATS", line 2124
ORA-06512: at "SYS.DBMS_STATS", line 5473
ORA-06512: at line 1
. . importing table "GTH_SYS_CALLFAIL" 123 rows imported
通过提示信息发现导入时报告ora-01659报错。
oracle官网解释如下
ORA-01659: unable to allocate MINEXTENTS beyond string in tablespace string
Cause: Failed to find sufficient contiguous space to allocate MINEXTENTS for the segment being created.
Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the tablespace or retry with smaller value for MINEXTENTS, NEXT or PCTINCREASE
Cause: Failed to find sufficient contiguous space to allocate MINEXTENTS for the segment being created.
Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the tablespace or retry with smaller value for MINEXTENTS, NEXT or PCTINCREASE
在exp时,如果不加compress=no,那么那些个建表语句就会将他的initial空间指定为现有所有数据空间之和,这也是为了导入的时候空间连续,减少碎片的。加上那个参数再次导出,ini空间不会那么大。这个时候导入不再报上面的错误信息,问题解决!