Oracle資料匯入匯出imp/exp就相當於邏輯(資料的)備份與恢複,支援用戶端與伺服器操作。
exp命令可以把資料從遠端資料庫伺服器匯出到本地的dmp檔案,
imp命令可以把dmp檔案從本地匯入到遠處的資料庫伺服器中。
執行環境:在用戶端與服務端的shell狀態下DOS(命令列)中執行
*********************資料匯出 exp ****************************
1、全庫方式,匯出整個資料庫中所有的對象,但並不包括sys使用者中的對象,即資料字典無法匯出。
exp user/pwd@db_name full=y file=D:\database.dmp log=D:\database.log
2、使用者方式:匯出某一使用者下所有的對象,授權了許可權的使用者可以匯出其他使用者所擁有的對象。作為全庫匯出的補充應用
exp user/pwd@db_name owner=(system,sys) file=D:\owner.dmp log=D:\owner.log
3、表方式:只匯出某一使用者下指定的表,而不是所有的表。
exp user/pwd@db_name tables=(tb1,tb2) file= D:\table.dmp log=e:\table.log
4、補充:將資料庫中的表table1中的欄位filed1以"00"打頭的資料匯出
exp user/pwd@db_name tables=(table1) query=" where filed1 like '00%'" file=D:\query.dmp log=d:\query.log
***上面是常用的匯出 **更多參數exp help=y 查看
===================================================================================
*********************資料的匯入 imp ****************************
1、全部匯入
imp user/pwd@db_name full=y file=D:\database.dmp log=d:\impdatabase.log ignore=y
2、選擇表匯入 將D:\table.dmp中的表table1 匯入
imp user/pwd@db_name file=D:\table.dmp log=d:\imptable.log tables=(table1)
如果源表已經存在,匯入時報錯。在後面加上 ignore=y 就可以了。
不少情況要先是將表徹底刪除,然後匯入。或建立和原表一樣結構的暫存資料表然後匯入到暫存資料表中。
備忘:語句執行中可能碰上的問題:
***EXP-00091 正在匯出有問題的統計資訊
原因:字元集問題
解決:exp命令加statistics=none選項
expdp的impdp (資料泵)是Oracle10G新引入的工具.它不但包括了imp/exp的功能,還進行了擴充與加強。其速度也快。但只能在資料庫服務端運行。使用樣本如下:http://www.oracle-base.com/articles/10g/OracleDataPump10g.php