任务日志错误与排查指南
本文档旨在为您提供一个详细的指南,用于识别和解决在数据同步任务日志中常见的错误。我们将深入探讨各种常见错误的原因,并提供清晰、实用的排查步骤,帮助用户快速定位并解决问题。
查看任务日志
通过任务的监控页面下方,即可查看任务的运行日志,针对常见的问题,TapData 已将其固化为特定的错误码方便您查找,同时 提供了错误原因及其解决方案。如为找到相关错误码,您也可以基于本文提供的日志关键字来进行排查或联系技术支持。
Oracle
ORA-01555, snapshot too old
发生场景:变更频繁的数据库,在全量同步期间容易发生此报错,导致无法完成全量数据同步。
解决方案:调整 Oracle 的 undo size,如暂时无法调整可减少对该库的并发同步任务数并重试。
ORA-01325, archive log mode must be enabled to build into the logstream
发生场景:Oracle 作为源库时,执行增量数据同步期间发生此报错,无法同步增量数据。
解决方案:开启 Oracle 的归档日志,具体操作,见 Oracle 数据源准备工作。
ORA-00257
发生场景:Oracle 作为源库时,但是没有配置 archive log 归档时间,需要手动清理归档,如果日志已经写满空间,数据库将无法继续对外提供服务。
解决方案:步骤如下:
-
在 sqlplus 中,首先查看 archive log 的存储配置:
show parameter recover;,假设使用默认的闪回,可以从 db_recovery_file_dest_size 的 size 看到 配置的大小。 -
通过下述命令查看过去一段时间,每天的 archived_log 占据的磁盘大小。
select trunc(COMPLETION_TIME) as "Date",
count(*) as count,
(sum(blocks*block_size))/1024/1024/1024 size_g
from v$archived_log
group by trunc(COMPLETION_TIME)
order by 1; -
按照预期存储的 archived_log 时间,调整 db_recovery_file_dest_size 的大小。
例如通过命令:
alter system set db_recovery_file_dest_size=100g;来调整除此以外,推荐通过脚本的方式,定期清理过期的 archive log。
ORA-06550 、PLS-00201、ORA-00942
发生场景:Oracle 作为源库时,无法执行全量同步或增量同步。
解决方案:通常为权限分配问题,授权方法,见 Oracle 数据源准备工作。
ORA-01400: cannot insert NULL into...
发生场景:Oracle 作为目标库时,任务日志提示上述错误。
解决方案:检查源库的表主键是否存在空值,如存在可调整一下源表数据,或者增加一个行过滤器节点来排除掉空值主键。