undo表空间切换

RAC中各实例使用各自的undo表空间。undo表空间满后的处理方式有两种:1、扩充undo表空间、2、创建新的undo表空间,并却换到新undo表空间。下面介绍第二种方式。
1、创建新的undo表空间 
  created tablespace undotbs3 datafile '+DATA/DSSP/DATAFILE/UNDOTBS03.dbf' size 10M autoextend on maxsize 200000M;
2、将新建的undo表空间设为本实例的undo表空间
  alter system set undo_tablespace = 'UNDOTBS3' scope=both;
3、验证本实例的undo表空间
  show parameter undo_tablespace;
4、等待原undo表空间offline

select r.status "status",
     r.segment_name "Name",  

r.tablespace_name "Tablespace",  

s.extents "Extents",  

TO_CHAR((s.bytes/1024/1024),'99999990.000') "Size"  

FROM sys.dba_rollback_segs      r, sys.dba_segments    s  

WHERE  r.segment_name = s.segment_name  

AND   s.segment_type IN ('ROLLBACK', 'TYPE2 UNDO')  

and   r.tablespace_name='UNDOTBS1'  and status='ONLINE' ;
   如果上面有状态为online的对象,可以查处对应的sid,serial#。
5、查看当前是什么在使用这个回滚段
     select r.name,s.sid,s.serial# serial

s.username ,s.machine ,  

t.start_time,t.status ,  

t.used_ublk ,  

substr(s.program, 1, 15)    "operate"  

FROM  v$session s, v$transaction t, v$rollname  r,v$rollstat  g  

WHERE  t.addr = s.taddr  

AND  t.xidusn = r.usn  

AND r.usn = g.usn  

ORDER BY t.used_ublk desc; 
6、根据sid查处具体的sql
     select sql_text from v$session a,v$sqltext_with_newlines b  

where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value  


and a.sid=&sid order by piece;
   如果查出的sql不重要可以kill掉。
7、删除原undo表空间
   drop tablespace undotbs2 including contents and datafiles;
  查看表空间及数据文件是否已被删除。
 如果不成功,可参考博文:undo无法drop。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26690043/viewspace-1327062/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26690043/viewspace-1327062/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值