gpt4 book ai didi

postgresql - 在没有停机的情况下将 `int` 迁移到 PostgresQL 中的 `bigint`?

转载 作者:行者123 更新时间:2023-11-29 11:32:33 26 4
gpt4 key购买 nike

我有一个数据库要经历integer exhaustion problem Basecamp 在 11 月以著名的方式面对。我有几个月的时间来弄清楚该怎么做。

是否有不需要停机的主动解决方案来迁移此列类型?如果有,那是什么?如果不是,是否只是吃掉停机时间并尽可能迁移列的问题?

this article sufficient ,假设我有几天/几周的时间来现在执行迁移,然后在我用完 id 时被迫执行迁移?

最佳答案

使用logical replication .

通过逻辑复制,您可以在主数据库和备用数据库中拥有不同的数据类型。

使用pg_dump -s 复制模式,更改副本上的数据类型,然后开始逻辑复制。

复制完所有数据后,将应用程序切换为使用备用。

对于零停机时间,应用程序必须能够重新连接和重试,但在这种情况下,这始终是一项要求。

为此,您需要 PostgreSQL v10 或更高版本,以及您的数据库

  • 不应修改架构,因为不会复制 DDL。
  • 不应使用序列(SERIALIDENTITY),因为最后使用的值不会是 replicated

关于postgresql - 在没有停机的情况下将 `int` 迁移到 PostgresQL 中的 `bigint`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54795701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com