expdp和impdp的實踐

來源:互聯網
上載者:User

匯入匯出我們經常用的是exp/imp命令,確實比較方便,但也有局限,例如需要匯入匯出的資料表空間名相同、schema名需要相同。


最近就碰到了這麼個問題,此時expdp和impdp這種資料泵的匯入匯出工具就起了作用。


待匯出表和索引的空間名:

SQL> select distinct tablespace_name from user_tables;
TABLESPACE_NAME
---------------
QXU_IMC_DATA

SQL> select distinct tablespace_name from user_indexes;
TABLESPACE_NAME
---------------
QXU_IMC_DATA
QXU_IMC_INDEX
INIT_IMC_DATA


1、匯出

首先需要建立dumpfile的路徑:

create directory test_dump='C:/dump';

匯出:expdp user/pwd directory=test_dump dumpfile=qxuimc.dmp schemas=qxuimc logfile=exp_qxuimc.log

在C:/dump下就會找到匯出的dmp檔案和記錄檔。


2、匯入

將dmp檔案放到待匯入的程式庫伺服器上。

同樣,若之前沒有建過dumpfile路徑,此時也需要建。

impdp user/pwd DIRECTORY=test_dump DUMPFILE=qxuimc.dmp REMAP_SCHEMA=qxuimc:*** LOGFILE=imp_test.log REMAP_TABLESPACE=QXU_IMC_DATA:***,QXU_IMC_INDEX:***,INIT_IMC_DATA:***

此處使用REMAP_SCHEMA表示將匯出的schema映射為新的名稱。REMAP_TABLESPACE表示將匯出的tablespace映射為新的名稱。


說明:

1、dumpfile可以使用select * from dba_directories;查看。

2、匯入之前需要刪除所有和匯入對象相同的對象,例如function、package、table、index、sequence、role等,否則匯入時會忽略這部分內容的匯入,將錯誤記錄到日誌中。

3、impdp和expdp的參數還有很多,這裡只用了最常用的,網上也有很多資料。

4、關於匯入匯出的版本問題,之前寫的一篇文章介紹過:

http://blog.csdn.net/bisal/article/details/17350155

Export client compatibility:Always use a version of the EXPORT utility that is equal to the lowest version of either the source or the target database.匯出用戶端相容性:建議使用和來源資料庫或目標資料庫中最低版本一致的EXPORT工具版本。
Import client compatibility:
Always use a version of the IMPORT utility that is equal to the version of the target database.匯入用戶端相容性:建議使用和目標資料庫版本一致的IMPORT工具版本。

我這裡匯出的版本是10g,匯入的是11g。expdp使用的是10g的,impdp使用的是11g,符合上面的標準。

對於和這種情況相反的情境,expdp支援version參數指定目標資料庫的版本。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.