为什么postgresql中不同数据库实例的序列值不同?

问题描述 投票:0回答:1

我正在使用 RDS Aurora 无服务器用于 AWS 托管的 Postgresql 15。集群有3个实例,1个写入,2个读取。我通过

SEQUENCE test START 10;
创建了一个序列。我使用
select nextval(test)
来增加序列值。

但是,当我在写入和读取实例之间运行以下命令时,我发现序列值不同:

select * from test;

我想知道为什么值不同。如果写入实例已关闭并且其中一个读取实例变为写入实例,它会给我重复的值吗?

postgresql amazon-rds amazon-aurora
1个回答
0
投票

并不是每次调用nextval()函数都会生成WAL记录,所以读写节点的test值是不同的。

请参阅以下链接:- https://www.postgresql.org/message-id/flat/1296642753.8673.29.camel%40gibralter

另请参阅这部分源代码- https://github.com/postgres/postgres/blob/4e62ba21a921b77df2da4bf1f4c1545da5da44e7/src/backend/commands/sequence.c#L710

© www.soinside.com 2019 - 2024. All rights reserved.