背景:两套同样的测试环境,一套数据库Undo使用率一直处于99%,已经持续了很长一段时间,而另外一套几乎为0

排查手段:

1. 查看占用高的undo表空间使用情况,发现都是unexpired的状态

-- 整体undo使用情况
select  b.tablespace_name,nvl(used_undo, 0) "USED_UNDO(M)",total_undo "Total_undo(M)",trunc(nvl(used_undo, 0) / total_undo * 100, 2) used_PCTfrom (select nvl(sum(bytes / 1024 / 1024), 0) used_undo, tablespace_namefrom dba_undo_extentswhere status in ('ACTIVE', 'UNEXPIRED')and tablespace_name in(select value from v$parameter where name = 'undo_tablespace')group by tablespace_name) a,(select tablespace_name, sum(bytes / 1024 / 1024) total_undofrom dba_data_fileswhere tablespace_name in(select value from v$parameter where name = 'undo_tablespace')group by tablespace_name) bwhere a.tablespace_name(+) = b.tablespace_name;
-- 各状态undo使用情况统计
select tablespace_name,status,sum(bytes)/1024/1024 MB from dba_undo_extents
where tablespace_name like 'UNDOTBS%'
group by tablespace_name,status
order by 1

2. 确认undo配置。

show parameter undo  --undo_retention配置为默认值900

select file_name,autoextensible from dba_data_files where tablespace_name='UNDOTBS1'; --已关闭自动扩展

select tablespace_name,retention from dba_tablespaces where tablespace_name='UNDOTBS1';  --nogurantee,说明暂时还不会报错,Undo会覆盖已过期的

3. 搜索引擎得到的

听闻Oracle从10.2开始自动启用了undo表空间的自动调增功能,可以通过查看v$undostat.tuned_undoretention确认真实的undo_retention,经查看tuned_undoretention都是900,可以排除这种原因。

但仔细一看,v$undostat中事务的begin_time为2018年9月,现在才6月。。

到此原因就已经清楚了,主机往前调整过时间,调整期间这部分9月份的事务是永远不会过期的!只有默默挨到9月份

4. 解决方法

主机时间向前调整比如从9月份调整到3月份会出现此问题,9月份的事务一直不能被覆盖,往后调整则没有该问题。重启数据库后事务时间即可与主机时间同步。但仍然需要重建undo表空间:新建Undotbs2并进行切换,删除原有的undotbs1,不细说了

undo表空间使用率99%居高不下相关推荐

  1. 万答#18,MySQL8.0 如何快速回收膨胀的UNDO表空间

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 背 ...

  2. SYSAUX表空间使用率高问题处理

    一般来讲除开业务数据存放的表空间,DBA要着重关注SYSTEM,SYSAUX,UNDO,TEMP表空间,SYSTEM表空间的大小一般是衡定的,UNDO和TEMP表空间的大小由数据库的业务情况决定,而S ...

  3. undo表空间文件丢失恢复(3)--无备份无redo的情况下恢复

    undo表空间的数据文件丢失,如果没有备份的情况下,而且redo也不可用,这个时候就要采用隐藏参数来恢复,下边给出一个例子. undo表空间文件丢失恢复(1)--有备份的情况下恢复:http://bl ...

  4. oracle的表空间的检查,oracle数据库检查所有表空间使用率的脚本

    oracle数据库检查所有表空间使用率的脚本 REM tablespace report set linesize 200 select a.tablespace_name, round(a.byte ...

  5. Oracle数据库查看表空间使用率

    12C之前或NON-CDB模式的数据库查看表空间使用率 set linesize 160 set pagesize 999 col TABLESPACE_NAME for a18 col TBS_TO ...

  6. UNDO表空间满问题

    问题现象 业务日志大量报错: ; nested exception is java.sql.SQLException: ORA-30036: unable to extend segment by 8 ...

  7. oracle 10g undo 管理,Oracle 10g undo表空间管理

    一.oracle 9i起,有两种undo管理方式:AUM Automatic Undo ManagementMUN Manual Undo Management建议使用 AUM ,下面只讨论AUM 一 ...

  8. UNDO表空间损坏,爆满,ORA-600[4194]/[4193]错误解决

    模拟手工删除UNDO表空间 在ORADATA 中把UNDOTBS01.DBF 删除 模拟启库 SQL> STARUP; * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 2 ...

  9. oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决

    在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...

最新文章

  1. wamp php非线程安全,wampserver PHP多版本切换
  2. vue $emit $on 非父子非兄弟组件传值
  3. c++ socket框架
  4. python中文读音ndarray-numpy中的ndarray方法和属性详解
  5. MATLAB从入门到精通-matlab图像处理标记点追踪识别程序
  6. nyoj--79--导弹拦截(动态规划)
  7. MySQL百万级/千万级数据存储解决方案
  8. MySQL的INSERT INTO··· ON DUPLICATE KEY UPDATE使用的几种情况
  9. Python 数据科学入门教程:TensorFlow 聊天机器人
  10. 再谈初学者关心的ssh应用方方面面
  11. 编辑距离(线性DP+暴力匹配)
  12. x264源码下载信息
  13. 【基础教程】信噪比+香农公式【1748期】
  14. 极通ewebs3.2企业版介绍
  15. 如何高效阅读一篇英文学术类论文?
  16. Telink blt_soft_timer 改进
  17. 计算机科任学 排名,2018软科中国最好学科排名正式发布
  18. abs函数的使用方法 oracle,abs函数什么意思oracle
  19. 【UE4_蓝图】map函数以及Clamped和Unclamped的区别
  20. web前端期末大作业 HTML+CSS+JavaScript仿唯品会购物商城网页设计实例 企业网站制作

热门文章

  1. 市场营销重要十要素?
  2. 网络信息传播与控制综述
  3. Nodejs: TypeError: The super constructor to “inherits“ must not be null or undefined
  4. 印度为监狱装上 AI ,监控 700 所监狱内恶性事件
  5. XZ_Python之使用关键词抓取京东搜索页面数据
  6. 解决谷歌chrome浏览器主页被强制篡改2345、桔梗网、360导航的问题。
  7. 英特尔与波士顿咨询公司联合向企业客户推售 AI
  8. 异端审判器 一个泛用型文本聚类模型的实现(2)
  9. 计算机导论基于计算思维答案,基于计算思维的计算机导论课程改革实践.PDF
  10. Android系统开机启动流程