暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ORACLE临时表空间满引发的一系列思考

原创 www 2024-07-10
73

一、背景

2024年某日,一个仓库系统业务用户反馈异常操作数据丢失,大批量用户权限失效,无法登录应用。


二、处理过程


2.1 使用闪回查询回退权限相关的数据库表

2.2 用户反馈查询数据提示临时表空间不足,同时扩容临时表空间


以上操作之后,应用恢复

三、

后面发现对临时表空间的理解不足


  SELECT d.tablespace_name,
           TO_CHAR(NVL(a.bytes / 1024 / 1024 / 1024, 0), '99,999,990.900') total_bytes,
           TO_CHAR(NVL(a.bytes - t.hwm, 0) / 1024 / 1024 / 1024,
                   '99999999.999') free_bytes,
           TO_CHAR(NVL(t.hwm / a.bytes * 100, 0), '990.00') HWM,
           TO_CHAR(NVL(t.bytes / a.bytes * 100, 0), '990.00') temp_using,
           sysdate
      FROM sys.dba_tablespaces d,
           (select tablespace_name, sum(bytes) bytes
              from dba_temp_files
             group by tablespace_name) a,
           (select tablespace_name,
                   sum(bytes_cached) hwm,
                   sum(bytes_used) bytes
              from v$temp_extent_pool
             group by tablespace_name) t
     WHERE d.tablespace_name = a.tablespace_name(+)
       AND d.tablespace_name = t.tablespace_name(+)
       AND d.extent_management like 'LOCAL'
       AND d.contents like 'TEMPORARY';
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论