1. 程式人生 > >ORACLE 錯誤 1659,資料庫匯入dmp臨時表空間記憶體不夠

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”。