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

Oracle表空間重建專業指南:故障分級、介質恢復與對象重建雙軌策略

     編輯:Oracle 資料庫基礎

故障現象識別

  • 啟動報:ORA-01157、ORA-01110、OS錯誤ORA-07360
  • 關閉報:ORA-01116、ORA-01110、OS錯誤ORA-07368

決策樹:重建 vs 恢復


用戶表空間故障
    │
    ├─ 對象可重建?(近期導出/DDL腳本/數據可重載)
    │     │
    │     ├─ 是 → 方案A:離線刪除重建(最快)
    │     │
    │     └─ 否 → 方案B:介質恢復(需備份+歸檔)
    │
    └─ 僅讀表空間?
          ├─ 備份後未切寫 → 僅還原文件
          └─ 備份後切寫過 → 介質恢復

方案A:對象可重建 - 離線刪除重建

STARTUP MOUNT;
ALTER DATABASE DATAFILE 'faulty_file.dbf' OFFLINE DROP;
ALTER DATABASE OPEN;
DROP TABLESPACE faulty_ts INCLUDING CONTENTS;

-- 重建表空間
CREATE TABLESPACE faulty_ts
  DATAFILE '/u01/oradata/PROD/faulty_ts01.dbf' SIZE 1G AUTOEXTEND ON;

-- 重建對象(執行DDL腳本)
@rebuild_objects.sql

-- 導入數據(若有導出)
IMPDP ... TABLES=... REMAP_TABLESPACE=OLD_TS:FAULTY_TS

方案B:對象不可重建 - 介質恢復

-- 1. 從備份還原數據文件
$ rman TARGET /
RMAN> RESTORE DATAFILE '/u01/oradata/PROD/faulty_ts01.dbf';

-- 2. 掛載並確認日誌邊界
STARTUP MOUNT;
SELECT v1.group#, v1.sequence#, v1.first_change#, v2.member
FROM v$log v1 JOIN v$logfile v2 ON v1.group# = v2.group#;

-- 3. 檢查可恢復性(NOARCHIVELOG模式關鍵)
SELECT file#, change# FROM v$recover_file;
-- change# > MIN(first_change#) 可恢復,否則退回方案A

-- 4. 執行恢復
RECOVER DATAFILE '/u01/oradata/PROD/faulty_ts01.dbf';

-- 5. 驗證並打開
ALTER DATABASE OPEN RESETLOGS;  -- 若使用備份控制文件/不完整恢復
-- 或
ALTER DATABASE OPEN;            -- 完全恢復

特殊場景處理

只讀表空間

原則:直接還原備份文件,無需介質恢復。
例外:備份後曾READ WRITE或再次READ ONLY → 需介質恢復。

臨時表空間

DROP TABLESPACE temp_ts INCLUDING CONTENTS AND DATAFILES;
CREATE TEMPORARY TABLESPACE temp_ts TEMPFILE '...' SIZE ... AUTOEXTEND ON;

系統表空間

無備份 → **唯一出路:重建數據庫**。
平時必須:RMAN每日Level 0 + 歸檔實時備份 + 控制文件多路復用。

UNDO/回滾表空間

參考《Oracle UNDO表空間全生命周期管理》分三種實例狀態處理(OPEN/MOUNT/ABORT)。

控制文件

  • 全損:備份文件覆蓋 / RMAN RESTORE CONTROLFILE / 裸設備dd
  • 部分損:刪除損壞副本,修改CONTROL_FILES指向完好副本,STARTUP

避坑清單

  1. NOARCHIVELOG模式僅能恢復到最近ONLINE REDO LOG覆蓋點,超出則不可恢復。
  2. OFFLINE DROP後數據文件從控制文件移除,**不可再ONLINE**,僅能重建/恢復。
  3. RESETLOGS打開後,舊備份/歸檔失效,**必須立即建立新Level 0備份**。
  4. 介質恢復期間**嚴禁**其他會話訪問該表空間對象。

總結

表空間重建雙軌制:可重建走離線重建(快),不可重建走介質恢復(穩)。核心前提是**備份策略決定恢復選項**。建立「每日Level 0 + 每小時Level 1 + 實時歸檔」RMAN體系,配合季度恢復演練,才是治本之道。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved