Oracle序列不同步/不匹配表

时间:2018-05-30 11:36:45

标签: oracle oracle11g database-sequence

我们有一个Oracle 11.2数据库,它有多个(如果不是全部)序列不同步。它们的最后一个数字与其相关数据库表的最大数量不匹配。

我似乎无法在网上找到任何可能的原因,但我想到的一种可能性是 - 是否可以在不恢复序列的情况下恢复数据库?我的理论是生产副本放在QA数据库上,并且序列从未更新过。

1 个答案:

答案 0 :(得分:3)

是的,这是一种可能的情况,我经常看到这种情况。如果从生产备份复制QA数据库,则序列值可以。

但是,如果生产表的内容被复制,例如通过expdp / impdb复制,那么您将完全具有您所描述的不匹配。

我想到了两个解决方案:

  1. 从生产到QA导出/导入表和序列。
  2. 在QA数据库上运行一个脚本,根据表
  3. 中的最大值重置序列

    如果涉及到hibernate,它可能是一个完全不同的故事......