首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle RMAN LIST 指令完整備忘錄:從 INCARNATION 到 EXPIRED BACKUP 全場景查詢

     編輯:Oracle 資料庫基礎

LIST 指令核心用途

LIST 為 RMAN 最直觀的備份清查工具,可列出控制檔或復原目錄中的備份中繼資料,幫助 DBA 快速掌握可用備份集、歸檔日誌、控制檔、SPFILE 等狀態。

常用 LIST 指令分類彙總

1. 資料庫化身與概覽類

LIST INCARNATION;                    -- 列出資料庫化身 (RESETLOGS 歷史)
LIST BACKUP SUMMARY;                 -- 所有備份集概覽 (B/A/F/0/1/2 標記)
LIST BACKUP OF DATABASE SUMMARY;     -- 僅資料庫備份概覽
LIST BACKUP OF TABLESPACE SUMMARY;   -- 僅表空間備份概覽
LIST BACKUP OF DATAFILE n,n SUMMARY; -- 指定資料檔備份概覽
LIST ARCHIVELOG ALL SUMMARY;         -- 歸檔日誌備份概覽

SUMMARY 輸出代碼對照:
B=Backup Set, A=Archivelog, F=Full, 0/1/2=Incremental Level, A=Available, X=Expired

2. 依檔案類型分類列出

LIST BACKUP BY FILE;  -- 分四類:資料檔、歸檔日誌、控制檔、SPFILE

3. 詳細備份集資訊


LIST BACKUP;                          -- 所有備份集完整中繼資料
LIST EXPIRED BACKUP;                  -- 僅列出過期 (不可用) 備份
LIST COPY;                            -- 影像複製
LIST BACKUP OF SPFILE;                -- SPFILE 備份
LIST BACKUP OF CONTROLFILE;           -- 控制檔備份
LIST BACKUP DATAFILE n,n,n;           -- 指定資料檔詳細備份
LIST BACKUP TABLESPACE tablespace_name; -- 指定表空間詳細備份

4. 歸檔日誌精準篩選


LIST BACKUP OF ARCHIVELOG ALL;
LIST BACKUP OF ARCHIVELOG FROM SCN ...;
LIST BACKUP OF ARCHIVELOG UNTIL SCN ...;
LIST BACKUP OF ARCHIVELOG FROM SEQUENCE ...;
LIST BACKUP OF ARCHIVELOG UNTIL TIME 'SYSDATE-10';
LIST BACKUP OF ARCHIVELOG {ALL, FROM, HIGH, LIKE, LOGSEQ, LOW, SCN, SEQUENCE, TIME, UNTIL};

5. 影像複製 (COPY) 系列


LIST COPY OF DATABASE;
LIST COPY OF CONTROLFILE;
LIST COPY OF TABLESPACE users;
LIST COPY OF DATAFILE n,n,n;
LIST COPY OF ARCHIVELOG ALL;
LIST COPY OF ARCHIVELOG FROM SCN 10000;
LIST COPY OF ARCHIVELOG UNTIL SEQUENCE 12;

實務操作範例

範例 1:確認目前資料庫化身


RMAN> LIST INCARNATION;
List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- ------- ---------- ----------
1       1       ORCL     1234567890       PARENT  1          2023-01-01
1       2       ORCL     1234567890       CURRENT 54321      2023-06-15

若有多次 RESETLOGS,需確認目前 CURRENT 化身,恢復時指定正確 INCARNATION。

範例 2:快速掌握備份全貌


RMAN> LIST BACKUP SUMMARY;
List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
1       B  F  A DISK        2023-11-01      1       1       NO         FULL_BAK1
2       B  1  A DISK        2023-11-02      1       1       NO         INCR_L1
3       A  A  A DISK        2023-11-02      1       1       NO         ARCH_BAK

範例 3:針對特定表空間檢查備份鏈完整性


RMAN> LIST BACKUP OF TABLESPACE USERS;
-- 輸出包含:備份集 Key、類型、層級、完成時間、包含資料檔、標記、狀態
-- 重點確認:是否有 FULL 基準備份 + 連續 Incremental + 歸檔日誌覆蓋至今

進階技巧:結合 REPORT 指令


REPORT NEED BACKUP;              -- 需要備份的檔案 (依 retention policy)
REPORT OBSOLETE;                 -- 過時備份 (可刪除)
REPORT SCHEMA;                   -- 目前資料庫結構
REPORT UNRECOVERABLE;            -- 無法恢復的物件 (NOLOGGING 操作後)

常見排錯場景

  • 備份集顯示 EXPIRED:執行 CROSSCHECK BACKUP 同步實際檔案狀態,再 DELETE EXPIRED BACKUP 清理中繼資料。
  • 找不到預期的備份:確認 CONFIGURE CONTROLFILE AUTOBACKUP ON、檢查 DB_RECOVERY_FILE_DEST 空間、驗證排程腳本是否成功。
  • 跨化身恢復失敗:RESET DATABASE TO INCARNATION 切換至正確化身再恢復。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved