1. 程式人生 > >oracle exp/imp增量備份恢復

oracle exp/imp增量備份恢復

 增量匯出是一種常用的資料備份方法,它只能對整個資料庫來實施,並且必須作為SYSTEM來匯出。在進行此種匯出時,系統不要求回答任何問題。匯出檔名預設為export.dmp,如果不希望自己的輸出檔案定名為export.dmp,必須在命令列中指出要用的檔名。

增量匯出包括三個型別:

(1)“完全”增量匯出(Complete)

即備份整個資料庫,比如:

$exp system/manager inctype=complete file=990702.dmp

(2) “增量型”增量匯出

備份上一次備份後改變的資料。比如:

$exp system/manager inctype=incremental file=990702.dmp


(3) “累計型”增量匯出(Cumulative)

累計型匯出方式只是匯出自上次“完全” 匯出之後資料庫中變化了的資訊。比如:

$exp system/manager inctype=cumulative file=990702.dmp

資料庫管理員可以排定一個備份日程表,用資料匯出的三個不同方式合理高效地完成。

比如資料庫的備份任務可作如下安排:

星期一:完全匯出(A)

星期二:增量匯出(B)

星期三:增量匯出(C)

星期四:增量匯出(D)

星期五:累計匯出(E)

星期六:增量匯出(F)

星期日:增量匯出(G)

如果在星期日,資料庫遭到意外破壞,資料庫管理員可按以下步驟來恢復資料庫:

第一步:用命令CREATE DATABASE重新生成資料庫結構;


第二步:建立一個足夠大的附加回段。

第三步:完全增量匯入A:

$imp system./manager inctype= RECTORE FULL=Y FILE=A

第四步:累計增量匯入E:

$imp system/manager inctype= RECTORE FULL=Y FILE =E

第五步:最近增量匯入G:

$imp system/manager inctype=RESTORE FULL=Y FILE=G

但是  資料庫的增量備份意義沒想象中那麼大,因為增量備份最小的差異單元是表,也就是說只要一個表的資料有變動,那麼這個表就要被全表匯出。

後來我做了一個試驗,證明他的觀點是錯誤的

首先在資料庫的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 行被匯出. 正在匯出同義詞
. 正在匯出檢視
. 正在匯出引用完整性約束條件
. 正在匯出儲存的過程
. 正在匯出運算子
. 正在匯出索引型別
. 正在匯出點陣圖, 功能性索引和可擴充套件索引
. 正在匯出後期表活動
. 正在匯出觸發器
. 正在匯出實體化檢視
. 正在匯出快照日誌
. 正在匯出作業佇列
. 正在匯出重新整理組和子組
. 正在匯出維
. 正在匯出 post-schema 過程物件和操作
. 正在匯出使用者歷史記錄表
. 正在匯出預設值和系統審計選項
. 正在匯出有關刪除物件的資訊
. 正在匯出統計
匯出成功終止,但出現警告。

C:>

從紅色標註文字可以發現a表插入一條資料後再進行增量備份時時將整個a表的所有資料進行輸出備份!!!!!

並且,EXP時會提示增量備份引數被廢除,但其實這個引數還是起作用的,估計是為了向後相容