postgresql 由于强制缩放事件,正在终止当前活动连接

ql3eal8s  于 2023-03-08  发布在  PostgreSQL
关注(0)|答案(1)|浏览(109)

我们使用AWS Aurora Serverless PostgreSQL作为项目的主数据库,随着用户数量的不断增加,我们开始经常遇到以下问题:terminating current active connection due to forced scale event.
显然,当数据库在伸缩时会发生这种情况,但我不确定如何正确处理此异常或防止伸缩。
而且,当我们在一个事务中保存了相当多的行并开始伸缩时,一些行被提交到数据库,而另一些没有,这破坏了数据一致性。
我们使用C#实体框架核心作为ORM。
有没有适当的方法来处理这种情况?

zpqajqem

zpqajqem1#

您可以切换到v2以避免在扩展过程中终止活动连接。
Aurora Serverless v1中的扩展点和相关超时期限概念不适用于Aurora Serverless v2。Aurora Serverless v2扩展可能发生在数据库连接打开、SQL事务正在处理、表被锁定、和临时表正在使用时。Aurora Serverless v2不会等待安静点才开始缩放。缩放不会'不要中断正在进行的任何数据库操作。
如果您打算继续使用V1(由于V1的end-of-life,可能不会持续太久),您还可以将setting更改为“Roll back”而不是“force”:
如果在找到缩放点之前超时,请执行以下操作:
回滚容量更改Aurora无服务器群集的容量未更改。它保持其当前容量。
强制容量更改Aurora无服务器群集的容量更改时没有缩放点。这可能会中断正在进行的事务,需要重新提交。
您可以使用以下命令在CLI中查看当前超时操作:

aws rds describe-db-clusters --db-cluster-identifier myCluster | 
jq .DBClusters[].ScalingConfigurationInfo.TimeoutAction

并将其设置为

aws rds modify-db-cluster --db-cluster-identifier myCluster --scaling-configuration TimeoutAction=RollbackCapacityChange

相关问题