Oracle導入導出

例如:imp命令導入數據:
imp username/password@SID file=XXX.dmp fromuser=XXX touser=XXX tables=(XXX,XXX)
其中,fromuser指對方數據庫用戶名,touser指你的數據庫的用戶名;sql

fromuser若爲多個表空間的話,使用()將其括起來:fromuser=(a,b);
touser參數仿fromuser參數;
若只導入一部分表,使用tables參數,用()括起要導入的表;若是想所有導入,不須要指定tables參數

下面介紹的是導入導出的實例。
數據導出:
1 將數據庫TEST徹底導出,用戶名system 密碼manager 導出到D:\daochu.dmp中
   exp system/manager@TEST file=d:\daochu.dmp full=y數據庫

2 將數據庫中system用戶與sys用戶的表導出
   exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys).net

3 將數據庫中的表inner_notify、notify_staff_relat導出
    exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=ip

(inner_notify,notify_staff_relat)get


上面是經常使用的導出,對於壓縮,既用winzip把dmp文件能夠很好的壓縮。
也能夠在上面命令後面 加上 compress=y 來實現。
數據的導入
1 將D:\daochu.dmp 中的數據導入 TEST數據庫中。
   imp system/manager@TEST file=d:\daochu.dmp
   imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp  ignore=y
   上面可能有點問題,由於有的表已經存在,而後它就報錯,對該表就不進行導cmd

入。
   在後面加上 ignore=y 就能夠了。table

2 將d:\daochu.dmp中的表table1 導入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)

基本上上面的導入導出夠用了。很多狀況要先是將表完全刪除,而後導入。

注意:
操做者要有足夠的權限,權限不夠它會提示。
數據庫時能夠連上的。能夠用tnsping TEST 來得到數據庫TEST可否連上。class

附錄一:
給用戶增長導入數據權限的操做
第一,啓動sql*puls
第二,以system/manager登錄
第三,create user 用戶名 IDENTIFIED BY 密碼 (若是已經建立過用戶,這步能夠省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
   DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
      DBA,CONNECT,RESOURCE,CREATE SESSION TO 用戶名字

第五, 運行-cmd-進入dmp文件所在的目錄,
      imp userid=system/manager full=y file=*.dmp
      或者 imp userid=system/manager full=y file=filename.dmpfile

執行示例:
C:\Users\Administrator>imp userid=sys/password full=y file=E:\filename.dmp
權限