关于ORA-01187: cannot read from file because it failed verification tests的处理方法【临时表空间不足】
2.1 临时表空间介绍
1)Oracle临时表空间主要用来做查询和存放一些缓冲区数据。(普通的查询语句都会占用临时表空间)
2)临时表空间消耗的主要原因是需要对查询的中间结果进行排序
3)重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql
语句的执行,temp表空间会一直增长。直到耗尽硬盘空间。
2.2 ORA-01187错误的处理方法
参考网页:http://www.th7.cn/db/Oracle/201306/31339.shtml
1)使用db账户进入sqlplus:sqlplus'/as sysdba'
2)查看临时表文件的存放目录,以及大小:
SQL> select name,bytes/1024/1024,status from v$tempfile;
NAME BYTES/1024/1024 STATUS
------------------------------ --------------- -------
/oradata/seven/temp01.dbf 30 ONLINE
3)删除临时文件:
SQL> alter database tempfile '/oradata/seven/temp01.dbf' drop;
4)重新添加临时数据文件(可添加多个)
SQL> alter tablespace temp add tempfile '/oradata/seven/temp01.dbf' size 30G reuse;
SQL> alter tablespace temp add tempfile '/oradata/seven /temp02.dbf' size 30G reuse;
2.3 查看临时表剩余空间
select FREE_SPACE/1024/1024/1024 free_space
from DBA_TEMP_FREE_SPACE;