Oracle 重建UNDO 表空间

采用delete的方法删除一个100G表中的部分历史数据,结果删除过程出现了ORA-30036:无法按8扩展段的错误,原因是undo表空间满了。
1.使用如下语句检查表空间,发现表空间已经到了原来的最大设定值,99.7%已经被使用;
 select b.tablespace_name as "表空间",       b.file_name as "物理文件名",
       b.bytes / 1024 / 1024 as "当前大小(M)",
       (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 as "已使用(M)",
       substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) as "使用率(%)",
       case b.autoextensible
         when 'YES' then '是'
         else '否'
       end as "是否自增",
       b.maxbytes / 1024 / 1024 as "自增最大容量(M)"
  from dba_free_space a, dba_data_files b
 where a.file_id = b.file_id
   and a.tablespace_name in ('UNDOTBS1')
 group by b.tablespace_name, b.file_name, b.bytes, b.autoextensible, b.maxbytes
 order by b.tablespace_name;


2.创建undo表空间UNDOTBS2
create undo tablespace undotbs2 datafile 'D:\ORACLEDB\ORADATA\QQS\UNDOTBS02.DBF' size 1024M reuse autoextend on next 100M maxsize unlimited;
alter system set undo_tablespace=undotbs2 scope=both;


3.更spfile配置文件
alter   system set undo_tablespace=undotbs2 scope=both;


4.检查系统是否已经切换到undotbs2上,确认undotbs1已经offline
select   segment_name, tablespace_name, status from dba_rollback_segs;


5.删除原来的undotbs1
drop   tablespace undotbs1 including   contents;


6.删除文件UNDOTBS01.DBF
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值