oracle用cmd命令導入導出dmp


使用exp和expdp導出數據

1.exp導出數據命令

exp gd_base/11@192.168.13.211/oanet file=D:\export\gd_base.dmp log=D:\export\gd_base.log full=y

2.expdp導出數據

(1)cmd窗口連接數據庫,進入sqlplus頁面

sqlplus sys/sys@192.168.13.211/oanet as sysdba

(2)創建目錄對象(使用管理員賬號登錄創建)

SQL> create or replace directory dump_dir as 'D:\fzb';

創建好后,退出sqlplus

(3)在操作系統上創建相應的目錄,如在D盤目錄下建立文件夾fzb

(4)連接數據庫執行導出命令

 

復制代碼
把base庫和dbwizard庫全部導入

expdp system/123123@192.168.13.211/oanet directory=dump_dir dumpfile=XX.dmp schemas=gd_base,gd_dbwizard;

把該實例下所有數據庫導出

expdp system/123123@192.168.13.211/oanet directory=dump_dir dumpfile=XX.dmp Full=y;
復制代碼

導出實例:
exp user/password@sid(實例) owner=user file=D:\user.dmp feedback=10000 buffer=10240000
具體:
owner指的是表的所有者(指明下載的用戶名)
freeback=10000代表顯示處理記錄條數,缺省為0,即不顯示
buffer=10240000定義了每一次讀取導入/導出文件的數據量,設的越大,就越減少imp/exp進程讀取數據的次數,從而提高了
導入/導出效率。(設置緩存區域的大小,當數據滿的時候,bind array(結束數組),執行inset(插入).提交)

indexes=n 是否下載索引,缺省為n,只是指索引的定義而非數據,exp不下載索引數據

下附圖一張:

 

 

導入實例:
Imp user/password@sid(實例)  file=D:\user.dmp fromuser=user touser=user rows=y commit=y feedback=10000 buffer=10240000
具體:
fromuser=user 指明來源用戶(就是當前的dmp文件來自user用戶下的數據)
touser=user  指明目的用戶(就是把現在dmp文件中的數據導入到目標庫user用戶下的庫)
rows=y  是否上傳表記錄(確定導入的數據行)
commit=y 上傳數據緩存區中記錄上載后立即執行提交(表示每個數據緩沖滿了之后提交一次,而不是導完一張表提交一次。這樣會大大減少對系統回滾段等資源的消耗,對順利完成導入是有益的)
freeback=10000  顯示處理記錄條數,缺省為0,即不顯示
buffer=10240000  上載數據緩存區,以字節為單位,缺省依賴操作系統

indexes=n 指如果上傳時索引已建立,此舉項即使為n也無效,imp自動更新索引數據

下附圖一張:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM