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

时间:2014-11-25 09:13:31

标签: oracle

我是Oracle和序列的新手。我在Oracle中创建了一个序列(我现在正在使用Oracle 11g)

但是,当Oracle服务器重新启动或从故障中恢复时,我担心序列是否会失去下一个假定的递增值?

例如,让当前序列保持5

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

但重置/重启数据库后它会回到0吗?

2 个答案:

答案 0 :(得分:2)

不用担心,序列值会持续存在并在重新启动时保持不变。

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

答案 1 :(得分:1)

序列与其他数据一样被视为数据,因此它与数据同步。如果通过"重置"你是说"恢复" :在这种情况下,它也可以重置为零......但与所有其他数据一起,要准确!如果你恢复到序列不存在的时间点,那么它将恢复到那种情况:没有序列。

如果通过"重置"你的意思是"重启",没有问题:一切都还有。也就是说,所有提交的数据都保留在数据库中。