自动undo管理下如何添加和删除回滚段
?以sys DBA帳戶登陸數據庫如下:
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 3月 11 08:46:26 2008
Copyright (c) 1982, 2005, Oracle.??All rights reserved.
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select segment_name as seg,tablespace_name as tab from dba_rollback_segs;
? ? SEG? ?? ?? ?? ?? ?? ?? ?? ?? ? TAB
? ? ------------------------------ ------------------------------
? ? SYSTEM? ?? ?? ?? ?? ?? ?? ?? ? SYSTEM
? ? _SYSSMU1$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU2$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU3$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU4$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU5$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU6$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU7$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU8$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU9$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1
? ? _SYSSMU10$? ?? ?? ?? ?? ?? ?? ?UNDOTBS1
? ?
? ? 已選擇11行。
? ?
SQL> select segment_name as seg,owner,status from dba_rollback_segs;
SEG? ?? ?? ?? ?? ?? ?? ?? ?? ? OWNER??STATUS
------------------------------ ------ ----------------
SYSTEM? ?? ?? ?? ?? ?? ?? ?? ? SYS? ? ONLINE
_SYSSMU1$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU2$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU3$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU4$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU5$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU6$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU7$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU8$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU9$? ?? ?? ?? ?? ?? ?? ? PUBLIC ONLINE
_SYSSMU10$? ?? ?? ?? ?? ?? ?? ?PUBLIC ONLINE
已選擇11行。
SQL>
SQL> select * from v$waitstat where class='undo header';
CLASS? ?? ?? ?? ?? ?? ? COUNT? ?? ? TIME
------------------ ---------- ----------
undo header? ?? ?? ?? ?? ?129? ?? ?? ? 4
SQL> select usn,extents,waits from v$rollstat;
? ?? ? USN? ? EXTENTS? ?? ?WAITS
---------- ---------- ----------
? ?? ?? ?0? ?? ?? ? 6? ?? ?? ? 0
? ?? ?? ?1? ?? ?? ? 3? ?? ?? ? 6
? ?? ?? ?2? ?? ?? ? 3? ?? ?? ? 8
? ?? ?? ?3? ?? ?? ? 3? ?? ?? ? 3
? ?? ?? ?4? ?? ?? ? 5? ?? ?? ? 5
? ?? ?? ?5? ?? ?? ? 3? ?? ?? ? 7
? ?? ?? ?6? ?? ?? ? 3? ?? ?? ? 3
? ?? ?? ?7? ?? ?? ? 4? ?? ?? ? 8
? ?? ?? ?8? ?? ?? ? 3? ?? ?? ? 3
? ?? ?? ?9? ?? ?? ?21? ?? ?? ? 6
? ?? ???10? ?? ?? ? 4? ?? ?? ? 4
已選擇11行。
SQL>
SQL> select s.usn,n.name,s.extents as ext,s.optsize as opt,s.hwmsize as hw,s.status as st
??2? ?from v$rollstat s, v$rollname n where s.usn=n.usn;
? ?? ? USN NAME? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? EXT? ?? ???OPT? ?? ?? ?HW
---------- ------------------------------ ---------- ---------- ----------
ST
---------------
? ?? ?? ?0 SYSTEM? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 6? ?? ?? ?? ?? ? 385024
ONLINE
? ?? ?? ?1 _SYSSMU1$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 3? ?? ?? ?? ???16900096
ONLINE
? ?? ?? ?2 _SYSSMU2$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 3? ?? ?? ?? ?? ?8511488
ONLINE
? ?? ? USN NAME? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? EXT? ?? ???OPT? ?? ?? ?HW
---------- ------------------------------ ---------- ---------- ----------
ST
---------------
? ?? ?? ?3 _SYSSMU3$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 3? ?? ?? ?? ?? ?5365760
ONLINE
? ?? ?? ?4 _SYSSMU4$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 5? ?? ?? ?? ?? ?8511488
ONLINE
? ?? ?? ?5 _SYSSMU5$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 3? ?? ?? ?? ???23257088
ONLINE
? ?? ? USN NAME? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? EXT? ?? ???OPT? ?? ?? ?HW
---------- ------------------------------ ---------- ---------- ----------
ST
---------------
? ?? ?? ?6 _SYSSMU6$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 3? ?? ?? ?? ?? ?4317184
ONLINE
? ?? ?? ?7 _SYSSMU7$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 4? ?? ?? ?? ???18997248
ONLINE
? ?? ?? ?8 _SYSSMU8$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 3? ?? ?? ?? ?? ?6414336
ONLINE
? ?? ? USN NAME? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? EXT? ?? ???OPT? ?? ?? ?HW
---------- ------------------------------ ---------- ---------- ----------
ST
---------------
? ?? ?? ?9 _SYSSMU9$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?21? ?? ?? ?? ???20045824
ONLINE
? ?? ???10 _SYSSMU10$? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?4? ?? ?? ?? ???12705792
ONLINE
已選擇11行。
SQL>
??通過以上查詢,知道數據庫的回滾段爭用情況比較嚴重。各位幫忙分析下,是不是需要增加回滾段的數量,
或者擴大回滾段的大小來解決回滾段爭用的情況。
??
我嘗試在自動管理的模式下,建立普通表空間RBS.然后執行如下命令:
SQL> CREATE PUBLIC ROLLBACK SEGMENT R03? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ?? ?2??TABLESPACE RBS? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
? ?? ?3? ?STORAGE? ? (? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ?? ?4? ?INITIAL? ?? ?? ? 200K? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ?? ?5? ?NEXT? ?? ?? ?? ? 200K? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ?? ?6? ?MINEXTENTS? ?? ? 20? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
? ?? ?7??);? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? 回退段已創建。? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
SQL> ALTER ROLLBACK SEGMENT R03 ONLINE;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? 回退段已變更。? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
SQL> select segment_name as seg,tablespace_name as tab from dba_rollback_segs;
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? SEG? ?? ?? ?? ?? ?? ?? ?? ?? ? TAB? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
? ? ------------------------------ ------------------------------? ?? ?? ?? ?? ???
? ? SYSTEM? ?? ?? ?? ?? ?? ?? ?? ? SYSTEM? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
? ? _SYSSMU1$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU2$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU3$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU4$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU5$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU6$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU7$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU8$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU9$? ?? ?? ?? ?? ?? ?? ? UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? _SYSSMU10$? ?? ?? ?? ?? ?? ?? ?UNDOTBS1? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?
? ? 已選擇11行。? ?? ?? ?
SQL>
由于Oracle用的是默認回滾段自動管理,這個時候是看不到的,需要修改到MANUAL模式下才可創建。
請問怎樣在不改變回滾段自動管理的模式下,增加回滾段來解決回滾段的爭用問題。
----------------------------------------------------------------------------------------------------------------------------------------
在某些場景里,如undo header競爭,增加回滾段可緩解競爭。 首先設置隱含參數_smu_debug_mode為4,進入debug模式。alter system set "_smu_debug_mode" = 4 scope = both; 接著就可以創建新的回滾段,需要指定undo表空間否則無法將其ONLINE。
create public rollback segment "_SYSSMU11$" tablespace undotbs1;
alter rollback segment "_SYSSMU11$" online; 默認情況下在undo表空間有10g回滾段
需要注意的是數據庫重啟后,超過10個回滾段的其他回滾段不會自動被系統online,少于10個回滾段系統也不會創建新的回滾段。
?
總結
以上是生活随笔為你收集整理的自动undo管理下如何添加和删除回滚段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQLPLUS命令的使用大全
- 下一篇: 教你快速掌握如何使用“Opatch”打补