使用cmd導出oracle數據庫dmp文件
使用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文件