ORA-00603错误

来源:互联网 发布:君理资本 知乎 编辑:程序博客网 时间:2024/06/10 03:10

今天创建索引的时候遇到了ORA-00603错误,提示:ORA-00603: ORACLE server session terminated by fatal error

查看告警日志,发现如下信息:


我们可以发现这是设备存储不足的原因:

到主机上清理出部分空间之后,恢复正常。出现这个错误还有可能是临时表空间不足,目录数过多:

下面是metalink上的一段话:

Hello, 

The file number should appear in v$datafile. If 201 is higher than the number set for db_files, the file is a temp file and you can try the following: 
SELECT name FROM v$tempfile WHERE file#=(<AFN> - <DB_FILES value>)

If your DB_FILES parameter is set to 100 within the init.ora and your error shows a problem with file 101, you will know the problem is with v$tempfile file# = 1. 

This appears to be an operating system specific issue. You may be running into a OS file size limitation. You will want to check the event viewer for further error messages. You should post to the Microsoft Installation/OS: RDBMS for further information as to why this problem is occuring.


也就是说,总的数据文件数不能超过设置的值,我们可以参数查看设置的最大文件数:


或者show parameter db_files


如果临时表空间过大需要添加临时表空间,如果文件数过多,可以修改数据文件参数。

附:查看临时表空间使用情况:

SELECT ROUND((F.BYTES_FREE + F.BYTES_USED) / 1024 / 1024, 2) "total MB",       ROUND(((F.BYTES_FREE + F.BYTES_USED) - NVL(P.BYTES_USED, 0)) / 1024 / 1024,             2) "Free MB",       D.FILE_NAME "Datafile name",       ROUND(NVL(P.BYTES_USED, 0) / 1024 / 1024, 2) "Used MB",       ROUND((F.BYTES_FREE + F.BYTES_USED) / 1024, 2) "total KB",       ROUND(((F.BYTES_FREE + F.BYTES_USED) - NVL(P.BYTES_USED, 0)) / 1024,             2) "Free KB",       ROUND(NVL(P.BYTES_USED, 0) / 1024, 2) "Used KB",       0 "Fragmentation Index"FROM   SYS.V_$TEMP_SPACE_HEADER F,       DBA_TEMP_FILES           D,       SYS.V_$TEMP_EXTENT_POOL  PWHERE  F.TABLESPACE_NAME(+) = D.TABLESPACE_NAMEAND    F.FILE_ID(+) = D.FILE_IDAND    P.FILE_ID(+) = D.FILE_ID


0 0
原创粉丝点击