2016-02-16 40 views
1

我試圖將我的Oracle備份版本11.2.0.1還原到另一個服務器版本11.2.0.4。ORA-39171 ORA-01659 impdp

當我運行impdp時,會顯示ORA-39171和ORA-01659錯誤。

impdp hosp/xxxx file=HOSP3001.DMP logfile=loghosp3001.dmp version=latest schemas=HOSP

在.dmp文件我有以下表空間和數據文件:

DATAFILE           | TABLESPACE 

/u01/app/oracle/product/11.2.0/db_1/dbs/HOSP  | HOSP 
/u01/app/oracle/product/11.2.0/db_1/dbs/HOSPDATA | HOSPDATA 
/u01/app/oracle/product/11.2.0/db_1/dbs/HOSPDATA2 | HOSPDATA 
/u01/app/oracle/product/11.2.0/db_1/dbs/HOSPDATA3 | HOSPDATA 

我已經在新服務器的follwing TABLESPACES和數據文件創建。

CREATE TABLESPACE HOSP DATAFILE 'HOSP' SIZE 1024M ; 
ALTER DATABASE DATAFILE 'HOSP' RESIZE 1024M ; 
ALTER DATABASE DATAFILE 'HOSP' AUTOEXTEND ON MAXSIZE UNLIMITED ; 

CREATE TABLESPACE HOSPDATA DATAFILE 'HOSPDATA' SIZE 1024M ; 
ALTER DATABASE DATAFILE 'HOSPDATA' RESIZE 1024M ; 
ALTER DATABASE DATAFILE 'HOSPDATA' AUTOEXTEND ON MAXSIZE UNLIMITED ; 

在這個新的場景中,我打算爲表格「HOSPDATA」保留一個DATAFILE。

+0

哪個表空間是ORA-01659引用的?將運行命令的整個錯誤堆棧作爲問題的一部分包含在內是很有幫助的。 –

+0

我不知道哪一個表空間,在我提到的.dmp文件中有兩個。我知道當impdp創建索引時出現錯誤。控制檯不指定正在編譯哪個索引。 – WellingtonD

+0

ORA-01659應該告訴你哪個表空間不能分配minextents。我不確定你爲什麼不在問題中包含控制檯輸出,以便我們可以看到你正在得到的錯誤。 –

回答

1

檢查您的alert.log,很可能您會在那裏找到答案。看起來您在表空間中沒有可用空間。

+0

我不這麼認爲。導致我的表空間具有無限的最大大小,並且我的硬盤中有很多可用空間。我在哪裏可以找到alert.log? – WellingtonD

+0

「unlimited maxsize」 - 並不意味着你的文件真的是無限的,除非你使用「大文件表空間」。默認情況下,Oracle使用「小文件表空間」,這意味着你的文件可以長到4M的DB_BLOCKS(通常這是16G或32G)。 –

+0

警報日誌文件位於background_dump_dest文件夾中。爲了找到background_dump_dest參數值,請執行以下操作: –

0

ORA- 39171:通常是由不可擴展的表空間導致空間不足導致數據泵作業停止。將數據文件添加到空間不足的表空間通常可以解決問題。

ORA-01659:解釋了ORA-39171的實際原因。在這種特殊情況下,oracle未能找到足夠的連續空間爲正在創建的段分配MINEXTENTS。同樣,解決方案仍將向該表空間添加數據文件。

如果您仍然希望將數據導入到單個數據文件,Oracle提供了一個重新映射工具如下: REMAP_DATAFILE = source_datafile:target_datafile

0

可以使用IMPDP使用選項「變換= SEGMENT_ATTRIBUTES:N