[Oracle] 浅析令人抓狂的ORA-01555问题

 更新时间:2013年07月12日 15:02:25   作者:  
首先要说明的一点是:ORA-01555错误是一个“安全”的错误,它不会造成数据丢失或损坏,只是会让接收到该错误的查询无法继续。以下就是对发生ORA-01555错误的原因进行了介绍,需要的朋友可以参考下

因此,在数据库的日常维护工作中,如果只是一次两次碰到ORA-01555错误,一般都先忽略,但是如果经常碰到该错误,则要进行一些调整以避免该错误的再次发生。

1. 为什么会产生ORA-01555错误?
这个错误是由数据库的读一致性(Read consistency)引起的,当查询需要访问被修改的数据时,它会到undo里访问该数据的前镜像,如果该前镜像已被覆盖,查询语句就会返回ORA-01555的错误。

2. 导致ORA-01555错误的主要原因有哪些?
1) undo太小
比较直观的解决方法是DBA告诉数据库应用最长的查询需要多长时间,并把UNDO_RETENTION设为这个值,同时相应增大undo表空间大小。
但要从根本上解决undo太小问题,还得从应用端代码调优入手,减少查询的运行时间。

2) 延迟的块清除
这种情况比较少见,特别是在OLTP系统里,在OLAP系统里可能会碰到,解决方法是在每次大量的insert或update之后,记得用DBMS_STATS包扫描相关对象。

相关文章

  • Windows Oracle常见服务介绍

    Windows Oracle常见服务介绍

    注:SID - 数据库标识 HOME_NAME - Oracle Home名称,如OraHome92、OraHome81
    2009-05-05
  • oracle sqlplus 常用命令大全

    oracle sqlplus 常用命令大全

    show和set命令是两条用于维护SQL*Plus系统变量的命令
    2009-05-05
  • oracle删除数据但表空间占用率没有减小的情况

    oracle删除数据但表空间占用率没有减小的情况

    这篇文章主要介绍了oracle删除数据但表空间占用率没有减小的情况,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • oracle与mysql的视频教程下载地址分享

    oracle与mysql的视频教程下载地址分享

    这是某培训机构的oracle跟mysql视频教程,现在分享给大家,想要学习mysql和oracle的同学不要错过哦
    2013-03-03
  • Oracle如何实现把B表某一字段更新到A表

    Oracle如何实现把B表某一字段更新到A表

    这篇文章主要给大家介绍了关于Oracle如何实现把B表某一字段更新到A表的相关资料,在Oracle中使用一个表的字段来更新另一个表的字段,可以采用UPDATE SELECT语句,文中给出了详细的代码示例,需要的朋友可以参考下
    2023-07-07
  • 检测oracle数据库坏块的方法

    检测oracle数据库坏块的方法

    这篇文章主要介绍了检测oracle数据库坏块的方法 的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • linux自动运行rman增量备份脚本

    linux自动运行rman增量备份脚本

    这篇文章主要介绍了linux自动运行rman增量备份脚本,实现周日和周三凌晨1:00执行0级全库备份,周一、二、四、五、六凌晨1:30执行增量备份,需要的朋友可以参考下
    2014-03-03
  • oracle去除字符串中制表符、换行、回车及空格方法代码

    oracle去除字符串中制表符、换行、回车及空格方法代码

    在Oracle数据库中有时我们需要处理字符串中的特殊字符,下面这篇文章主要给大家介绍了关于oracle去除字符串中制表符、换行、回车及空格的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • DBCA命令行搭建Oracle ADG的流程

    DBCA命令行搭建Oracle ADG的流程

    随着Oracle数据库版本的更迭,搭建备库的方式多种多样。今天介绍一种创建物理备库的新方式,从12C版本开始推出:使用 DBCA 命令行,需要的朋友参考下吧
    2021-06-06
  • Oracle根据逗号拆分字段内容转成多行的函数说明

    Oracle根据逗号拆分字段内容转成多行的函数说明

    在做系统时经常会遇到在一个字段中,用逗号或其他符号分隔存储多个信息,下面这篇文章主要给大家介绍了关于Oracle根据逗号拆分字段内容转成多行的函数说明,需要的朋友可以参考下
    2023-04-04

最新评论