天天看點

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/[email protected] 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/[email protected] 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)導入導出的時候還需要注意字元集的必須是相同或者是子集