■ 烏魯木齊 孫湘蓉
編者按:Oracle數據泵是Oracle提供的更新、更快、更靈活的數據導入、導出工具。本文通過對Oracle數據泵與原有IMP/EXP導入導出功能使用對比分析,著重討論了基于Oracle數據泵的Oracle數據導入導出方法。
Oracle備份方式主要分為邏輯備份和物理備份。Oracle熱備份與冷備份都屬于物理備份。用數據泵導出數據備份方式則屬于邏輯備份。Oracle數據庫導入導出工具,可以使用exp/imp,但這是比較早期的工具。Oracle 10g開始后引入數據泵的方式。相對于傳統的exp命令來說,執行效率更高。
Oracle 10g開始引入數據泵,與傳統exp/imp相比,數據泵可以作業分離,允許掛起和恢復導入導出任務,可以從失敗點重新啟動失敗的作業,還可以控制導入導出的版本(version)。
在使用數據泵前,必須創建DIRECTORY并獲得訪問這么對象的權限,語句如下:
創建dump_scott目錄
create directory dump_scott as'/home/oracle/dump/scott'
為dump_scott目錄授權
Grant read,write on directory dump_scott toscott
1.expdp命令
(1)常用參數
content :導出數據還是只導出元數據(表和索引創建語句等),選項有:ALL、DATA_ONLY、METADATA_ONLY
directory:dumpfile和logfile的目錄對象
dumpfile/logfile
exclude:不導出指定的對象(與這些對象有依賴的也不會導出)eg:exclude=table:"lik e'DBA_%'"
include:導出指定的對象,與exclude功能相反,用法相同
job_name:定 義導出作業的名稱
attach:附加到已經在運行的現有作業,用于管理作業
full:默認值為n,full=y表示導出所有對象
nologfile:=y表示不寫expdp的日志文件,默認值為n
tables/tablespaces:運行導出指定表/表空間,包括與這個表/表空間有依賴關系的所有對象
version:限制要導出的對象到指定版本的數據庫
(2)舉例
導出數據庫所有對象
Expdp system/pwd@ip/ORACLE_SID dumpfile=dumpdir:db_%U.dmp logfile=dumpdir:db_exp_%U.log job_name=exp_db full=y
2.impdp命令
(1)常用參數
content :導入數據還是只導入元數據(表和索引創建語句等),選項有:ALL、DATA_ONLY、METADATA_ONLY
directory:dumpfile和logfile的目錄對象
dumpfile/logfile
include:導入指定的對象,eg:exclude=table:"lik e'DBA_%'"
job_name:定義導入作業的名稱
attach:附加到已經在運行的現有作業,用于管理作業
full:默認值為n,full=y表示導出所有對象
nologfile:=y表示不寫expdp的日志文件,默認值為n
tables/tablespaces:運行導出指定表/表空間,包括與這個表/表空間有依賴關系的所有對象
table_exists_action:定義當表已經存在時執行的操作
(2)舉例
導入數據庫所有對象:
impdp system/pwd@ip/ORACLE_SID dumpfile=pumpdir:db_01.dmp logfile=pumpdir:db_imp_%U.log job_name=imp_db full=y
1.導入導出數據泵(expdp/impdp)是服務器端工具。所謂的服務器端工具,簡單理解就是這樣,你執行命令可以在服務器上,也可以在客戶端做,但是命令其實是在Oracle數據庫里建job,所以即使你的session斷掉了,這個操作一樣會繼續,并最終完成。對于這個job,你還可以進入交互模式并加以控制。
導入導出工具(exp/imp)是客戶端工具。所謂客戶端工具,簡單理解就是這樣,你執行命令可以在服務器上,也可以在客戶端做,不過實際上Oracle是通過這個建立起來的session來完成操作,一旦session終端,那么操作也會失敗。
2.導入導出數據泵(expdp/impdp)是Oracle 10g的新特性,他的文件格式采用XML。他的操作速度要遠遠快于exp/imp。
3.導入導出數據泵的數據只能存儲在本地服務器目錄,Oracle需要你首先創建目錄對象,并授予用戶正確的讀寫權限。
4.導入導出數據泵導出文件取數據庫字符集,而exp/imp工具生成文件取的字符集受客戶端環境變量NLS_LANG影響。
筆者單位利用Oracle數據泵的特性成功解決了LIMS實驗室信息管理系統因數據龐大造成數據備份還原經常失敗的問題。LIMS系統從2007年運行至今,數據庫中已存儲大量的數據量。尤其是隨著煉油廠色譜分析儀接入數量的增加,色譜儀自動分析結果傳輸數據量的增加,現有的Oracle(32位)數據庫性能已不能滿足現有業務應用需求,因此我們新搭建一套LIMS數據庫系統,在操作系統Windows Server 2003(64位)上安裝Oracle 10g(64位)。利 用Oracle 10g數據泵工具,成功建立了數據庫的自動備份機制。將數據庫備份時間縮短到20分鐘,減小數據庫壓力,提高系統穩定性。