我们使用序列来维护特定业务单位的订单数量。 最近几天,我们注意到序列号中有1到32个奇怪的跳跃,一天多次。 我们配置的序列的cache_value为1。 为什么会发生这种情况,我们如何解决这个问题呢? 我无法找到相关文档。
答案 0 :(得分:3)
在将辅助服务器提升为主服务器时,有时在PostgreSQL崩溃严重且必须恢复时,PostgreSQL序列可能会跳32。
我只看到它跳过32,而且我无法通过更改序列的缓存值来更改它。
https://www.postgresql.org/message-id/1296642753.8673.29.camel%40gibralter和响应https://www.postgresql.org/message-id/20357.1296659633%40sss.pgh.pa.us表示这是在崩溃情况下的预期行为。我不确定是否仅在您使用流复制的情况下才会发生这种情况。
我认为这是一项安全功能,以防主要人员提交的记录在升级时尚未复制到辅助人员。这样一来,人们将能够手动清除旧的原始记录并将记录从旧的原始记录复制到新的原始记录,然后再擦除旧的原始记录。
这可能表明您的主数据库每天崩溃和恢复几次,这不是一个好状态。