ORACLE 錯誤 1659,資料庫匯入dmp臨時表空間記憶體不夠
今兒在自己電腦上搭建開發環境,在給資料庫匯入表結構以及資料時出現“IMP-00017: 由於 ORACLE 錯誤 1659, 以下語句失敗:”錯誤。查看錶空間是夠用的。下面是解決方法(原文連結:http://songworld.diandian.com/post/2012-08-11/40033736039)
今兒在自己電腦上搭建開發環境,在給資料庫匯入表結構以及資料時報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+,我設的臨時表空間只有400M,
一鼓作氣,修改大小為65536,刪掉REM,COPY到PL/SQL DEV裡面,F8,OK……只可惜木有註釋了。
使用上面的“方法1”,解決了遇到的問題。沒有嘗試“方法2”。