我们在 Postgres 中有一个 2.2 GB 的表,其中有 7,801,611 行。我们正在向它添加一个 uuid/guid 列,我想知道填充该列的最佳方法是什么(因为我们想NOT NULL向它添加约束)。
如果我正确理解 Postgres,更新在技术上是删除和插入,所以这基本上是重建整个 2.2 gb 表。我们还有一个奴隶在运行,所以我们不希望它落后。
有没有比编写一个随着时间慢慢填充它的脚本更好的方法?
是否可以使用archive_command发送到多台机器?它是否像用 a 分隔一样简单,&&因为它本质上只是一个命令行?
command1 && command2
Run Code Online (Sandbox Code Playgroud)
我认为如果一个命令失败,这可能会产生不良影响,例如,如果command1失败则command2不会运行;如果command2失败,它会在整个过程中返回非零值,Postgres 会重新尝试发送 WAL,这意味着它会重新运行command1。
我希望有一个更正式的解决方案来解决这个问题。我的目标是在数据中心内部备份一份,在数据中心外部备份一份。