文档解释
ORA-00355: change numbers out of order
Cause: A change number found in the redo log is lower than a previously encountered change number. The log is corrupted in some way. The corruption may be at the earlier change or at this one.
Action: Do recovery with a good version of the log or do time based recovery up to the indicated time.
ORA-00355 indicates that an object’s sequence numbers are out of order. For example, a process that creates objects with an incrementing sequence number may generate two objects with the same number.
官方解释
ORA-00355表明对象的序列号不按顺序排列。例如,使用递增序列号创建对象的过程可能会生成具有相同号码的两个对象。
常见案例
ORA-00355的常见案例包括在表中定义了一个递增序列号,并使用这个序列号对记录进行排序,然而因为程序设计错误,生成的两条记录的序列号可能是相同的,这样则会造成ORA-00355的错误。
正常处理方法及步骤
1. 对数据表进行审核,确认已生成数据是否存在序号问题
2. 如果发现序号错误,则根据实际情况对数据进行更新或重置,重新确定一致性
3. 确认数据序号的一致性后,检查数据的变更记录是否也出现了序号问题
4. 若发现数据变更记录出现了序号问题,可以使用SQL脚本重置序号,让变更记录也保持序号的一致性。