当数据库重置或从故障中恢复时,Oracle序列是否丢失?

当数据库重置或从故障中恢复时,Oracle序列是否丢失?,oracle,Oracle,我不熟悉Oracle和sequence。我在Oracle中创建了一个序列(我现在正在使用Oracle 11g) 但我担心,当Oracle server重新启动或从故障中恢复时,序列是否会丢失其下一个假定的增量值 e、 g当前序列为5 当访问序列时,它应该给出的下一个值是6 但当数据库被重置/重新启动时,它会返回到0吗?别担心,序列值会被持久化,并在重新启动时保持不变 但是,下一个值可能高于您期望的值6。这取决于序列的缓存设置。如果您使用缓存20创建了它,则缓存的值将丢失。在您的示例中,实例重新启

我不熟悉Oracle和sequence。我在Oracle中创建了一个序列(我现在正在使用Oracle 11g)

但我担心,当Oracle server重新启动或从故障中恢复时,序列是否会丢失其下一个假定的增量值

e、 g当前序列为5

当访问序列时,它应该给出的下一个值是6


但当数据库被重置/重新启动时,它会返回到0吗?

别担心,序列值会被持久化,并在重新启动时保持不变


但是,下一个值可能高于您期望的值6。这取决于序列的
缓存设置。如果您使用缓存20创建了它,则缓存的值将丢失。在您的示例中,实例重新启动后,下一个值可能是20。但是它永远不会是0或小于上一个值(除非您启用了
循环
属性并且已经使用了所有可用的数字)

序列与其他数据一样被视为数据,因此它将与数据同步。如果“重置”是指“恢复”:在这种情况下,它也可以重置为零。。。但与所有其他数据一起,准确地说!如果您恢复到序列不存在的时间点,它将恢复到完全不存在序列的情况


如果“重置”的意思是“重新启动”,则没有问题:所有内容都保留下来。也就是说,所有提交的数据都保留在数据库中。

谢谢您的回答。…)我所说的重启实际上是指重新启动数据库。感谢您的回答tvCa。供将来参考:Oracle 12c现在支持会话序列(
create sequence myseq Session
),它们是每个会话的专用序列(即自动重置)。但是,正常序列将按照下面的其他答案进行保存。感谢Jeffrey的更新。这里唯一的问题是我们现在无法切换到Oracle 12c,因为我们正在处理的系统的其他潜在用户。我们现在必须坚持11g,并且坚持顺序解决方案。无论如何,谢谢。我从来没有建议升级到12c。我只是添加了这条评论,因为StackOverflow适用于所有人(不仅仅是你),包括未来来寻找答案的人。感谢Jeffrey Kemp的另一个好的更新。是的,Stackoverflow确实是一个非常好的平台,可以分享和指导,它确实回答了过去的未来参考答案。[链接]