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

Oracle 回滾段管理完全指南(下):建立、上線、修改、收縮、離線、刪除與監控

     編輯:Oracle 資料庫基礎

一、建立回滾段

CREATE [PUBLIC] ROLLBACK SEGMENT rbs01
  TABLESPACE rbs
  STORAGE (
    INITIAL 100K NEXT 100K
    MINEXTENTS 10
    MAXEXTENTS 500
    OPTIMAL 1000K
  );

規則與建議

  • PUBLIC 供所有實例共用,PRIVATE(預設)僅限指定實例,建立後不可變更
  • MINEXTENTS >= 2、PCTINCREASE = 0(強制)
  • OPTIMAL >= INITIAL * MINEXTENTS,設定後 Oracle 自動收縮至該尺寸
  • 建議 INITIAL = NEXT、避免 MAXEXTENTS UNLIMITED、專用表空間存放

二、上線/離線控制

-- 上線
ALTER ROLLBACK SEGMENT rbs01 ONLINE;

-- 參數檔自動上線
ROLLBACK_SEGMENTS = (rbs01, rbs02)

-- 離線(阻止新事務,等待活動事務結束)
ALTER ROLLBACK SEGMENT rbs01 OFFLINE;
-- 狀態轉換:ONLINE → PENDING OFFLINE → OFFLINE

三、修改儲存參數

ALTER ROLLBACK SEGMENT rbs01 STORAGE (MAXEXTENTS 1000);
ALTER ROLLBACK SEGMENT rbs01 STORAGE (OPTIMAL 2M);

可動態調整 NEXT、MINEXTENTS、MAXEXTENTS、OPTIMAL。

四、手動收縮

ALTER ROLLBACK SEGMENT rbs01 SHRINK;        -- 收縮至 OPTIMAL
ALTER ROLLBACK SEGMENT rbs01 SHRINK TO 2M;  -- 收縮至指定尺寸

五、刪除回滾段

-- 必須先 OFFLINE
ALTER ROLLBACK SEGMENT rbs01 OFFLINE;
DROP ROLLBACK SEGMENT rbs01;

六、監控視圖與查詢

視圖用途關鍵欄位
DBA_ROLLBACK_SEGS靜態資訊SEGMENT_ID, SEGMENT_NAME, TABLESPACE_NAME, OWNER, STATUS
V$ROLLNAME + V$ROLLSTAT動態統計EXTENTS, RSSIZE, OPTSIZE, HWMSIZE, XACTS, STATUS
V$SESSION + V$TRANSACTION活動事務USERNAME, XIDUSN, UBAFIL, UBABLK, USED_UBLK

常用查詢

-- 回滾段靜態
SELECT segment_name, tablespace_name, owner, status FROM dba_rollback_segs;

-- 回滾段動態統計
SELECT n.name, s.extents, s.rssize, s.optsize, s.hwmsize, s.xacts, s.status
FROM v$rollname n, v$rollstat s WHERE n.usn = s.usn;

-- 當前活動事務
SELECT s.username, t.xidusn, t.ubafil, t.ubablk, t.used_ublk
FROM v$session s, v$transaction t WHERE s.saddr = t.ses_addr;

七、數量規劃原則

八、常見問題與對策

負載類型策略比例
OLTP (高併發小事務)多個小回滾段4 事務 : 1 段,單段 < 10 事務
Batch/DSS (大事務)少量大回滾段1 事務 : 1 段
錯誤現象對策
ORA-01560 / ORA-01628表空間滿 / 擴展達 MAXEXTENTS添加資料檔、擴大檔案、增大 MAXEXTENTS
ORA-01555 SNAPSHOT TOO OLD讀一致性失敗,回滾段過小被覆蓋增大 MINEXTENTS、增大 NEXT/INITIAL、設定高 OPTIMAL、指定大回滾段 (SET TRANSACTION)

結語

回滾段是 Oracle 讀一致性與事務恢復的基石。從 建立參數規範化、上線自動化、動態調整 OPTIMAL、預防性監控 EXTENTS/HWM、負載型數量規劃 五個維度建立全生命週期管理體系,可徹底消除 ORA-01555/01628 等經典故障。

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