公司项目用的 datax 同步数据,从 oracle 抽取数据,在数据量比较少的时候一切正常,当表数据量到 2y 以上之后,频繁报错 ORA-01555: 快照过旧: 回退段号 XXX
,
在百度后得到方法有:
( 1 )增加 UNDO 表空间大小
( 2 )增加 undo_retention 时间,默认只有 15 分钟
( 3 )优化出错的 SQL,减少查询的时间,首选方法
( 4 )避免频繁的提交
在实际情况中,1,2 方法都行不通,因为 oracle 是客户的数据库,不能做更改; 4 方法也不是原因。 只有 3 方法可以尝试修改,但是 datax 的 sql 是配置在 json 任务文件中。有没有以一种最小改动方式解决问题呢? 现在的 sql select aaa,bbb from table; 计划使用:rownum 分页查询,请教各位 不知这样是否可行,会不会有隐藏的坑呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.