在AUM下,我们是不能进行手工回滚段管理的。通过设置隐含参数_smu_debug_mode 我们可以进行手工回滚段的管理。这在回滚段出现问题的时候很有用。
SQL> SHOW PARAMETER UNDO
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS02
SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU20$ OFFLINE
_SYSSMU11$ ONLINE
_SYSSMU12$ ONLINE
_SYSSMU13$ ONLINE
_SYSSMU14$ ONLINE
_SYSSMU15$ ONLINE
_SYSSMU16$ ONLINE
_SYSSMU17$ ONLINE
_SYSSMU18$ ONLINE
_SYSSMU19$ ONLINE
已选择11行。
SQL> ALTER ROLLBACK SEGMENT "_SYSSMU20$" ONLINE;
回退段已变更。
SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU20$ OFFLINE
_SYSSMU11$ ONLINE
_SYSSMU12$ ONLINE
_SYSSMU13$ ONLINE
_SYSSMU14$ ONLINE
_SYSSMU15$ ONLINE
_SYSSMU16$ ONLINE
_SYSSMU17$ ONLINE
_SYSSMU18$ ONLINE
_SYSSMU19$ ONLINE
已选择11行。
SQL> ALTER ROLLBACK SEGMENT "_SYSSMU11" OFFLINE;
回退段已变更。
SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU20$ OFFLINE
_SYSSMU11$ ONLINE
_SYSSMU12$ ONLINE
_SYSSMU13$ ONLINE
_SYSSMU14$ ONLINE
_SYSSMU15$ ONLINE
_SYSSMU16$ ONLINE
_SYSSMU17$ ONLINE
_SYSSMU18$ ONLINE
_SYSSMU19$ ONLINE
已选择11行。
可以看到命令不起作用。
SQL> DROP ROLLBACK SEGMENT "_SYSSMU20$";
DROP ROLLBACK SEGMENT "_SYSSMU20$"
*
第 1 行出现错误:
ORA-30025: 不允许删除段 '_SYSSMU20$' (在还原表空间中)
SQL> DROP ROLLBACK SEGMENT "_SYSSMU11$";
DROP ROLLBACK SEGMENT "_SYSSMU11$"
*
第 1 行出现错误:
ORA-30025: 不允许删除段 '_SYSSMU11$' (在还原表空间中)
SQL> ALTER SYSTEM SET "_SMU_DEBUG_MODE"=4;
系统已更改。
SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU20$ OFFLINE
_SYSSMU11$ ONLINE
_SYSSMU12$ ONLINE
_SYSSMU13$ ONLINE
_SYSSMU14$ ONLINE
_SYSSMU15$ ONLINE
_SYSSMU16$ ONLINE
_SYSSMU17$ ONLINE
_SYSSMU18$ ONLINE
_SYSSMU19$ ONLINE
已选择11行。
SQL> ALTER ROLLBACK SEGMENT "_SYSSMU20$" ONLINE;
回退段已变更。
SQL> ALTER ROLLBACK SEGMENT "_SYSSMU11$" OFFLINE;
回退段已变更。
SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU20$ ONLINE
_SYSSMU11$ OFFLINE
_SYSSMU12$ ONLINE
_SYSSMU13$ ONLINE
_SYSSMU14$ ONLINE
_SYSSMU15$ ONLINE
_SYSSMU16$ ONLINE
_SYSSMU17$ ONLINE
_SYSSMU18$ ONLINE
_SYSSMU19$ ONLINE
已选择11行。
SQL> DROP ROLLBACK SEGMENT "_SYSSMU11$";
回退段已删除。
SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU20$ ONLINE
_SYSSMU12$ ONLINE
_SYSSMU13$ ONLINE
_SYSSMU14$ ONLINE
_SYSSMU15$ ONLINE
_SYSSMU16$ ONLINE
_SYSSMU17$ ONLINE
_SYSSMU18$ ONLINE
_SYSSMU19$ ONLINE
已选择10行。
SQL> CREATE ROLLBACK SEGMENT "_SYSSMU11$" TABLESPACE UNDOTBS02;
回退段已创建。
SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU20$ ONLINE
_SYSSMU11$ OFFLINE
_SYSSMU12$ ONLINE
_SYSSMU13$ ONLINE
_SYSSMU14$ ONLINE
_SYSSMU15$ ONLINE
_SYSSMU16$ ONLINE
_SYSSMU17$ ONLINE
_SYSSMU18$ ONLINE
_SYSSMU19$ ONLINE
已选择11行。
SQL> ALTER ROLLBACK SEGMENT "_SYSSMU11" ONLINE;
ALTER ROLLBACK SEGMENT "_SYSSMU11" ONLINE
*
第 1 行出现错误:
ORA-01534: 回退段 '_SYSSMU11' 不存在
SQL> ALTER ROLLBACK SEGMENT "_SYSSMU11$" ONLINE;
回退段已变更。
SQL> SELECT SEGMENT_NAME,STATUS FROM DBA_ROLLBACK_SEGS;
SEGMENT_NAME STATUS
------------------------------ ----------------
SYSTEM ONLINE
_SYSSMU20$ ONLINE
_SYSSMU11$ ONLINE
_SYSSMU12$ ONLINE
_SYSSMU13$ ONLINE
_SYSSMU14$ ONLINE
_SYSSMU15$ ONLINE
_SYSSMU16$ ONLINE
_SYSSMU17$ ONLINE
_SYSSMU18$ ONLINE
_SYSSMU19$ ONLINE
已选择11行。
SQL>
阅读(1375) | 评论(0) | 转发(0) |