練習一下Oracle的邏輯備份恢復,EXP/IMP
邏輯備份是個人一直比較忽視的一種備份方式
至於原因……也許是在使用SqlServer2000的日子裡,接觸這種備份太多的緣故吧
那時候經常要匯入匯出EXCEL、TXT等文件
而且,exp/imp是一種適合於Oracle資料庫之間進行備份恢復的工具
並不像SqlServer的匯入匯出那樣支援的型別廣泛(雖然大部分都是MS自己的東西……)
對於Oracle的匯入匯出,更像是一種平臺間的資料遷移工具
雖然個人不是太在意這個邏輯備份恢復功能
但看網上,此工具的使用率還是比較高的
所以還是趁著目前較輕鬆的時候,大概瞭解一下吧
先來說說Oracle傳統的EXP/IMP
Oracle利用EXP將資料庫、物件、資料,進行轉儲,並備份為二進位制檔案
再用IMP讀取轉儲的檔案,進行資料恢復或檢視
對於新安裝的資料庫,在使用此功能之前,先要執行兩個指令碼中的一個
/home/oracle/oracle/product/10.2.0/db_1/rdbms/admin/catexp.sql
/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql
指令碼用於為使用匯入匯出功能做一些準備
比如EXP_FULL_DATABASE和IMP_FULL_DATABASE角色的建立和賦上相應許可權
並將兩個角色授權給DBA角色
與之前接觸過的SQL*Loder類似
匯入匯出可通過引數或引數檔案來控制整個過程的行為
另外,還可以通過互動模式(不帶除使用者名稱/密碼以外的引數呼叫),以及在OEM來執行
匯出匯入可以有幾種工作模式
完全,database的完全匯入匯出
表空間,一個或多個表空間的匯入匯出
使用者,針對屬於某個使用者的資料庫物件進行匯入匯出
表,指定一個或多個表匯入匯出
選擇的工作模式不同,所需要的許可權也有所不同
使用時要參照相關文件進行設定
imp,可以將所用exp檔案中的物件匯入到與源schema相同或不同的schema中
當匯入的表有相關的參照完整性或其它約束,而這些約束的條件並沒有滿足的時候
匯入資料就會失敗
可以在匯入前臨時禁止約束,匯入後再開啟
也可手動制定匯入的順序
更多功能說明,可以參考相關官方文件
比如,Oracle® Database Utilities 10g Release 2 (10.2) B14215-01
沒準兒以後在實踐應用更深入的功能的時候,會再進行補充總結
說了一些東西,來簡單使用一下匯入匯出吧
因為個人要用sys使用者進行測試,呼叫格式稍微不太一樣
exp \'sys/sys@test as sysdba\'
(sys使用者使用exp,部分引數無效,具體參考官方文件)
利用引數檔案匯出
exp \'sys/gainax@test as sysdba\' parfile='/home/oracle/exp.par'
引數檔案內容(#為註釋用符號):
FILE=test_exp.dmp #匯出的檔名
GRANTS=y #匯出物件許可權
FULL=y #全database匯出
ROWS=y #匯出資料行
LOG=export.log #匯出過程的日誌檔案
再弄一個表匯出模式的
exp \'hr/hr@test\' parfile='/home/oracle/exp.par'
這次的exp.par內容:
FILE=test_exp2.dmp
TABLES=(hr.empb,hr.jobsb) #要匯出的表
ROWS=n #不匯出資料,僅匯出表定義
接下來用imp,這裡就用上面的表匯出exp檔案來試驗
先將hr.empb,hr.jobsb兩個表從資料庫中刪除
然後利用imp進行匯入恢復
imp \'hr/hr@test\' parfile='/home/oracle/exp.par'
引數檔案內容:
FILE=/home/oracle/test_exp.dmp
SHOW=n #不顯示錶匯入過程
IGNORE=n #如果表已經存在,將會報錯並跳過此表的匯入
GRANTS=y #匯入許可權
TABLES=(empb,jobsb) #要匯入的表
test_exp.dmp檔案中沒有資料,所以僅僅是在hr使用者下建立兩個表
再來試驗將資料匯入
imp \'hr/hr@test\' parfile='/home/oracle/exp.par'
引數檔案內容:
FILE=/home/oracle/test_exp2.dmp
SHOW=n
IGNORE=n
GRANTS=y
TABLES=(empb,jobsb)
因為表已經存在,所以會有報錯
IMP-00015: following statement failed because the object already exists
修改IGNORE=y,再來匯入,成功
試驗匯入表到另一個使用者中
imp \'sys/gainax@test as sysdba\' parfile='/home/oracle/exp.par'
引數檔案內容:
FILE=/home/oracle/test_exp2.dmp
SHOW=n
IGNORE=y
GRANTS=y
FROMUSER=hr #原所屬使用者名稱
TOUSER=louloueva #要匯入到使用者名稱
TABLES=(empb,jobsb)
上面是對於Oracle傳統的exp/imp工具的使用練習
另外,還有很多複雜的用法沒有實踐,但整體上已經有了籠統的認識
需要應用更深入的功能的時候,再去參照官方文件進行就行了
在Oracle進入10g之後,就推薦使用者使用新一代的匯入匯出工具
資料泵expdp/impdp,明天瞭解
再之後,該開始涉及RMAN的備份恢復操作
春節前爭取把Oracle的各個備份恢復方法走一遍吧 ^_^
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/556359/viewspace-531932/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE備份和恢復 - 邏輯備份 exp/impOracle
- 使用exp/imp匯出匯入資料(邏輯備份恢復)
- MySql邏輯備份恢復MySql
- 揭祕ORACLE備份之--邏輯備份(EXP)Oracle
- Mysql備份與恢復(2)---邏輯備份MySql
- Oracle physical standby中的邏輯備份(exp命令)Oracle
- Oracle邏輯備份與恢復選項說明Oracle
- Oracle資料庫備份與恢復之匯出/匯入(EXP/IMP)、熱備份和冷備份Oracle資料庫
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- Oracle備份與恢復系列 五 續 EXP/IMP遷移、複製資料庫Oracle資料庫
- Oracle備份與恢復系列 五 邏輯匯入匯出Oracle
- 資料庫(表)的邏輯備份與恢復資料庫
- windows下exp邏輯備份並且定期維護備份Windows
- rman 搭建,備份,恢復基礎練習
- exp/imp備份與還原oracle資料庫Oracle資料庫
- Oracle資料庫備份與恢復之exp/imp(匯出與匯入裝庫與卸庫)Oracle資料庫
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- Oracle 邏輯備份 expdp/impdpOracle
- Oracle邏輯備份指令碼Oracle指令碼
- oracle恢復練習Oracle
- Oracle裡邏輯備份、物理備份、Rman備份的區別Oracle
- 揭祕ORACLE備份之--邏輯備份(EXPDP)Oracle
- Oracle資料庫備份與恢復之一:exp/imp(匯出與匯入裝庫與卸庫)Oracle資料庫
- Oracle 資料庫備份與恢復總結-exp/imp (匯出與匯入裝庫與卸庫)Oracle資料庫
- Oracle 備份恢復概念Oracle
- oracle備份恢復PPTOracle
- Oracle 備份和恢復Oracle
- ORACLE備份&恢復案例Oracle
- mysql 開發進階篇系列 42 邏輯備份與恢復MySql
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- 【RMAN】Oracle12c之後,rman備份Dataguard備端恢復可能出現邏輯錯誤Oracle
- NBU之oracle的備份恢復Oracle
- Oracle OCR的備份與恢復Oracle
- oracle備份恢復的大致原理!Oracle
- oracle rman備份恢復的例子Oracle
- mysql的邏輯備份MySql
- ORACLE資料庫的邏輯備份(轉)Oracle資料庫