从生产数据库中导出的dmp文件是30多G,版本是10.2。
现在要导入到测试数据库中,版本也是10.2,用的是imp进行导入
imp xxxx/xxxx file=xxxx log=xxx full=y 这是我导入用的命令
第一次导入时好像是因为表空间不足...不过他应该会自动增长的吧...失败原因不清楚
第二次在移动硬盘上创建了一个40G的bigfile表空间,表空间满了后又失败了
下面是第二次失败时的log

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SZERP 的对象导入到 SZERP
. . 正在导入表                      "CHECK_DA"导入了     3405666 行
. . 正在导入表                    "CHECK_DAXX"导入了    12459758 行
. . 正在导入表                 "CHECK_DA_LSJL"导入了    14493889 行
. . 正在导入表                       "CTRL_CD"导入了          64 行
. . 正在导入表                    "CTRL_CDBAK"导入了         130 行
. . 正在导入表                  "CTRL_CD_TEST"导入了          15 行
. . 正在导入表                       "CTRL_DA"导入了     3401870 行
. . 正在导入表                   "CTRL_DAV_MA"导入了     3401870 行
. . 正在导入表                     "CTRL_DAXX"导入了    12394976 行
. . 正在导入表                   "CTRL_DA_DEL"导入了          12 行
. . 正在导入表                  "CTRL_DA_LSJL"导入了    63881226 行
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
 "CREATE INDEX "IDX_CTRL_DA_LSJL_SLDH" ON "CTRL_DA_LSJL" ("SLDH" )  PCTFREE 1"
 "0 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 2385510400 FREELISTS 1 FREELIST G"
 "ROUPS 1 BUFFER_POOL DEFAULT)                   LOGGING"
IMP-00003: 遇到 ORACLE 错误 1659
ORA-01659: 无法分配超出 29 的 MINEXTENTS (在表空间 SZERP 中)
IMP-00017: 由于 ORACLE 错误 20000, 以下语句失败:
 "BEGIN  DBMS_STATS.SET_INDEX_STATS(NULL,'"IDX_CTRL_DA_LSJL_SLDH"',NULL,NULL,"
 "NULL,59211264,261099,3232908,1,18,59105536,3,6); END;"
IMP-00003: 遇到 ORACLE 错误 20000
ORA-20000: INDEX "SZERP"."IDX_CTRL_DA_LSJL_SLDH" does not exist or insufficient privileges
ORA-06512: 在 "SYS.DBMS_STATS", line 2121
ORA-06512: 在 "SYS.DBMS_STATS", line 5393
ORA-06512: 在 line 1
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
 "CREATE INDEX "IDX_CTRL_DA_LSJL_CZRY" ON "CTRL_DA_LSJL" ("CZRY" )  PCTFREE 1"
 "0 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 2489319424 FREELISTS 1 FREELIST G"
 "ROUPS 1 BUFFER_POOL DEFAULT)                   LOGGING"
IMP-00003: 遇到 ORACLE 错误 1659
ORA-01659: 无法分配超出 29 的 MINEXTENTS (在表空间 SZERP 中)
IMP-00017: 由于 ORACLE 错误 20000, 以下语句失败:
 "BEGIN  DBMS_STATS.SET_INDEX_STATS(NULL,'"IDX_CTRL_DA_LSJL_CZRY"',NULL,NULL,"
 "NULL,59303199,279161,90,3101,46135,4152205,3,6); END;"
IMP-00003: 遇到 ORACLE 错误 20000
ORA-20000: INDEX "SZERP"."IDX_CTRL_DA_LSJL_CZRY" does not exist or insufficient privileges
ORA-06512: 在 "SYS.DBMS_STATS", line 2121
ORA-06512: 在 "SYS.DBMS_STATS", line 5393
ORA-06512: 在 line 1
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
 "CREATE INDEX "IDX_CTRL_DA_LSJL_MLH" ON "CTRL_DA_LSJL" ("MLH" )  PCTFREE 10 "
 "INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 2680160256 FREELISTS 1 FREELIST GRO"
 "UPS 1 BUFFER_POOL DEFAULT)                   LOGGING"
IMP-00003: 遇到 ORACLE 错误 1659
ORA-01659: 无法分配超出 29 的 MINEXTENTS (在表空间 SZERP 中)
IMP-00017: 由于 ORACLE 错误 20000, 以下语句失败:
 "BEGIN  DBMS_STATS.SET_INDEX_STATS(NULL,'"IDX_CTRL_DA_LSJL_MLH"',NULL,NULL,N"
 "ULL,55084473,304811,31717,9,144,4586362,3,6); END;"
IMP-00003: 遇到 ORACLE 错误 20000
ORA-20000: INDEX "SZERP"."IDX_CTRL_DA_LSJL_MLH" does not exist or insufficient privileges
ORA-06512: 在 "SYS.DBMS_STATS", line 2121
ORA-06512: 在 "SYS.DBMS_STATS", line 5393
ORA-06512: 在 line 1
. . 正在导入表              "CTRL_DA_TEST0608"导入了     1948339 行
. . 正在导入表                     "CTRL_GZTJ"导入了          10 行
. . 正在导入表                     "CTRL_SMXX"导入了     3386040 行
IMP-00017: 由于 ORACLE 错误 1658, 以下语句失败:
 "CREATE TABLE "CTRL_YXZL" ("IMAGE_ID" VARCHAR2(23) NOT NULL ENABLE, "SLDH" V"
 "ARCHAR2(12) NOT NULL ENABLE, "ZYS" NUMBER(4, 0), "YH" NUMBER(4, 0), "SM" CH"
 "AR(1), "FNXH" NUMBER(1, 0), "TMH" VARCHAR2(18) NOT NULL ENABLE, "IMG_LENGTH"
 "" NUMBER(8, 0), "IMG_STATUS" VARCHAR2(100), "IMG_PATH" VARCHAR2(128), "IMG_"
 "FILE_NAME" VARCHAR2(32), "ZJ_CZRY_DM" CHAR(11), "SM_CZRY_DM" CHAR(11), "ZJ_"
 "DM" VARCHAR2(2), "WJLM" CHAR(5))  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS"
 " 255 STORAGE(INITIAL 2819620864 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL D"
 "EFAULT)                   LOGGING NOCOMPRESS"
IMP-00003: 遇到 ORACLE 错误 1658
ORA-01658: 无法为表空间 SZERP 中的段创建 INITIAL 区
. . 正在导入表                       "DJ_SPXX"导入了          94 行
. . 正在导入表                     "DMYX_CZRY"导入了         434 行
. . 正在导入表                        "DM_DFL"导入了           8 行
. . 正在导入表                         "DM_DW"导入了           9 行
. . 正在导入表                       "DM_GDFL"导入了          18 行
. . 正在导入表                         "DM_QJ"导入了          31 行
. . 正在导入表                         "DM_QX"导入了           1 行
. . 正在导入表                     "DM_QX_YHZ"导入了          38 行
. . 正在导入表                  "DM_QX_YHZ_CD"导入了         512 行
. . 正在导入表             "DM_QX_YHZ_CD_TEST"导入了          27 行
. . 正在导入表                        "DM_SFL"导入了           0 行
. . 正在导入表                        "DM_XFL"导入了         345 行
. . 正在导入表                        "DM_ZRZ"导入了           0 行
. . 正在导入表                       "DM_ZTBZ"导入了          18 行
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
 "CREATE TABLE "ERP_SJ" ("SLDH" VARCHAR2(12) NOT NULL ENABLE, "SLRQ" DATE, "H"
 "TZH" VARCHAR2(12), "YHZZ" VARCHAR2(200), "ZJLX" VARCHAR2(6), "SFZH" VARCHAR"
 "2(60), "YHBH" VARCHAR2(200), "FLH" CHAR(2), "WJS" NUMBER(4, 0), "ZYS" NUMBE"
 "R(4, 0) NOT NULL ENABLE, "YJDW" CHAR(8), "ZTDM" CHAR(1), "WCRQ" DATE, "YJQJ"
 "" CHAR(8), "SLZT" CHAR(8), "YJRQ" DATE, "AZD" VARCHAR2(200), "USERNAME" VAR"
 "CHAR2(80), "USERNAMEID" VARCHAR2(24), "NEWHTZH" VARCHAR2(12), "SLDW" CHAR(8"
 "), "SLQJ" CHAR(8), "LRRY" CHAR(11), "LRRQ" DATE)  PCTFREE 10 PCTUSED 40 INI"
 "TRANS 1 MAXTRANS 255 STORAGE(INITIAL 662700032 FREELISTS 1 FREELIST GROUPS "
 "1 BUFFER_POOL DEFAULT)                   LOGGING NOCOMPRESS"
IMP-00003: 遇到 ORACLE 错误 1659
ORA-01659: 无法分配超出 1 的 MINEXTENTS (在表空间 SZERP 中)
. . 正在导入表                    "FTPMESSAGE"导入了           1 行
. . 正在导入表                 "MLOG$_CTRL_DA"导入了          21 行
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
 "CREATE TABLE "TEMP_MONITY" ("CZSJ_Q" VARCHAR2(100), "UPDATE_UID" VARCHAR2(1"
 "00), "SQL_TEXT" VARCHAR2(1000))  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS "
 "255 STORAGE(INITIAL 8388608 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAU"
 "LT)                   LOGGING NOCOMPRESS"
IMP-00003: 遇到 ORACLE 错误 1659
ORA-01659: 无法分配超出 2 的 MINEXTENTS (在表空间 SZERP 中)
. . 正在导入表                       "XT_XTCS"导入了          10 行
IMP-00041: 警告: 创建的对象带有编译警告
 "CREATE FORCE VIEW "SZERP"."CHECK_DAM"                           ("SLDH","WC"
 "RQ","YJDW","YJQJ","CZRQ") AS "
 "SELECT A.SLDH,A.WCRQ,A.YJDW,A.YJQJ,B.CZRQ FROM ERP_SJ A,CHECK_DA B "
 "WHERE A.SLDH = B.SLDH AND A.WCRQ > TO_DATE('2010-01-21','YYYY-MM-DD') AND A"
 ".ZTDM IN('4','Y')"
IMP-00041: 警告: 创建的对象带有编译警告
 "CREATE TRIGGER "SZERP".TRI_CTRL_DA_DEL"
 "  before DELETE ON CTRL_DA"
 "    for each row"
 ""
 "declare"
 "  CURR_DATE       VARCHAR2(8)  := NULL;"
 "  CURR_DM         VARCHAR2(8)  := NULL;"
 "  CURR_ID         VARCHAR2(16)  := NULL;"
 "BEGIN"
 "select TO_CHAR(sysdate,'yyyymmdd') into CURR_DATE from dual ;"
 "select TO_CHAR(ls_seq.nextval) into CURR_DM from dual ;"
 "CURR_ID:=CURR_DATE || CURR_DM;"
 "update CHECK_DA T SET T.ZTDM = '06',T.CZRQ=SYSDATE,T.CZRY=:old.CZRY WHERE T"
 ".SLDH = :old.SLDH;"
 "update ERP_SJ T set T.ZTDM ='6' WHERE T.SLDH = :old.SLDH;"
 "-- delete from CTRL_DA_LSJL T WHERE T.SLDH = :old.SLDH and t.ztdm <> '00';"
 "delete from CTRL_SMXX T WHERE T.SLDH = :old.SLDH;"
 "delete from CTRL_YXZL T WHERE T.SLDH = :old.SLDH;"
 "delete from CTRL_DAXX T WHERE T.SLDH = :old.SLDH;"
 "END;"
成功终止导入, 但出现警告。
现在正打算创建一个100G的bigfile表空间,也不知道是不是表空间的问题,在导入大文件时有什么需要注意的吗?

解决方案 »

  1.   

    30G的DMP不算大,建议刚开始如果自己评估不好,就设置为自动扩展吧,现在错误为
    IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
     "CREATE INDEX "IDX_CTRL_DA_LSJL_SLDH" ON "CTRL_DA_LSJL" ("SLDH" ) PCTFREE 1"
     "0 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 2385510400 FREELISTS 1 FREELIST G"
     "ROUPS 1 BUFFER_POOL DEFAULT) LOGGING"
    IMP-00003: 遇到 ORACLE 错误 1659
    ORA-01659: 无法分配超出 29 的 MINEXTENTS (在表空间 SZERP 中)
      

  2.   

    如果exp是压缩的话,imp后的空间可能会增长很大
      

  3.   

    不能从exp出来的文件大小来判断imp进去以后的数据量大小
    我导过一个10多GB的dmp文件,导入后的数据量有50GB+