undo線上切換步驟筆記

yezhibin發表於2010-07-16
一、相關步驟:

1、檢視undo相關引數
 SQL>show parameter undo

2、建立新的undo空間
SQL>create undo tablespace undotbs2
          datafile '/xxx/xxx/xxx/undo2.dbs size 4096M

3、修改spfile
SQL>alter system set undo_tablespace=undotbs2 scope=both;

4、刪除undotbs1表空間
SQL>drop tablespace undotbs1 including contents and datafiles;

如果出現ora-30013, 說明undo正在使用不能刪除,則需要以下語句判斷是哪些session正在使用undo

5、檢視哪些session正在使用undo

SQL>select rn.name,rs.status, sn.username, sn.sid, sn.serial#
          from v$rollname rn, v$rollstat rs, v$transaction ts, v$session sn
          where rn.usn=rs.usn
          and rn.usn=ts.xidusn
          and ts.sess_addr= sn.saddr
          and rn.name in ( select segment_name from dba_segments
             where tablespace_name='UNDOTBS1')

6、讓sid使用者自己退出,或者直接刪除SESSION
SQL>alter system kill session 'sid, serial#';

7、直接等待undo_retentation=900秒時間,然後再刪除undotbs1表空間就能成功

二、適用範圍:

因為業務要求,我們建立了一個很大的undo表空間,業務完成後,我們需要縮小undo空間,可採用以上步驟。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/354732/viewspace-668242/,如需轉載,請註明出處,否則將追究法律責任。

相關文章