Oracle資料庫有三種標準的備份方法,它們分別是導出/導入(EXP/IMP)、熱備份和冷備份。導出備件是一種邏輯備份,冷備份和熱備份是物理備份。
一、 導出/導入(Export/Import)
利用Export可將資料從資料庫中提取出來,利用Import則可將提取出來的資料送回到Oracle資料庫中去。
1、 簡單導出資料(Export)和導入資料(Import)
Oracle支援三種方式類型的輸出:
(1)、表方式(T方式),將指定表的資料導出。
(2)、用戶方式(U方式),將指定用戶的所有物件及資料導出。
(3)、全庫方式(Full方式),瘵資料庫中的所有物件導出。
資料導入(Import)的過程是資料導出(Export)的逆過程,分別將資料檔案導入資料庫和將資料庫資料導出到資料檔案。
2、 增量導出/導入
增量導出是一種常用的資料備份方法,它只能對整個資料庫來實施,並且必須使用SYSTEM帳號來導出。在進行此種導出時,系統不要求回答任何問題。導出檔案名缺省為export.dmp,如果不希望自己的輸出檔定名為export.dmp,必須在命令行中指出要用的檔案名。
增量導出包括三種類型:
(1)、“完全”增量導出(Complete)
即備份三個資料庫,比如:
exp system/manager inctype=complete file=040731.dmp
(2)、“增量型”增量導出 (Incremental)
備份上一次備份後改變的資料,比如:
exp system/manager inctype=incremental file=040731.dmp
(3)、“累積型”增量導出 (Cumulative)
累計型導出方式是導出自上次“完全”導出之後資料庫中變化了的資訊。比如:
exp system/manager inctype=cumulative file=040731.dmp
資料庫管理員可以排定一個備份日程表,用資料導出的三個不同方式合理高效的完成。
比如資料庫的備分任務可以做如下安排:
星期一:完全導出(export_A.dmp)
星期二:增量導出(export_B.dmp)
星期三:增量導出(export_C.dmp)
星期四:增量導出(export_D.dmp)
星期五:累計導出(export_E.dmp)
星期六:增量導出(export_F.dmp)
星期日:增量導出(export_G.dmp)
如果在星期日,資料庫遭到意外破壞,資料庫管理員可按一下步驟來回複資料庫:
第一步:用命令CREATE DATABASE重新生成資料庫結構;
第二步:創建一個足夠大的附加回滾。
第三步:完全增量導入A:
imp system/manager inctype=RESTORE FULL=y FILE=A
第四步:累計增量導入E:
imp system/manager inctype=RESTORE FULL=Y FILE=E
第五步:最近增量導入F:
imp system/manager inctype=RESTORE FULL=Y FILE=F
======================傳說中的分隔線==========================
我實際上在10g的系統上操作這個參數,結果我發現,當我下這個參數時,有下列的警告訊息:
C:\Documents and Settings\Administrator>exp system/au 4a 83@test inctype=complete
file=c:\temp\c_dump.dmp log=c:\temp\c_dump.log
Export: Release 10.2.0 .1.0 - Production on 星期二 4月 1 10:03:06 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線至: Oracle Database 10g Enterprise Edition Release 10.2.0 .1.0 - Production
With the Partitioning, OLAP and Data Mining options
EXP-00041: INCTYPE 參數已不使用
已匯出 ZHT 16M SWIN950 字元集和 AL16UTF16 NCHAR 字元集
即將匯出整個資料庫 ...
. 正在匯出表格空間定義
. 正在匯出設定檔
. 正在匯出使用者定義
. 正在匯出角色
上metalink查了一下,發現9i後就已經不在使用這個參數,但是,網路上有人又說在9i中還是支援這個參數的,只是這是非官方說法…
有興趣的人可以實測一下…
==========================傳說中的分隔線======================
文件出處: http://space6212.itpub.net/post/12157/62542
EXP增量備份
發表人:space6212 | 發表時間: 2006年三月24日, 17:10
今天遇到一個需求,需要對兩個資料庫做資料同步,由於兩個資料分別處於內網和外網,無法直接連通。由於資料量較大,同事建議用EXP做增量備份。我的觀點是EXP的增量備份沒有意義,因為增量備份最小的差異單元是表,也就是說只要一個表的資料有變動,那麼這個表就要被全表導出。同事的觀點是EXP的增量是只導出新增的資料行,並說以前做過測試驗證過。
目前我們的資料庫版本是9204。
後來我做了一個試驗,證明他的觀點是錯誤的
首先在資料庫的suk用戶下建立a、b兩個表,並分別插入2、3條資料,執行導出:
C:>exp system/space6212 file='d:tempincri_com.dmp' inctype=complete log='d:
empincri_com.log' full=y
Export: Release 9.2.0 .1.0 - Production on 星期五 3月 24 15:14:10 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
連接到: Oracle9i Enterprise Edition Release 9.2.0 .1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
EXP-00041: INCTYPE 參數已廢棄
今天遇到一個需求,需要對兩個資料庫做資料同步,由於兩個資料分別處於內網和外網,無法直接連通。由於資料量較大,同事建議用EXP做增量備份。我的觀點是EXP的增量備份沒有意義,因為增量備份最小的差異單元是表,也就是說只要一個表的資料有變動,那麼這個表就要被全表導出。同事的觀點是EXP的增量是只導出新增的資料行,並說以前做過測試驗證過。
目前我們的資料庫版本是9204。
後來我做了一個試驗,證明他的觀點是錯誤的
首先在資料庫的suk用戶下建立a、b兩個表,並分別插入2、3條資料,執行導出:
C:>exp system/space6212 file='d:tempincri_com.dmp' inctype=complete log='d:
empincri_com.log' full=y
Export: Release 9.2.0 .1.0 - Production on 星期五 3月 24 15:14:10 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
連接到: Oracle9i Enterprise Edition Release 9.2.0 .1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
EXP-00041: INCTYPE 參數已廢棄
已導出 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集
即將導出整個資料庫...
. 正在導出表空間定義
. 正在導出配置檔
. 正在導出用戶定義
. 正在導出角色
. 正在導出資源成本
. 正在導出回退段定義
. 正在導出資料庫鏈結
. 正在導出序號
. 正在導出目錄別名
. 正在導出上下文名空間
. 正在導出外部函數庫名稱
. 正在導出物件類型定義
. 正在導出系統過程物件和操作
. 正在導出 pre-schema 過程物件和操作
. 正在導出群集定義
. 即將導出 SYSTEM 的表通過常規路徑 ...
. . 正在導出表 AQ$_INTERNET_AGENTS 0 行被導出
. . 正在導出表 AQ$_INTERNET_AGENT_PRIVS 0 行被導出
. . 正在導出表 DEF$_AQCALL 0 行被導出
. . 正在導出表 DEF$_AQERROR 0 行被導出
. . 正在導出表 DEF$_CALLDEST 0 行被導出
. . 正在導出表 DEF$_DEFAULTDEST 0 行被導出
. . 正在導出表 DEF$_DESTINATION 0 行被導出
. . 正在導出表 DEF$_ERROR 0 行被導出
. . 正在導出表 DEF$_LOB 0 行被導出
. . 正在導出表 DEF$_ORIGIN 0 行被導出
. . 正在導出表 DEF$_PROPAGATOR 0 行被導出
. . 正在導出表 DEF$_PUSHED_TRANSACTIONS 0 行被導出
. . 正在導出表 DEF$_TEMP$LOB 0 行被導出
. . 正在導出表 HELP 918 行被導出
. . 正在導出表 LOGSTDBY$APPLY_MILESTONE 0 行被導出
. . 正在導出表 LOGSTDBY$APPLY_PROGRESS
. . 正在導出分區 P0 0 行被導出
. . 正在導出表 LOGSTDBY$EVENTS 0 行被導出
. . 正在導出表 LOGSTDBY$PARAMETERS 0 行被導出
. . 正在導出表 LOGSTDBY$PLSQL 0 行被導出
. . 正在導出表 LOGSTDBY$SCN 0 行被導出
. . 正在導出表 LOGSTDBY$SKIP 0 行被導出
. . 正在導出表 LOGSTDBY$SKIP_TRANSACTION 0 行被導出
. . 正在導出表 REPCAT$_AUDIT_ATTRIBUTE 2 行被導出
. . 正在導出表 REPCAT$_AUDIT_COLUMN 0 行被導出
. . 正在導出表 REPCAT$_COLUMN_GROUP 0 行被導出
. . 正在導出表 REPCAT$_CONFLICT 0 行被導出
. . 正在導出表 REPCAT$_DDL 0 行被導出
. . 正在導出表 REPCAT$_EXCEPTIONS 0 行被導出
. . 正在導出表 REPCAT$_EXTENSION 0 行被導出
. . 正在導出表 REPCAT$_FLAVORS 0 行被導出
. . 正在導出表 REPCAT$_FLAVOR_OBJECTS 0 行被導出
. . 正在導出表 REPCAT$_GENERATED 0 行被導出
. . 正在導出表 REPCAT$_GROUPED_COLUMN 0 行被導出
. . 正在導出表 REPCAT$_INSTANTIATION_DDL 0 行被導出
. . 正在導出表 REPCAT$_KEY_COLUMNS 0 行被導出
. . 正在導出表 REPCAT$_OBJECT_PARMS 0 行被導出
. . 正在導出表 REPCAT$_OBJECT_TYPES 28 行被導出
. . 正在導出表 REPCAT$_PARAMETER_COLUMN 0 行被導出
. . 正在導出表 REPCAT$_PRIORITY 0 行被導出
. . 正在導出表 REPCAT$_PRIORITY_GROUP 0 行被導出
. . 正在導出表 REPCAT$_REFRESH_TEMPLATES 0 行被導出
. . 正在導出表 REPCAT$_REPCAT 0 行被導出
. . 正在導出表 REPCAT$_REPCATLOG 0 行被導出
. . 正在導出表 REPCAT$_REPCOLUMN 0 行被導出
. . 正在導出表 REPCAT$_REPGROUP_PRIVS 0 行被導出
. . 正在導出表 REPCAT$_REPOBJECT 0 行被導出
. . 正在導出表 REPCAT$_REPPROP 0 行被導出
. . 正在導出表 REPCAT$_REPSCHEMA 0 行被導出
. . 正在導出表 REPCAT$_RESOLUTION 0 行被導出
. . 正在導出表 REPCAT$_RESOLUTION_METHOD 19 行被導出
. . 正在導出表 REPCAT$_RESOLUTION_STATISTICS 0 行被導出
. . 正在導出表 REPCAT$_RESOL_STATS_CONTROL 0 行被導出
. . 正在導出表 REPCAT$_RUNTIME_PARMS 0 行被導出
. . 正在導出表 REPCAT$_SITES_NEW 0 行被導出
. . 正在導出表 REPCAT$_SITE_OBJECTS 0 行被導出
. . 正在導出表 REPCAT$_SNAPGROUP 0 行被導出
. . 正在導出表 REPCAT$_TEMPLATE_OBJECTS 0 行被導出
. . 正在導出表 REPCAT$_TEMPLATE_PARMS 0 行被導出
. . 正在導出表 REPCAT$_TEMPLATE_REFGROUPS 0 行被導出
. . 正在導出表 REPCAT$_TEMPLATE_SITES 0 行被導出
. . 正在導出表 REPCAT$_TEMPLATE_STATUS 3 行被導出
. . 正在導出表 REPCAT$_TEMPLATE_TARGETS 0 行被導出
. . 正在導出表 REPCAT$_TEMPLATE_TYPES 2 行被導出
. . 正在導出表 REPCAT$_USER_AUTHORIZATIONS 0 行被導出
. . 正在導出表 REPCAT$_USER_PARM_VALUES 0 行被導出
. . 正在導出表 SQLPLUS_PRODUCT_PROFILE 0 行被導出
. 即將導出 OUTLN 的表通過常規路徑 ...
. . 正在導出表 OL$ 0 行被導出
. . 正在導出表 OL$HINTS 0 行被導出
. . 正在導出表 OL$NODES 0 行被導出
. 即將導出 DBSNMP 的表通過常規路徑 ...
. 即將導出 WMSYS 的表通過常規路徑 ...
. . 正在導出表 WM$ADT_FUNC_TABLE 0 行被導出
. . 正在導出表 WM$ENV_VARS 1 行被導出
. . 正在導出表 WM$INSTEADOF_TRIGS_TABLE 0 行被導出
. . 正在導出表 WM$LOCKROWS_INFO 0 行被導出
. . 正在導出表 WM$MODIFIED_TABLES 0 行被導出
. . 正在導出表 WM$MW_TABLE
. . 正在導出表 WM$NESTED_COLUMNS_TABLE 0 行被導出
. . 正在導出表 WM$NEXTVER_TABLE 0 行被導出
. . 正在導出表 WM$REPLICATION_TABLE 0 行被導出
. . 正在導出表 WM$RESOLVE_WORKSPACES_TABLE 0 行被導出
. . 正在導出表 WM$RIC_TABLE 0 行被導出
. . 正在導出表 WM$RIC_TRIGGERS_TABLE 0 行被導出
. . 正在導出表 WM$TMP_DBA_CONSTRAINTS 0 行被導出
. . 正在導出表 WM$UDTRIG_DISPATCH_PROCS 0 行被導出
. . 正在導出表 WM$UDTRIG_INFO 0 行被導出
. . 正在導出表 WM$VERSIONED_TABLES 0 行被導出
. . 正在導出表 WM$VERSIONED_TABLES_UNDO_CODE 0 行被導出
. . 正在導出表 WM$VERSION_HIERARCHY_TABLE 1 行被導出
. . 正在導出表 WM$VERSION_TABLE 0 行被導出
. . 正在導出表 WM$VT_ERRORS_TABLE 0 行被導出
. . 正在導出表 WM$WORKSPACES_TABLE 1 行被導出
. . 正在導出表 WM$WORKSPACE_PRIV_TABLE 8 行被導出
. . 正在導出表 WM$WORKSPACE_SAVEPOINTS_TABLE 0 行被導出
. 即將導出 SUK 的表通過常規路徑 ...
. . 正在導出表 A 3 行被導出
. . 正在導出表 B 2 行被導出
. 正在導出同義詞
. 正在導出視圖
. 正在導出引用完整性約束條件
. 正在導出存儲的過程
. 正在導出運算符
. 正在導出索引類型
. 正在導出點陣圖, 功能性索引和可擴展索引
. 正在導出後期表活動
. 正在導出觸發器
. 正在導出實體化視圖
. 正在導出快照日誌
. 正在導出作業佇列
. 正在導出刷新組和子組
. 正在導出維
. 正在導出 post-schema 過程物件和操作
. 正在導出用戶歷史記錄表
. 正在導出預設值和系統審計選項
. 正在導出統計
導出成功終止,但出現警告。
然後在a表再插入一條資料,提交,增量導出:
C:>exp system/space6212 file='d:tempincri_incremental.dmp' inctype=incremen
l log='d:tempincri_incremental.log' full=y
Export: Release 9.2.0 .1.0 - Production on 星期五 3月 24 15:15:57 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
連接到: Oracle9i Enterprise Edition Release 9.2.0 .1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
EXP-00041: INCTYPE 參數已廢棄
已導出 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集
即將導出整個資料庫...
. 正在導出表空間定義
. 正在導出配置檔
. 正在導出用戶定義
. 正在導出角色
. 正在導出資源成本
. 正在導出回退段定義
. 正在導出資料庫鏈結
. 正在導出序號
. 正在導出目錄別名
. 正在導出上下文名空間
. 正在導出外部函數庫名稱
. 正在導出物件類型定義
. 正在導出系統過程物件和操作
. 正在導出 pre-schema 過程物件和操作
. 正在導出群集定義
. 即將導出 SYSTEM 的表通過常規路徑 ...
. 即將導出 OUTLN 的表通過常規路徑 ...
. 即將導出 DBSNMP 的表通過常規路徑 ...
. 即將導出 WMSYS 的表通過常規路徑 ...
. 即將導出 SUK 的表通過常規路徑 ...
. . 正在導出表 A 4