oracle

关注公众号 jb51net

关闭
首页 > 数据库 > oracle > ORA-08103:object no longer exists异常排查

ORA-08103:object no longer exists异常排查过程及解决

作者:清风-云烟

ORA-08103错误因临时表被truncate导致引用失效,访问压力下触发,需删除已不存在的对象或检查恢复操作,避免SQL查询异常

项目场景

最近排查线上问题时,发现error日志中有几条提示SQL异常

问题描述

异常提示信息如下:

​ uncategorized SQLException; SQL state [72000]; error code [8103]; ORA-08103: object no longer exists
 nested exception is java.sql.SQLException: ORA-08103: object no longer exists
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:89)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
    at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)
    at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
    at com.sun.proxy.$Proxy118.selectOne(Unknown Source)
    at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:159)

原因分析

oracle文档解释:

ORA-08103: object no longer exists

Cause: The object has been deleted by another user since the operation began, or a prior incomplete recovery restored the database to a point in time during the deletion of the object.

Action: Delete the object if this is the result of an incomplete recovery.

ORA-08103表示在进行持久操作时找不到某个对象,具体地说,就是表或视图不能因为已经丢失或被删除,但是还有指向它的对象的句柄。

在开发数据库过程中,很可能会碰到这个错误,这个错误是由于表或视图被删除或不存在,但是SQL查询还是链接到该表或视图。

ORA-08103: 对象不再存在

结合文档解释,去数据库排查。发现那张临时表数据量比较大,有访问压力后,表被人truncate了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文