Oracle回滾段概念用法規(guī)劃及問題的解決 (2)
2024-08-29 13:34:34
供稿:網友
 
                 修改回滾段的存儲參數 可以使用ALTER ROLLBACK SEGMENT命令修改回滾段的存儲參數(包括OPTIMAL,MAXEXTENTS)。 語法: ALTER ROLLBACK SEGMENT rollback_segment  [STORAGE ([NEXT integer[KM]]       [MINEXTENTS integer]       [MAXEXTENTS {integerUNLIMITED}]       [OPTIMAL {integer[KM]NULL}]) ]例: ALTER ROLLBACK SEGMENT rbs01 STORAGE (MAXEXTENTS 1000);回收回滾段的空間 假如指定了回滾段的OPTIMAL參數,Oracle將自動回收回滾段到OPTIMAL指定的位置。用戶也可以手動回收回滾段的空間。 語法: ALTER ROLLBACK SEGMENT rollback_segment SHRINK [TO integer [KM]];說明: 假如不指明TO integer的數值,ORACLE將試圖回收到OPTIMAL的位置。 例: ALTER ROLLBACK SEGMENT rbs01 SHRINK TO 2M;使回滾段離線 為了達到以下兩個目的將要回滾段離線: 1.阻止新的事務使用該回滾段; 2.該回滾段必須刪除。 語法: ALTER ROLLBACK SEGMENT rollback_segment OFFLINE;例: ALTER ROLLBACK SEGMENT rbs01 OFFLINE;說明: 假如有事務正在使用該回滾段,運行該命令后,回滾段的狀態(tài)將是PENDING OFFLINE。事務結束后,狀態(tài)將改為OFFLINE,可以通過V$ROLLSTAT查詢回滾段的狀態(tài)。 刪除回滾段 當回滾段不再需要或要重建以改變INITIAL,NEXT或MINEXTENTS參數時,可以將其刪除。要刪除回滾段,不許使該回滾段離線。 語法: DROP ROLLBACK SEGMENT rollback_segment;例: DROP ROLLBACK SEGMENT rbs01;查詢回滾段的信息 所用數據字典:DBA_ROLLBACK_SEGS 可以查詢的信息:回滾段的標識(SEGMENT_ID)、名稱(SEGMENT_NAME)、所在表空間TABLESPACE_NAME)、類型(OWNER)、狀態(tài)(STATUS)。 例: SQL>SELECT segment_name,tablespace_name,owner,status FROM dba_rollback_segs;回滾段的統計信息 數據字典:V$ROLLNAME,V$ROLLSTAT 例: SQL>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;回滾段的當前活動事務 數據字典:V$session,V$TRANSACTION 例: SQL>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;   USERNAME  XIDUSN   UBAFIL   UBABLK  USED_UBLK     -------  -------- ----------- ----------- -----------
                            SYSTEM     2     2    7      1   SCOTT      1     2    163     1   2 rows selected.回滾段的數量規(guī)劃 對于OLTP系統,存在大量的小事務處理,一般建議: 數量多的小回滾段;每四個事務一個回滾段;每個回滾段不要超過十個事務。 對于批處理,一般建議: 少的大回滾段;每個事務一個回滾段。 回滾段的問題及解決方法 問題一:事務要求的回滾段空間不夠,表現為表空間用滿(ORA-01560錯誤),回滾段擴展到達參數MAXEXTENTS的值(ORA-01628)。 解決方法:向回滾段表空間添加文件或使已有的文件變大;增加MAXEXTENTS的值。 問題二:讀一致性錯誤(ORA-01555 SNAPSHOT TOO OLD) 解決方法:增加MINEXTENTS的值,增加區(qū)的大小,設置一個高的OPTIMAL值。