收缩ORACLE的UNDO表空间

数据库运行一段时间后,特别是长事务对数据库做大量的DML操作后,UNDO表空间可能会比较大,可以采用下面方式进行UNDO表空间收缩

1、查看UNDO表空间信息

    show parameter undo

2、查看UNDO表空间对应的数据文件

  select * from v$datafile;

3、创建新的UNDO表空间

   create undo tablespace undo_newts datafile '....../undotb1.dbf' size 500m;

4、查看是否有活动的事务使用UNDO,若有事务正在活动,最好等没有活动事务进行操作,以防数据丢失

  select s.sid,s.serial#,rm.name,s.terminal,s.program,s.username,s.status

  from v$transaction t,v$rollstat t,v$rollname rm,v$session

  where t.addr=s.taddr and t.xidusn=r.usn and rm.usn=r.usn;

 有记录则说明有事务在用UNDO

5、切换UNDO表空间

  alter system undo_tablespace=undo_newts scope=both;

6、删除原有表空间,删除后再去操作系统对应路径看原有的数据文件是否已经删除,若没有删除,可以采用手工删除

    alter database datafile undo_file offline;

   drop tablespace old_undo_tablespace including contents and datafiles;

7、重启数据库系统

     shutdown immeidate;

     startup;

8、查看新的UNDO表空间信息和数据文件状态

   show parameter undo;

   select * from v$datafile;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值