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

Oracle临时表空间数据文件不存在处理方法

394

一、问题描述

开发单位反馈数据库出现ORA-01157和ORA-01110错误。从错误信息可以初步判断是临时数据文件读取异常。原因有可能是数据文件只建在RAC集群的某个本地节点或数据文件实际就不存在。

二、问题排查

1、登录数据库,查看dba_temp_files视图信息,发现问题可以重现。

    select FILE_NAME, TABLESPACE_NAME from dba_temp_files
    *
    ERROR at line 1:
    ORA-01157: cannot identify/lock data file 201 - see DBWR trace file
    ORA-01110: data file 201: '/data/oracle/oradata/orcl/temp01.dbf'

    2、通过Linux命令检查,确认文件/data/oracle/oradata/orcl/temp01.dbf不存在。

      !ls data/oracle/oradata/orcl/temp01.dbf
      ls: cannot access data/oracle/oradata/orcl/temp01.dbf: No such file or directory

      3、查看数据库的默认临时表空间为TEMP102,查询所有用户默认临时表空间为TEMP102。查看每个临时数据文件路径信息以及对应的表空间。

        SELECT PROPERTY_VALUE FROM database_properties 
        WHERE property_name = 'DEFAULT_TEMP_TABLESPACE';
        -->TEMP102


        select distinct TEMPORARY_TABLESPACE from dba_users;
        -->TEMP102


        select TS#,FILE#,NAME from v$tempfile;
        TS# FILE# NAME
        ---------- ---------- --------------------------------------------------------------------------------
        3 1 data/oracle/oradata/orcl/temp01.dbf
        7 2 /data/oracle/product/11.2.0/db_1/dbs/dataoradataapexbpm_temp.dbf
        8 3 /data/oracle/oradata/orcl/aas_temp.DBF
        12 4 +DATA/orcl/tempfile/temp102.dbf


        select TS#,NAME from v$tablespace where ts# in (3,7,8,12);
        TS# NAME
        ---------- ------------------------------
        3 TEMP
        7 APEXBPM_TEMP
        8 AAS_TEMP
        12 TEMP102

        三、解决办法

        1、首先对数据文件路径不正确的临时表空间添加新的数据文件。

          alter tablespace AAS_TEMP add tempfile '+DATA' size 10m; 
          alter tablespace TEMP add tempfile '+DATA' size 10m;
          alter tablespace APEXBPM_TEMP add tempfile '+DATA' size 10m; 

          2、其次删除异常的数据文件,对应的文件编号要核实清楚。

            alter tablespace AAS_TEMP drop tempfile 3;
            alter tablespace TEMP drop tempfile 1;
            alter tablespace APEXBPM_TEMP drop tempfile 2;

            3、检查数据库的告警日志,可以看到异常的数据文件已经被成功删除。

              Sun Dec 01 16:44:49 2024
              alter tablespace TEMP drop tempfile 1
              Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_24382.trc:
              ORA-01122: database file 201 failed verification check
              ORA-01110: data file 201: '/data/oracle/oradata/orcl/temp01.dbf'
              ORA-01565: error in identifying file '/data/oracle/oradata/orcl/temp01.dbf'
              ORA-27037: unable to obtain file status
              Linux-x86_64 Error: 2: No such file or directory
              Additional information: 3
              Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_24382.trc:
              ORA-01258: unable to delete temporary file /data/oracle/oradata/orcl/temp01.dbf
              Completed: alter tablespace TEMP drop tempfile 1

              4、查看临时表空间的数据文件路径已经正常了。

                select TS#,FILE#,NAME from v$tempfile;

                5、RAC数据库集群的数据文件存在ASM共享磁盘。其中ASM磁盘组由多个ASM磁盘组成。

                近期热门文章:
                👉如何利用RMAN Debug命令来诊断问题
                👉达梦数据守护集群异常脑裂处理案例总结
                👉Linux运维技能-du命令常见用例总结
                👉Oracle 10g 备份恢复及容灾部署技术问题总结
                👉TiDB 7.5 实验测试环境搭建及小插曲处理
                👉DBA实验手册第3讲 运用bbed工具恢复delete误删除的数据
                👉DBA实验手册第5讲 运用bbed工具恢复truncate表及反向构造段头块
                全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

                文章转载自数据库运维之道,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论