签到成功

知道了

CNDBA社区CNDBA社区

datax-ORA-01555错误

2022-01-21 14:38 1806 0 原创 DATAX
作者: hbhe0316

问题描述http://www.cndba.cn/hbhe0316/article/106582http://www.cndba.cn/hbhe0316/article/106582

Datax抄写的时候发现日志抛出ORA-01555错误。

问题现象http://www.cndba.cn/hbhe0316/article/106582http://www.cndba.cn/hbhe0316/article/106582http://www.cndba.cn/hbhe0316/article/106582

经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-07], Description:[读取数据库数据失败. 请检查您的配置的 column/table/where/querySql或者向 DBA 寻求帮助.].  - 执行的SQL为:  具体错误信息为:java.sql.SQLException: ORA-01555: snapshot too old: rollback segment number 8 with name "_SYSSMU8_100119489$" too small

        at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:26)
        at com.alibaba.datax.plugin.rdbms.util.RdbmsException.asQueryException(RdbmsException.java:93)
        at com.alibaba.datax.plugin.rdbms.reader.CommonRdbmsReader$Task.startRead(CommonRdbmsReader.java:220)
        at com.alibaba.datax.plugin.reader.oraclereader.OracleReader$Task.startRead(OracleReader.java:110)
        at com.alibaba.datax.core.taskgroup.runner.ReaderRunner.run(ReaderRunner.java:57)
        at java.lang.Thread.run(Thread.java:748)

分析过程

http://www.cndba.cn/hbhe0316/article/106582

ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,而此时对应的undo已经不存在了,这个时候就会报ORA-01555的错误。
    ORA-01555错误在Oracle 8i及之前的版本最多。从9i开始的undo自动管理,至现在的10g、11g中的undo auto tuning,使得ORA-01555的错误越来越少。但是这个错误,仍然不可避免。
(1)、SQL语句执行时间太长,或者undo表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(既UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块(CR blocks)。这种情况最多。
    (2)、SQL语句执行过程中,访问到的块,在进行延迟块清除时,不能确定该块的事务提交时间与SQL执行开始时间的先后次序。这种情况很少。

解决方案

http://www.cndba.cn/hbhe0316/article/106582
http://www.cndba.cn/hbhe0316/article/106582
http://www.cndba.cn/hbhe0316/article/106582
http://www.cndba.cn/hbhe0316/article/106582

    (1)、增加UNDO表空间大小;
    (2)、增加undo_retention时间,默认只有15分钟;
    (3)、优化出错的SQL,减少查询的时间,首选方法;
    (4)、避免频繁的提交。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Linux

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:1134552次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ