Oracle

完整、增量或差異備份?

  • November 16, 2016

使用 RMAN,我的數據庫每天使用類似於此的命令備份一次

backup incremental level 1 cumulative
[...]
database
include current controlfile spfile

在恢復目錄數據庫中,我可以看到這樣的備份作業之一

   DB_KEY DB_NAME  SESSION_KEY COMMAND_ID              START_TIME          END_TIME            INPUT_BYTES OUTPUT_DEVICE_TYP STATUS        INPUT_TYPE    ELAPSED_SECONDS
---------- -------- ----------- ----------------------- ------------------- ------------------- ----------- ----------------- ------------- ------------- ---------------
  xxxxxxx dbname       xxxxxxx 2016-11-12T05:03:21     12.11.2016 05:02:28 12.11.2016 05:03:21   862159354 SBT_TAPE          COMPLETED     DB INCR                    53

在表 rc_backup_piece_details 中有五個條目與此備份作業的會話 ID

SESSION_KEY DB_NAME      DB_KEY     BP_KEY B INCREMENTAL_LEVEL DEVICE_TYPE          START_TIME          COMPLETION_TIME     ELAPSED_SECONDS S      BYTES
----------- -------- ---------- ---------- - ----------------- -------------------- ------------------- ------------------- --------------- - ----------
   xxxxxxx dbname      xxxxxxx    1000001 I                 1 SBT_TAPE             12.11.2016 05:03:14 14.11.2016 05:03:15               1 A     423549
   xxxxxxx dbname      xxxxxxx    1000002 I                 1 SBT_TAPE             12.11.2016 05:03:05 14.11.2016 05:03:11               6 A  862156486
   xxxxxxx dbname      xxxxxxx    1000003 D                   SBT_TAPE             12.11.2016 05:03:16 14.11.2016 05:03:17               1 A   45324586
   xxxxxxx dbname      xxxxxxx    1000004 I                 1 SBT_TAPE             12.11.2016 05:02:30 14.11.2016 05:03:01              31 A  256422458
   xxxxxxx dbname      xxxxxxx    1000005 I                 1 SBT_TAPE             12.11.2016 05:03:13 14.11.2016 05:03:14               1 A   45624595

如您所見,有一個備份件,其中D作為備份類型。在Oracle 文件中,我發現以下內容:

備份的類型。可能的值是 D 表示數據文件或控製文件備份,I 表示增量備份,L 表示歸檔日誌文件備份

這是否意味著在這些備份片段中存在一個數據文件或控製文件的增量備份?

如果是這種情況,那麼我想知道為什麼這只發生在這個特定的數據庫中。所有其他數據庫也備份include current controlfile spfile

該數據庫與其他數據庫的不同之處在於大多數其他數據庫都有備份incremental level=0。那麼可能有區別嗎?


編輯:那麼,如果備份類型D不是增量備份,那麼為什麼這個備份片段包含在 backob 作業中input_type = 'DB INCR'?並且 rman 命令的哪一部分會觸發此數據文件備份,如果是,include current controlfile spfile那麼為什麼會有D任何其他數據庫的備份類型的備份片段?

這是否意味著在這些備份片段中存在一個數據文件或控製文件的增量備份?

不,備份類型是D指它是數據文件或控製文件的備份,但它不是增量備份(用NULLfor表示INCREMENTAL_LEVEL)。

其他備份是D作為這些增量備份基礎的備份類型的差異增量備份。

該數據庫與其他數據庫的不同之處在於,其他大多數數據庫的備份增量級別=0。那麼可能有區別嗎?

增量級別 0 和增量級別 1 累積是不同類型的備份,因此存在差異。

增量備份可以是級別 0 或級別 1。級別 0 增量備份是後續增量備份的基礎,它複製所有包含數據的塊,將數據文件備份到備份集中,就像完整備份一樣。0 級增量備份和完整備份之間的唯一區別是完整備份永遠不會包含在增量策略中。

更多資訊:RMAN 增量備份

為了進行增量備份,您必須對要應用增量的數據文件進行完整備份

BACKUP 命令中的每個數據文件都必須存在 0 級備份,作為增量策略的基礎備份。0 級備份的狀態不得為 UNAVAILABLE。如果不存在 0 級備份,則 RMAN 會自動進行 0 級備份。

https://docs.oracle.com/database/121/RCMRF/rcmsynta006.htm#RCMRF107

引用自:https://dba.stackexchange.com/questions/155213