EXP/IMP 學習(二)

楊奇龍發表於2010-06-25

2.  增量匯出/匯入
// oracle 9i  以後 exp  不再支援  inctype
必須為  SYS  或  SYSTEM  才可執行增量匯出匯入
增量匯出:   包括三個型別:
(1)“完全”增量匯出(Complete)  //  備份整個資料庫
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete
(2)“增量型”增量匯出      匯出上一次備份後改變的資料。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=incremental
(3)  “累計型”增量匯出(Cumulative)只匯出自上次“完全”匯出之後資料庫中變化 了的資訊。
$ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=cumulative
增量匯入:
$ imp usr/pwd FULL=y inctype=system/restore/inct ype
其中:
SYSTEM:    匯入系統物件
RESTORE:  匯入所有使用者物件
3.  以SYSDBA進行匯出/匯入
1.  用於 Oracle 技術支援
2.  用於表空間傳輸
例:
$  imp \'usr/pwd@instance as sysdba\'tablespaces=xx transport_tablespace=y file=xxx.dmp datafiles=xxx.dbf
$  imp file=expdat.dmp  userid=”””sys/password  as  sysdba””” transport_tablespace=y
“datafile=(c:tempapp_data,c:tempapp_index)”

4.  表空間傳輸  (速度快)
  表空間傳輸是  8i  新增加的一種快速在資料庫間移動資料的一種辦法,是把一個數 據庫上的格式資料檔案附加到另外一個資料庫中,而不是把資料匯出成  dmp  檔案,這 在有些時候是非常管用的,因為傳輸表空間移動資料就象複製檔案一樣快。
1.關於傳輸表空間有一些規則  (10g前):
1  源資料庫和目標資料庫必須執行在相同的硬體平臺上。
2  源資料庫與目標資料庫必須使用相同的字符集。
3  源資料庫與目標資料庫一定要有相同大小的資料塊
4  目標資料庫不能有與遷移表空間同名的表空間
5  SYS 的物件不能遷移
6  必須傳輸自包含的物件集
7  有一些物件,如物化檢視,基於函式的索引等不能被傳輸
(同位元組序檔案的跨平臺可以用更換資料檔案的檔案頭的方法)
(10g  支援跨平臺的表空間傳輸,只要作業系統位元組順序相同,就可以進行表空間傳輸.需要使用 RMAN轉換檔案格式,略)
2.  檢測一個表空間是否符合傳輸標準的方法:
SQL > exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true); SQL > select * from sys.transport_set_violations;
如果沒有行選擇,表示該表空間只包含表資料,並且是自包含的。對於有些非自包
含的表空間,如資料表空間和索引表空間,可以一起傳輸。
 
3. 簡要使用步驟:
如果想參考詳細使用方法,也可以參考 ORACLE聯機幫助。
1.設定表空間為只讀(假定表空間名字為 APP_Data  和 APP_Index)
SQL > alter tablespace app_data read only; SQL > alter tablespace app_index read only;
2.發出 EXP命令
SQL> host exp userid=”””sys/password as sysdba””” transport_tablespace=y tablespaces=(app_data, app_index)
以上需要注意的是
·為了在 SQL 中執行 EXP,USERID 必須用三個引號,在 UNIX中也必須注意 避免“/”的使用
·在 816和以後,必須使用 sysdba才能操作
·這個命令在 SQL中必須放置在一行(這裡是因為顯示問題放在了兩行)
3.複製.dbf資料檔案(以及.dmp檔案)到另一個地點,即目標資料庫
可以是 cp(unix)或 cop y(windows)或透過 ftp傳輸檔案(一定要在 bin方式)
4.把本地的表空間設定為讀寫
$ alter tablespace app_data read write;
$ alter tablespace app_index read write;
5.在目標資料庫附加該資料檔案  (直接指定資料檔名)
(表空間不能存在,必須建立相應使用者名稱或者用 fromuser/touser)
$ imp file=expdat.dmp userid=”””sys/password as sysdba””” transport_tablespace=y    datafiles=(“c:\app_data.dbf,c:\app_index.dbf”) tablespaces=app_data,app_index tts_owners=hr,oe
6.設定目標資料庫表空間為讀寫
$ alter tablespace app_data read write;
$ alter tablespace app_index read write;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-666322/,如需轉載,請註明出處,否則將追究法律責任。