1

我有一个在 GKE 集群(有状态集,SSD 卷)上运行的大型(300Gb)Postgres 数据库。我需要将此数据库移动到另一个 GKE 集群。

实现它的最简单方法是什么?

我尝试使用管道pg_dump/来完成它pg_restore,但它需要很长时间,并且由于某种原因,并非所有约束/触发器都被重新创建。

是否有任何适当的方法可以优雅地“关闭”在 Kubernetes 中运行的 Postgres 服务器并/pgdata直接复制文件夹(从一个卷到另一个卷)?

其他想法?tnx

4

1 回答 1

0

关于如何解决这个问题,我几乎没有什么想法(从最可能到最不可能列出):

  1. 使用时请记住使用正确的格式pg_dump。默认纯格式可能无法与pg_restore. 尝试使用pg_dump或使用psql -f xxx.tar而不是指定不同的格式pg_restore。请记住,这可能需要一段时间。

  2. 您可以使用工具来帮助您。例如pghoard

  3. 您可以对您的数据库进行皮重备份,并尝试通过 Google Cloud Storage 将其复制为对象。

  4. 您可以尝试手动创建 PVC,将 pod 附加到这些 PVC,然后将数据集复制到这些 pod。

  5. 最后,您可以尝试创建一个 Init 容器,稍后将其用于您的新集群。

我建议从第 1 点开始,因为我认为这是最可能的解决方案。如果这还不够,请尝试列表中的稍后点。

请让我知道这是否有帮助。

于 2019-06-19T09:23:13.740 回答