今天应用服务器后台报一下错误:
2015-04-08 08:59:56,986 WARN [org.hibernate.util.JDBCExceptionReporter] - <SQL Error: 1114, SQLState: 64000>
2015-04-08 08:59:56,986 ERROR [org.hibernate.util.JDBCExceptionReporter] - <ORA-01114: 将块写入文件 时出现 IO 错误 (块 # )
ORA-01114: 将块写入文件 201 时出现 IO 错误 (块 # 47520)
ORA-27072: 文件 I/O 错误
Additional information: 4
Additional information: 47520
Additional information: 65536
在网上找资料说,是数据库临时表空间满了或者坏掉了。
查询临时表空间的大小
select name, bytes/1024/1024 as "大小(M)" from v$tempfile order by bytes;
看到系统中最大数据文件/oradata/esbmonitor/temp01.dbf大小为372M,初步估计是temp表空间无法扩展的原因。
解决办法:
1、查询该用户下的默认临时表空间
select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
2、创建新的临时表空间
create temporary tablespace temp01 tempfile '/oradata/esbmonitor/temp01.dbf'
size 1000M autoextend on;
3、修改默认表空间
alter database default temporary tablespace temp01;