首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 回滾表空間資料檔誤刪除緊急處理流程

     編輯:Oracle 資料庫相關知識

故障現象

使用者誤刪回滾段表空間 (RBS) 資料檔 rbs01.dbf,導致資料庫無法啟動 (ORA-01157/ORA-01110)。

核心思路

暫用 SYSTEM 回滾段啟動資料庫 → 離線並移除損壞檔案 → 恢復資料庫 → 重建回滾段表空間與段 → 切回正常回滾段啟動。

分步驟操作

  1. 修改參數檔啟用 SYSTEM 回滾段
    SHUTDOWN ABORT
    vi $ORACLE_HOME/dbs/init.ora
    rollback_segments=(system)
    _corrupted_rollback_segments=(r01,r02,r03,r04)
    STARTUP MOUNT
  2. 離線損壞檔案並恢復
    ALTER DATABASE DATAFILE '##/##/rbs01.dbf' OFFLINE DROP;
    RECOVER DATABASE USING BACKUP CONTROLFILE;
    -- 依提示應用歸檔/線上 Redo,完成後
    ALTER DATABASE OPEN RESETLOGS;
  3. 刪除舊回滾段與表空間
    ALTER ROLLBACK SEGMENT r01 OFFLINE DROP; ... r04
    DROP TABLESPACE RBS INCLUDING CONTENTS;
  4. 重建新回滾段表空間與段
    CREATE ROLLBACK SEGMENT RO TABLESPACE SYSTEM;
        ALTER ROLLBACK SEGMENT RO ONLINE;
        CREATE TABLESPACE RBS DATAFILE '##/##/rbs01.dbf' SIZE ##K;
        CREATE ROLLBACK SEGMENT r01 TABLESPACE RBS; ... r04
        ALTER ROLLBACK SEGMENT r01 ONLINE; ... r04
  5. 切回正常參數啟動
    SHUTDOWN ABORT
    vi init.ora
    rollback_segments=(r01,r02,r03,r04)
    -- 移除 _corrupted_rollback_segments
    STARTUP

適用條件與驗證

  • 資料庫運行於 歸檔模式,擁有完整歸檔與線上 Redo。
  • 已在 HP-UX 10.20、Solaris 2.5 實測通過。
  • 恢復後務必檢查 V$ROLLSTAT 確認新段 ONLINE 且無 WAITS 爭用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved