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/doiido@192.168.100.200: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)導入導出的時候還需要注意字符集的必須是相同或者是子集


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章