oracle数据库UNDOTBS空间清理

DBA美眉休产假啦,一个90后的小姑娘已经是二胎了,我这80后实在有些惭愧。
我们产品线太多,交接工作难免有些遗漏,今天就出现了个问题。
数据库UNDOTBS1表空间报警:
##告警172.0.0.1_Oracle数据库读写分离--Oracle_TableSpace:UNDOTBS1使用率超过90,故障已持续0m(IP地址172.0.0.1;告警时间2020.03.11 09:47:53;检查项oracle.check[pre,UNDOTBS1] ;当前状态PROBLEM;值92 %)

一开始有点蒙圈,不知道UNDOTBS1是干吗用的,问了一下度娘。其实就是修改语句执行之后的后悔药。比如现在sal=800,我执行了UPDATE emp SET sal=1000 WHERE empno=7788之后发现,应该修改empno=7963,而不是7788,那么通过执行ROLLBACK语句可以取消事务变化。当执行ROLLBACK命令时,oracle会将UNDO段的UNDO数据800写回的数据段中。

但是这个表空间不能直接清空。需要按下面的流程操作:

1、重新建立一个新的undo表空间
    create undo tablespace undotbs2 datafile '/user/oracle/oradata/undotbs02.dbf' size 8048m;

2、设置数据库的undo表空间为新的undotbs2表空间
    alter system set undo_tablespace=undotbs2;

3、删除旧的undo表空间及其内容
    drop tablespace undotbs1 including contents;

4、在服务器上删除undotbs1对应的文件undotbs01.dbf
    rm undotbs01.dbf

5、执行语句查看表空间
    SELECT a.tablespace_name "表空间名", 
    total "表空间大小", 
    free "表空间剩余大小", 
    (total - free) "表空间使用大小", 
    total / (1024 * 1024 * 1024) "表空间大小(G)", 
    free / (1024 * 1024 * 1024) "表空间剩余大小(G)", 
    (total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)", 
    round((total - free) / total, 4) * 100 "使用率 %" 
    FROM (SELECT tablespace_name, SUM(bytes) free 
    FROM dba_free_space 
    GROUP BY tablespace_name) a, 
    (SELECT tablespace_name, SUM(bytes) total 
    FROM dba_data_files 
    GROUP BY tablespace_name) b 
    WHERE a.tablespace_name = b.tablespace_name;

但是即使按照上面的方式清空UNDOTBS表空间,主要频繁执行update语句也会很快让空间饱和,所以可以考虑关闭undo retention的自动优化特性,即将数据库参数_undo_autotune设置为FALSE,具体为:
Alter system set "_undo_autotune" = false;
该参数可以在线调整,不需要重启数据库,也不会影响系统额正常运行。

数据库工作千头万绪,真实难为dba美眉了,以后要再对人家更好一点,哈哈。


参考:
    https://blog.csdn.net/sinat_27933301/article/details/80932226
    http://blog.itpub.net/30430420/viewspace-1792355/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值