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

(ORA-01115、ORA-01110、ORA-27091、ORA-27072)-表空间所在的目录没有可用空间导致收集统计信息失败

原创 huawei 2021-03-02
950

(ORA-01115、ORA-01110、ORA-27091、ORA-27072)-表空间所在的目录没有可用空间导致收集统计信息失败

现象描述

收集数据库统计信息失败,系统显示如下错误信息:

SQL> execute dbms_stats.GATHER_SCHEMA_STATS(ownname=>'imuse01',estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE);

BEGIN dbms_stats.GATHER_SCHEMA_STATS(ownname=>'imuse01',estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SI
ZE); END;
*
ERROR at line 1:
ORA-01115: IO error reading block from file 8 (block # 10612)
ORA-01110: data file 8: '/dev/md/oracledg/rdsk/d714'
ORA-27091: skgfqio: unable to queue I/O
ORA-27072: skgfdisp: I/O error
SVR4 Error: 12: Not enough space
Additional information: 10611
ORA-06512: at "SYS.DBMS_STATS", line 10301
ORA-06512: at "SYS.DBMS_STATS", line 10795
ORA-06512: at "SYS.DBMS_STATS", line 10982
ORA-06512: at "SYS.DBMS_STATS", line 11036
ORA-06512: at "SYS.DBMS_STATS", line 11013
ORA-06512: at line 1

可能原因

表空间所在磁盘的可用空间不足,导致收集数据库统计信息失败。

处理步骤

  1. oracle用户登录数据库所在机器。
  2. sysdba用户连接数据库。

    % sqlplus / as sysdba

  3. 检查表空间所在路径。

    SQL> select file_name,tablespace_name from dba_temp_files;

    系统显示如下信息:
    FILE_NAME
    --------------------------------------------------------------------------------
    TABLESPACE_NAME
    ------------------------------
    /dev/md/oracledg/rdsk/d714
    TEMP
    由以上执行结果可知,“/dev/md/oracledg/rdsk/d714”为表空间所在路径。
  4. 检查表空间的利用率。

    SQL> select total.tablespace_name, round(total.MB, 2) as Total_MB, round(total.MB - free.MB, 2) as Used_MB, round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_free_space group by tablespace_name) free, (select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name) total 11 where free.tablespace_name = total.tablespace_name;

    系统显示如下信息:
    TABLESPACE_NAME                  TOTAL_MB    USED_MB USED_PCT
    ------------------------------ ---------- ---------- -----------------------------------------
    SYSAUX                                870     798.88 91.82%
    USERS                                 250       1.06 .43%
    SYSTEM                               1000     736.81 73.68%
    UNDOTBS2                               50      14.25 28.5%
    PERFSTAT                              200     152.75 76.38%
    

    是否增加表空间的“USED_PCT”需要结合业务、数据增长速率具体情况具体分析。比如对于只是read-only的表空间,它的数据根本就不会长,永远都不用增加(只要表空间还是read-only下)。

  5. 增加表空间。

    • 增长现有的数据文件

      SQL> alter database datafile 'xxxxx' resize xxxxM;

    • 增加数据文件。

      SQL> alter tablespace xxx add datafile 'xxx\xxx\xxx.dbf ' size xxxM;

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论