閱讀1026 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Oracle數據庫imp命令導入時1659錯誤處理

今兒在自己電腦上搭建開發環境,在給數據庫導入表結構以及數據時報1659錯誤,錯誤內容如下:

IMP-00017: 由於 ORACLE 錯誤 1659, 以下語句失敗:        
"CREATE TABLE "T_DATA_KKCL"
…………
IMP-00003: 遇到 ORACLE 錯誤 1659ORA-01659: 無法分配超出 6 的 MINEXTENTS (在表空間 HWITS_1中)

第一反應——空間不足?查看發現C盤隻有614KB,尼瑪!PS:Oracle安裝在虛擬機中

百度……Google……

發現是因為從公司導出的dmp文件中初始化分配表空間的值過大造成

解決方法:

1、在導出表結構的時候exp命令加上compress=n,在exp時有個參數COMPRESS主要用於是否將segment的extent在導出時是否合並,在公司導出時沒有加這個參數,導致默認合並,也就是說導出時Oracle將表結構的extent合並到一個extent中。

可惜現在不在公司,沒法重新導出,隻能使用第二種辦法。

2、使用imp中的indexfile=xxx.sql參數,將導入語句生成sql,打開後豁然開朗

REM  CREATE TABLE "HWITS"."T_DATA_KKCL" ("CLXXBH" VARCHAR2(18) NOT NULL

REM  ENABLE, "SJLY" VARCHAR2(2), "SJLX" VARCHAR2(1) NOT NULL ENABLE,

REM  "KKBH" VARCHAR2(12) NOT NULL ENABLE, "KKMC" VARCHAR2(50), "CJJG"

REM  VARCHAR2(10) NOT NULL ENABLE, "SBBH" VARCHAR2(16) NOT NULL ENABLE,

REM  "FXBH" VARCHAR2(2) NOT NULL ENABLE, "CDBH" VARCHAR2(2) NOT NULL

REM  ENABLE, "HPHM" VARCHAR2(15) NOT NULL ENABLE, "HPZL" VARCHAR2(2),

REM  "CSYS" VARCHAR2(2), "JGSK" DATE NOT NULL ENABLE, "CLSD" NUMBER(3, 0),

REM  "SJCJ" VARCHAR2(1) NOT NULL ENABLE, "CLZT" VARCHAR2(1), "ZJLX"

REM  VARCHAR2(1), "TXSL" NUMBER(1, 0) NOT NULL ENABLE, "TXLJ1"

REM  VARCHAR2(255) NOT NULL ENABLE, "TXLJ2" VARCHAR2(255), "TXLJ3"

REM  VARCHAR2(255), "YLXX" VARCHAR2(50) NOT NULL ENABLE, "BYZD1"

REM  VARCHAR2(10), "BYZD2" VARCHAR2(10), "BYZD3" VARCHAR2(10), "SFCQ"

REM  VARCHAR2(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 TABLESPACE

REM  "HWITS" LOGGING PARTITION BY LIST ("YLXX" ) (PARTITION "P1" VALUES

REM  ('01') PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL

REM  1031798784 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

REM  TABLESPACE "HWITS_1" LOGGING NOCOMPRESS, PARTITION "P2" VALUES ('02')

REM  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL

REM  922746880 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

REM  TABLESPACE "HWITS_2" LOGGING NOCOMPRESS, PARTITION "P3" VALUES ('03')

REM  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL

REM  981467136 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

REM  TABLESPACE "HWITS_3" LOGGING NOCOMPRESS, PARTITION "P4" VALUES ('04')

…………


注意加黑部分,初始化的空間基本都在800M+,我虛擬機的C盤就剩3G了,這不是坑爹麼……

一鼓作氣,修改大小為65536,刪掉REM,COPY到PL/SQL DEV裏麵,F8,OK……隻可惜木有注釋了。

附上兩篇相關文章

1、Oracle exp compress參數引起的空間浪費
2、Oracle 表空間

最後更新:2017-04-03 14:53:50

  上一篇:go MySQL SQL 分析 - 參數化查詢 vs query cache 功能
  下一篇:go 網絡子係統71_路由緩存垃圾回收