oracle 備份與還原 exp/imp
獲取幫助
===================================================================
imp help=y
準備工作
=====================================================================
在命令列中執行下面的命令設定環境變數
c:>set ORACLE_SID=orcl
沒有設定這個環境變數有可能會導致:ORA-12560 錯誤
exp.exe 備份資料庫
=====================================================================
1、完全備份資料庫
EXP SYSTEM/MANAGER BUFFER=64000 FILE=C:\FULL.DMP FULL=Y
如果要執行完全匯出,必須具有特殊的許可權
2、使用者模式(一個):
EXP <user>/<pwd> BUFFER=64000 FILE=C:\back.DMP OWNER=<user>
這樣使用者<user>的所有物件被輸出到檔案中。
3、表模式:
EXP <user>/<pwd> BUFFER=64000 FILE=C:\back.DMP OWNER=<user> TABLES=(t1,t2)
這樣使用者<user>的表t1, t2就被匯出
imp 匯入備份
=====================================================================
1. 匯入一個完整資料庫
imp system/manager file=full.dmp log=full.log full=y ignore=y
如果要執行完全匯出,必須具有特殊的許可權
2. 匯入一個或一組指定使用者所屬的全部表、索引和其他物件
imp <user>/<pwd> file=back.dmp [log=back.log] fromuser=seapark
imp system/manager file=back.dmp [log=back.log] fromuser=(seapark,amy,amyc,harold)
3. 將一個使用者所屬的資料匯入另一個使用者
imp system/manager file=back.dmp [log=back.log] fromuser=seapark touser=seapark_copy
imp system/manager file=back.dmp [log=back.log] fromuser=(seapark,amy) touser=(seapark1, amy1)
4. 匯入一個表
imp <user>/<pwd> file=back.dmp [log=back.log] fromuser=<user> TABLES=(a,b)
引數說明
=====================================================================
imp.exe <user>/<pwd> <key>=<val>
USERID: 使用者名稱/口令
FILE 輸入/輸出檔名 (EXPDAT.DMP)
OWNER: 所有者使用者名稱列表
FULL: Y/N,匯出整個檔案 (N)
BUFFER: 資料緩衝區大小
TABLES: 表名稱列表
DIRECT: 直接路徑 (N)
GRANTS:匯出許可權 (Y)
INCTYPE:增量匯出型別
ROWS: 匯出資料行 (Y)
PARFILE:引數檔名
優化exp和imp的效能
================================================================
exp /imp 可配置一些引數,以改進Export和Import的效能。至於效能具體能提升多高,則取決於要匯出或匯入的資料,以及資料量的大小。
用以下通用引數改進Export的效能:
DIRECT:對一個Export,將DIRECT引數設為DIRECT=Y,將資料直接轉移
到Export客戶端。這樣的轉移繞過SQL命令處理層(估值緩衝區),從而避免了
無謂的資料轉換。
RECORDLENGTH:增大RECORDLENGTH引數值,來改進效能。為該引數
推薦的值是DB_BLOCK_SIZE的一個整數倍,或者是檔案系統I/O塊大小的一個
整數倍。更改這個引數的值會影響寫入磁碟前積累的資料量。該引數的最大值為
64千位元組(64 KB)。
用以下通用引數改進Import的效能:
BUFFER:BUFFER引數指定了緩衝區的大小,資料行將通過這個緩衝區進行轉
移,由此便決定了由Import匯入的每個陣列插入中的行數。如配合COMMIT=Y
引數指定BUFFER引數,則Import會在每一個陣列插入之後進行提交,而不是在
載入完整的表之後再預設地提交。一個較大的BUFFER引數值有助於改善效能。
但假如BUFFER值過高,會造成OS分頁和換行,反而影響效能。
INDEXES。INDEXES引數指定是否匯入使用者生成的索引。如指定
INDEXES=N,則將提高Import的效能,因為在一個無索引的表中匯入資料要快得
多。注意,如果首先用INDEXFILE=返回Import,來在請求的Import模式下提取
索引建立命令,再將其寫入指定的檔案,那麼以後仍可重建索引。
使用INDEXFILE選項時,不會匯入資料物件。可對輸出檔案()進行編輯,
並將其作為一個SQL指令碼使用,以便在Import之後建立索引。