ORA-25153: Temporary Tablespace is Empty
2016-10-25 23:07 abce 阅读(1293) 评论(0) 编辑 收藏 举报在一测试环境做测试的时候发生以下错误:
1 2 3 4 5 6 7 8 9 10 11 12 | SQL> exec dbms_stats.gather_table_stats(ownname=> 'SYS' ,tabname=> 'TT' ,method_opt=> 'for columns size 1 id' , cascade => true ); BEGIN dbms_stats.gather_table_stats(ownname=> 'SYS' ,tabname=> 'TT' ,method_opt=> 'for columns size 1 id' , cascade => true ); END ; * ERROR at line 1: ORA-25153: Temporary Tablespace is Empty ORA-06512: at "SYS.DBMS_STATS" , line 24281 ORA-06512: at "SYS.DBMS_STATS" , line 24332 ORA-06512: at line 1 SQL> |
查看临时表空间:temp表空间是处于online状态
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | SQL> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS ------------------------------ --------- SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE EXAMPLE ONLINE TEST ONLINE 7 rows selected. SQL> |
但是没有发现临时文件:
1 2 | SQL> select name from v$tempfile; --发现临时文件丢失 no rows selected |
查看物理文件:文理文件仍然存在
1 2 3 4 5 6 7 8 9 10 11 12 | $ ll total 2678324 -rw-r ----- 1 ora11 oinstall 10076160 Oct 25 14:39 control01.ctl -rw-r ----- 1 ora11 oinstall 10076160 Oct 25 14:39 control02.ctl -rw-r ----- 1 ora11 oinstall 363077632 Oct 25 14:33 example01.dbf -rw-r ----- 1 ora11 oinstall 52429312 Oct 25 14:33 redo01.log -rw-r ----- 1 ora11 oinstall 52429312 Oct 25 14:33 redo02.log -rw-r ----- 1 ora11 oinstall 52429312 Oct 25 14:38 redo03.log -rw-r ----- 1 ora11 oinstall 587210752 Oct 25 14:38 sysaux01.dbf -rw-r ----- 1 ora11 oinstall 922755072 Oct 25 14:38 system01.dbf -rw-r ----- 1 ora11 oinstall 62922752 Aug 14 06:02 temp01.dbf -rw-r ----- 1 ora11 oinstall 52436992 Oct 25 14:33 test01.dbf |
从物理文件的时间戳可以看出temp文件最后一次访问时间
根据时间查看alert日志,发现在对应的时间做个重建控制文件操作,并且在重建控制完成后启动数据库后在alert日志中发现以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 | ********************************************************************* WARNING: The following temporary tablespaces contain no files. This condition can occur when a backup controlfile has been restored. It may be necessary to add files to these tablespaces. That can be done using the SQL statement: ALTER TABLESPACE <tablespace_name> ADD TEMPFILE Alternatively, if these temporary tablespaces are no longer needed, then they can be dropped. Empty temporary tablespace: TEMP ********************************************************************* |
说明是重建控制文件后,丢失了临时文件。(rman恢复数据库时也会发生类似现象)
只要把临时文件重新添加即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/db11/temp01.dbf' ; Tablespace altered. SQL> select * from v$tempfile; FILE# CREATION_CHANGE# CREATION_ TS# RFILE# STATUS ENABLED BYTES BLOCKS CREATE_BYTES BLOCK_SIZE NAME ---------- ---------------- --------- ---------- ---------- ------- ---------- ---------- ---------- ------------ ---------- ---------------------------------------- 1 1727770 25-OCT-16 3 1 ONLINE READ WRITE 62914560 7680 62914560 8192 /u01/app/oracle/oradata/db11/temp01.dbf SQL> select tablespace_name,file_name from dba_temp_files; TABLESPACE_NAME FILE_NAME ------------------------------ ------------------------------------------------------------------------------------------- TEMP /u01/app/oracle/oradata/db11/temp01.dbf SQL> exec dbms_stats.gather_table_stats(ownname=> 'SYS' ,tabname=> 'TT' ,method_opt=> 'for columns size 1 id' , cascade => true ); PL/SQL procedure successfully completed. SQL> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2015-10-25 创建一个已经存在数据的MySQL复制