2014-05-14 34 views

回答

16

這取決於哪個版本的Oracle?舊版本需要exp(導出),較新版本使用expdp(數據泵); exp被棄用,但大部分時間仍然有效。

開始之前,請注意數據泵導出到服務器端Oracle「目錄」,該目錄是Oracle數據庫中映射到物理位置的符號位置。有可能是一個默認目錄(DATA_PUMP_DIR),檢查通過查詢DBA_DIRECTORIES:

SQL> select * from dba_directories; 

...如果沒有,創建一個

SQL> create directory DATA_PUMP_DIR as '/oracle/dumps'; 
    SQL> grant all on directory DATA_PUMP_DIR to myuser; -- DBAs dont need this grant 

假設你可以連接爲系統用戶或其他DBA ,您可以導出任何模式像這樣,在默認目錄:

$ expdp system/manager schemas=user1 dumpfile=user1.dpdmp 

或指定一個特定的目錄,添加directory=<directory name>

C:\> expdp system/manager schemas=user1 dumpfile=user1.dpdmp directory=DUMPDIR 

年紀較大的出口程序,您可以導出到工作目錄,甚至客戶機遠離服務器,使用上:

$ exp system/manager owner=user1 file=user1.dmp 

確保出口在正確完成字符集。如果您尚未設置您的環境,Oracle客戶端字符集可能與數據庫字符集不匹配,Oracle將執行字符集轉換,這可能不是您想要的。你會看到一個警告,如果是的話,那麼你需要在設置NLS_LANG環境變量後重復導出,以便客戶端字符集匹配數據庫字符集。這將導致Oracle跳過字符集轉換。

舉例美國UTF8(UNIX):

$ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 

Windows使用SET,例如採用日本UTF8:

C:\> set NLS_LANG=Japanese_Japan.AL32UTF8 

的數據泵在此處瞭解詳情:http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#g1022624

+0

Oracle版本是11.2 .0.2 –

+0

然後使用expdp,除非你不能訪問物理數據庫服務器,那麼你需要使用exp。 – codenheim

+0

我無法更改Oracle服務器或Linux服務器,因爲它是生產機器。然後我認爲這樣更好!!! –

相關問題