EXP IMP 導入導出

1,導入導出用戶下所有對象及數據

exp fanmeng/[email protected]/orcl file=c:\fanmeng.dmp

imp fanmeng/[email protected]/orcl file=c:\fanmeng.dmp

2,注意事項

①手工建庫需要運行catalog.sql才能使用exp,imp

②整庫導入導出權限,EXP_FULL_DATABASE,IMP_FULL_DATABASE兩個角色授予DBA角色

③執行某些操作,如傳輸表空間,可能需要以sysdba身份運行,得這樣:

exp \'sys/abc123@orcl as sysdba\'

④低版本導出,目標版本導入

⑤oracle_loader外部表只導出結構,不會導出數據;ORACLE_DATAPUMP外部表啥都不會導出,會導致導出失敗,文件瘋長,這應該是oracle的一個bug

⑥如果存在帶導入的表,默認(ignore=n)將會忽略導入數據繼續操作;也可以指定ignore=y無論表是否存在都導入。


3,參數文件parfile

參數文件中可以記錄很多參數,一行一個參數

即使參數文件中指定了的參數,也可以在命令行中再次指定

原則上以最後讀取到的參數爲準

關鍵字 說明 (默認值) 關鍵字 說明 (默認值)

-----------------------------------------------------------------

USERID 用戶名/口令             FULL 導出整個文件 (N)

BUFFER 數據緩衝區大小         OWNER 所有者用戶名列表

FILE 輸出文件 (EXPDAT.DMP)   TABLES 表名列表

COMPRESS 導入到一個區 (Y)  RECORDLENGTH IO 記錄的長度

GRANTS 導出權限 (Y)   INCTYPE 增量導出類型

INDEXES 導出索引 (Y)   RECORD 跟蹤增量導出 (Y)

DIRECT 直接路徑 (N)   TRIGGERS 導出觸發器 (Y)

LOG 屏幕輸出的日誌文件      STATISTICS 分析對象 (ESTIMATE)

ROWS 導出數據行 (Y)   PARFILE 參數文件名

CONSISTENT 交叉表的一致性 (N)     CONSTRAINTS 導出的約束條件 (Y)

4,處理模式

①整庫導入導出,需要EXP_FULL_DATABASE,IMP_FULL_DATABASE角色權限或特權用戶,參數FULL

②表空間,參數tablespace

③用戶模式,可以導入導出用戶自有對象,可以同時導出多個用戶

④表模式,參數tables


5,QUERY條件導出,指定多個表時,必須確保所有表都滿足query條件

exp fanmeng/fanmeng@orcl tables=(test) query="'where id>100'" file=test.dmp log=log.log

在linux、unix平臺需要將通配符“  換成 \

6,導出幾個用戶的架構數據

exp system/[email protected]/ORCL owner=(test,fanmeng) file=test.dmp;

然後可以通過有dba角色權限的用戶將數據一次性導入指定的多個用戶test,fanmeng

imp  system/abc123 @192.168.12.212/ORCL full=y file=test.dmp;

7,全庫導出,只是邏輯上的全庫,至導出了與用戶數據相關的對象

exp system/abc123 full=y file=abc.dmp;


8,是否需要導出索引,約束,觸發器,授權信息(grant)

exp system/abc123 full=y file=abc.dmp grants=n indexes=n constraints=n triggers=n;

9,限制導出文件大小,指定多個文件  filesize(默認單位字節)

exp system/abc123 full=y filesize=500m file=(1.dmp,2.dmp,3.dmp,4.dmp);

注意:①如果指定的文件多於實際生成的文件,多出的文件不會被生成

          ②如果指定文件少於實際生成的文件,則會提示輸入新文件名

          ③查詢用戶所屬對象實際佔用空間

select sum(bytes)/1024/1024 M from user_segments

或查詢多個用戶

select owner,sum(bytes)/1024/1024/1024 G from dba_Segments where owner in... group by owner

10,將a用戶數據導入到b用戶

exp fanmeng/[email protected]/orcl tables=(test) file=fanmeng.dmp

imp fanmeng/[email protected]/orcl fromuser=fanmeng touser=test file=fanmeng.dmp

如果test用戶對其默認表空間有unlimited權限的話,導入的表將會在源表空間中,而非test的默認表空間,所以需要考慮這個問題,側小test對其默認表空間的unlimited權限

alter user test quota 20m on user2;

導入完畢後再修改過來:

alter user test quota unlimited on user2

11,如果源文件中都含有LOB,分區表,分區索引等類型的對象,必須首先在目標數據庫中創建這些對象,然後再執行導入。

12,只導入結構,不導入數據 rows=n

imp fanmeng/[email protected]/orcl file=c:\fanmeng.dmp rows=n



我的博客:www.fanmeng.net.cn

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章