1

GKE クラスター (ステートフル セット、SSD ボリューム) で大きな (300 Gb) Postgres DB を実行しています。この DB を別の GKE クラスタに移動する必要があります。

それを達成する最も簡単な方法は何ですか?

pg_dump/をパイプして実行しようとしましたpg_restoreが、永遠に時間がかかり、何らかの理由で、すべての制約/トリガーが再作成されたわけではありません。

Kubernetes で実行されている Postgres サーバーを適切に「シャットダウン」し、/pgdataフォルダーを (あるボリュームから別のボリュームに) 直接コピーする適切な方法はありますか?

他のアイデア?tnx

4

1 に答える 1

0

これにどのようにアプローチできるかについて、いくつかのアイデアが得られました (最も可能性の高いものから順にリストされています)。

  1. を使用するときは、適切な形式を使用することを忘れないでくださいpg_dump。デフォルトのプレーン フォーマットは では正しく機能しない場合がありますpg_restore。の代わりにpg_dumpまたは を使用して別の形式を指定してみてください。しばらく時間がかかる場合があることを覚えておいてください。psql -f xxx.tarpg_restore

  2. それを支援するツールを使用できます。たとえば、pghoard

  3. DB の tared バックアップを作成し、Google Cloud Storage を介してオブジェクトとしてコピーを試みることができます。

  4. PVC を手動で作成し、Pod をそれらの PVC にアタッチしてから、データセットをそれらの Pod にコピーすることができます。

  5. 最後に、Init コンテナーを作成して、後で新しいクラスターに使用することを試みることができます。

それが最も可能性のある解決策だと思うので、ポイント1から始めることをお勧めします。それでも不十分な場合は、リストの後のポイントを試してください。

それが役に立ったかどうか教えてください。

于 2019-06-19T09:23:13.740 に答える