1.背景
数据库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 %)

2.操作排查问题
(1)看到此报错,一般认为数据库的表空间不足,查询之后,表空间还存在很大的空余,之后认真查看了一下表空间名称,一看是UNDOTBS1(回滚表空间),这就知道什么原因了。
(2)知识普及:UNDOTBS1是一个回滚表空间,随着数据库的使用,默认会自动扩展。当它增大到一定程度,占用了过多的磁盘空间时,就需要进行清理了。
(3)网上查询一下,发现有好多说操作要重启数据库,由于数据库上正在跑着数据,不能重启,所以这种方案被否决。

3.解决方案
这里以表空间UNDOTBS1为例,undotbs2 为新建的表空间
(1)登录数据库服务器
执行:su - oracle
(2)使用dab登录
执行:sqlplus / as sysdba
(3)查询表空间信息
执行:select * from dba_data_files;
(4)查询当前使用的undotbs表空间
SQL>show parameters undo;
(5)重新建立一个新的undo表空间
执行:create undo tablespace undotbs2 datafile '/user/oracle/oradata/undotbs02.dbf' size 8048m;
(6)设置数据库的undo表空间为新的undotbs2表空间
执行:alter system set undo_tablespace=undotbs2;
(7)删除旧的undo表空间及其内容
执行:drop tablespace undotbs1 including contents and datafiles;

(8)再次执行语句查看表空间

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;

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

(10)增大临时文件大小
alter database tempfile ‘/user/oracle/oradata/undotbs02.dbf’ RESIZE 4096M;

参考:https://blog.csdn.net/ziele_008/article/details/104792752

oracle数据库UNDOTBS空间清理相关推荐

  1. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  2. Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看

    Oracle 数据库表空间 第一章:表空间的拓展 ① 查看剩余表空间大小 ② 查看表空间文件路径 ③ 通过新增表空间文件拓展表空间 ④ 查看表空间已分配大小 第一章:表空间的拓展 ① 查看剩余表空间大 ...

  3. linux数据库创建表空间语句,如何用LINUX用命令创建ORACLE数据库表空间和用户

    如何用LINUX用命令创建ORACLE数据库表空间和用户 文本模式下如何建 更新时间:2019-06-21 19:36 最满意答案 先su 到 oracle用户,SYS用户以DBA身份登陆 //创建临 ...

  4. 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

    http://suan2046.iteye.com/blog/379539 标题:查看Oracle数据库表空间大小,是否需要增加表空间的数据文件 在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问 ...

  5. 创建oracle 数据库表空间,角色,用户的sql语句

    创建oracle 数据库表空间,角色,用户的sql语句 1.创建角色 CREATE ROLE "QIUDINGROLE" NOT IDENTIFIED; GRANT "C ...

  6. oracle中的sql文本类型,Oracle数据库的空间数据类型

    Oracle数据库中空间数据类型随着GIS.CAD/CAM的广泛应用,对数据库系统提出了更高的要求,不仅要存储大量空间几何数据,且以事物的空间关系作为查询或处理的主要内容.Oracle数据库从9i开始 ...

  7. 更改oracle 表空间大小,更改oracle数据库表空间大小

    Oracle表空间扩展 使用oracle时可能遇到无法通过8192在表空间中扩展错误,原因是数据库的表空间不足. oracle表空间数据文件容量与db_block_size有关,在初始建库时指定DB_ ...

  8. MSSQL数据库磁盘空间清理

    本文主要向大家介绍了SQLServer数据库磁盘空间清理,通过具体的内容向大家展示,希望能对大家学习SQLServer数据库有所帮助.SQL Server在删除数据后,会重新利用这部分空间,所以如果不 ...

  9. 唐老师 oracle,ORACLE数据库表空间的监控和维护_快速发表职称论文网

    ORACLE数据库表空间的监控和维护 摘 要:通过ORACLE数据库内部管理表和视图加强数据库系统数据表空间的监控和维护. 关键字:数据库表空间监控 ORACLE数据库在系统性能,安全性以及可靠性方面 ...

最新文章

  1. 2020年人工智能汽车将出台多项标准
  2. 前端模块化,AMD与CMD的区别
  3. ucla 计算机专业 本科申请,美国计算机专业申请
  4. solr部署在tomcat下
  5. nexus 手动增加_如何使用Google的工厂图像手动升级Nexus设备
  6. 嵌入式知识概要(1)
  7. Java_基础—用LinkedList模拟栈数据结构的集合并测试
  8. 比 Windows DNS 蠕虫漏洞更严重!SharePoint 反序列化RCE漏洞详情已发布,速修复
  9. [蓝桥杯]基础练习 十六进制转八进制
  10. Configure universal group membership caching
  11. 字符HTML编码类(转)
  12. MyCat全局序列之本地时间戳方式
  13. Ubuntu中Scala下载
  14. Mac OS X 下 Eclipse 安装 SVN 插件 subclipse 及JavaHL 方法
  15. 自控原理学习笔记---控制系统稳定性分析
  16. 【计蒜客 A1594 --- 封印之门】floyd
  17. Linux CP文件夹略过目录的解决方法
  18. 只有一行VNC server running on ’::1:5900' 没有其他输出
  19. uclinux不是linux
  20. mysql死锁解决方法_mysql出现死锁的原因及解决方案

热门文章

  1. 安装 GPU 版本的 tensorflow 完整版本
  2. 图像识别技术解析:手写数字识别(一)
  3. 基于python中jieba包的中文分词中详细使用(二)
  4. [网鼎杯 2020 朱雀组]phpweb
  5. 用友T6库存管理中,入库单保存后在单据列表里找不到此单据
  6. 集成 AliPay - 支付宝
  7. 一致性协议-ChainPaxos详解
  8. RHCE培训学习摘要
  9. 旅行青蛙逆向破解的自我实践之旅
  10. 【jquery】优化仿淘宝五星评价打分(附注释)