Oracle導入/導出exp/imp
export 導出數據,dmp文件,其實就是select。
import 導入數據,其實就是insert
缺陷:導出的時候需要全表導出,速度慢,不是實時,而且是邏輯備份
1:EXP
exp導出分為一下幾種模式
表模式: 導出某個用戶下指定的表
用戶模式: 導出某個用戶下所有的對象
數據庫模式: 導出除sys以外數據庫裡所有的對象,exp_full_database權限
可傳輸表空間: 導出某個表空間所有對象
exp語句使用幫助:$ exp help=y
1.1:導出某個用戶下指定的表
$ exp doiido/doiido file=doiido.dmp tables=(doiido,boy) log=doiido.log
1.2:導出某個用戶下所有的對象
$ exp doiido/doiido@doiido file=doiido.dmp owner=doiido log=doiido.log
1.3:導出整個數據庫(除了sys用戶下的數據字典)
SQL> grant exp_full_database to doiido;
$ exp doiido/doiido file=doiido.dmp full=y log=doiido.log
1.4:導出表空間
$ exp system/doiido@orcl file=doiido.dmp tablespaces=(doiido)
1.5:在windows下遠端導出
C:\Windows\system32>exp
doiido/
[email protected]:1521/doiido file=d:\doiido.dmp tables=boy log=d:\doiido.log
導出的兩種方式
傳統路徑:使用SQL語句查詢方式,需要經過緩存
直接路徑:使用數據塊抽取方式,direct=y
2:IMP導入
1:導入某個用戶指定的表
$ imp doiido/doiido file=doiido.dmp tables=(doiido,boy)
log=doiido.log
2:導入用戶test所有的對象到doiido
$ imp doiido/doiido file=doiido.dmp fromuser=test touser=doiido log=doiido.log
執行導入的順序
創建表結構
導入表的數據
創建相關索引
導入觸發器
對導入的表啟用完整性約束
建立所有位圖、函數以及其他索引
imp的時候如果導入的表已經存在
ignore=y ##表示導入的時候忽略同名對象,導入的操作是追加
3:其他
(1)導入導出的過程可以更換用戶,但是必須有相同的表空間在,這樣導入才能夠成功
(2)導出的時候會有wainings是正常的,因為有些索引或主外鍵之類的沒有被導出
(3)導入導出的時候還需要注意字符集的必須是相同或者是子集