1. 程式人生 > >關於 IMPDP 匯入問題 ,關於ora-39125 錯誤 “物件已存在” 的解決

關於 IMPDP 匯入問題 ,關於ora-39125 錯誤 “物件已存在” 的解決

用資料泵匯入資料庫效率很高,但是需要了解一點點東西

下面用個例子來說明

impdp tbzh_xxx/tbzh_xxx  DIRECTORY=DUMP  logfile=import.log DUMPFILE=tbzh_data-bak.dmp REMAP_SCHEMA=tbzh_data:tbzh_xxx REMAP_TABLESPACE=hrdb:tbzh

解釋:

tbzh_xxx/tbzh_xxx 資料庫的使用者名稱和密碼

DIRECTORY=DUMP  dmp檔案所在的路徑


      關於這個DIRECTORY 的解釋:這是impdp的一個引數,用於指明被匯入的dmp檔案所在的路徑。

      關於DUMP的解釋:這個DUMP其實指代的就是具體的路徑。不過由於impdp的設計者比較糾結,這個DUMP並不能直接寫檔案路徑,而是得先建立一個物件,定義具體的路徑,再把這個物件寫上去。

      忽略以上的文字,那麼DUMP應該怎麼建立呢?如果有PL/SQL,就很簡單,直接在左側的樹狀選單中點選Directories,點選右鍵,選擇“新建”,然後在名稱中輸入“DUMP”,路徑輸入dmp檔案所在的資料夾就可以了。這裡大家應該發現DUMP其實就是一個名字而已,你可以自己給它命名,叫COOL還是叫灰太狼都沒有關係,重要的它對應的路徑一定要正確。

      如果沒有PL/SQL,那就用命令建立吧:

      輸入命令create directory (自己隨便起個名字,我們這裡的名字是DUMP) as '具體路徑'

logfile=import.log  log檔案 不解釋

DUMPFILE=tbzh_data-bak.dmp  dmp檔案

REMAP_SCHEMA=tbzh_data:tbzh_xxx  從哪個使用者匯出的,要匯入到哪個使用者中去  (很噁心的東西,這個居然也要指明一下,易用性太爛!)

REMAP_TABLESPACE=hrdb:tbzh  從哪個表空間匯出的,要匯入到哪個表空間中去 (同上)

這是經過實驗,能成功匯入的語句。

感謝網上很多朋友寫的技術貼,給我很大幫助。

也鄙視網上很多“技術貼”:自己沒有試過好不好用就亂轉亂複製,你明白了嗎?你讓別人能明白嗎?……虛妄啊虛妄

-----------------------給力的昏割線---------------------------------

增加:關於從dmp檔案中匯入指定表的語法

在末尾加入 tbales=c_1,c_2 ……

其中c_1和c_2都是表名

通過這個命令,可以直接從dmp檔案中抽取出我們需要的表匯出