1. 程式人生 > >使用cmd導出oracle數據庫dmp文件

使用cmd導出oracle數據庫dmp文件

alt 設置 inset 滿了 ane 數據緩沖 dir 操作 cmd

使用exp和expdp導出數據

1.exp導出數據命令

exp gd_base/[email protected]/oanet file=D:\export\gd_base.dmp log=D:\export\gd_base.log full=y

技術分享圖片

2.expdp導出數據

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

sqlplus sys/[email protected]/oanet as sysdba

技術分享圖片

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

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

技術分享圖片

創建好後,退出sqlplus

技術分享圖片

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

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

技術分享圖片 技術分享圖片
把base庫和dbwizard庫全部導入

expdp system/[email protected]/oanet directory=dump_dir dumpfile=XX.dmp schemas=gd_base,gd_dbwizard;

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

expdp system/[email protected]/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自動更新索引數據

下附圖一張:

技術分享圖片

使用cmd導出oracle數據庫dmp文件