文档解释
ORA-16122: applying large dml transaction at SCN string
Cause: A large transaction is being applied before the commit has been seen. The current redo being applied ends as the given SCN.
Action: No action necessary, this informational statement is provided to record the event for diagnostic purposes.
。
ORA-16122:表示在指定的 SCN(系统更改号)上应用大量 DML 事务时可能发生的错误。
官方解释
ORA-16122 出现,当您尝试访问大量 DML 事务并且此事务在时间戳/SCN 过期时,这可能是因为您需要复制新的时间戳/SCN 来正确地完成修改。
如果在尝试执行操作期间出现 ORA-16122 错误,您可以在确定此 DML 事务有效时重试操作,或者尝试复制新的时间戳/SCN。如果存在无限循环,您将需要修改 DML 语句,以便重试操作失败的部分。
常见案例
ORA-16122 次要错误信息出现,当您尝试访问大量 DML 事务,其中常见的情况是,在尝试批量导入 DML 语句时,系统改变号(SCN)超过某个时间会导致该错误。另一方面,这也可能是在返回时间戳/SCN 并受到限制的死锁恢复时出现的。
一般处理方法及步骤
1、复制一个新的时间戳/SCN,这可以重新引发错误。
2、确认 DML 事务是有效的,并确认时间戳/SCN 将不过期。
3、检查系统的日志,以确认出现了死锁,以及死锁信息的细节。
4、需要修改 DML 语句以便重试操作失败的部分,如果存在无限循环,以便避免出现 ORA-16122 故障。
5、如果可能,建议及时重新调整 DML 事务,以生成较少的事务修改,从而减少 ORA-16122 错误的可能性。