ディレクトリ構造が異なる場合に PostgreSQL データベースを Google Cloud Platform (GCP) に転送する

ディレクトリ構造が異なる場合に PostgreSQL データベースを Google Cloud Platform (GCP) に転送する

約 45 GB の PostgreSQL 10 データベースを搭載したオンプレミスの SUSE 12 sp3 VM があります。

また、PostgreSQL 10 データベースを搭載した SUSE 12 sp3 サーバーの Google Cloud Platform (GCP) イメージ/インスタンスも持っていますが、そこにはまだ DB データは入っていません。

GCP のディレクトリ構造とセットアップは、オンプレミスの VM ファイル ディレクトリとセットアップとは少し異なりますが、どちらも PostgreSQL 10 です。GCP のセットアップ/インストール/ディレクトリ構造の方が気に入っているので、変更したくありません。

オンプレミスの DB から GCP DB にできるだけ多くのデータを転送したいと考えています。完了するとデータベースは同一になるはずですが、ディレクトリ構造は異なります。

私は GCP を初めて使用します。これはテスト ドライブです。新しいデータベースは、リージョン ストレージ (ニアライン、コールドライン、マルチリージョンではない) に配置する必要があります。

私の現在の戦略は次のとおりです。

  1. pg_dumpall > db.out古いオンプレミスDBで使用する
  2. そのdb.outファイルを、ワークステーション上のマップされたドライブ経由でアクセスできる Windows VM ファイル サーバーに保存します。
  3. ワークステーション経由で GCP コンソールにアクセスし、[ストレージ] に移動してバケットを選択し、ファイルをアップロードして、インスタンスが入っているバケットに db.out ファイルをアップロードします。
  4. psql -f db.out postgresデータやロールなどを新しい GCP インスタンスに読み込むために使用します。

それは確実な方法でしょうか? ディレクトリ構造が異なっていても機能しますか? もっと良い方法はありますか? コツや落とし穴はありますか?

リンク:http://www.postgresql.org/docs/current/static/app-pg-dumpall.html

(まだ役に立つ GCP リンクを探しているので、質問します。)

注意: ここで言う「ディレクトリ構造」とは、サーバーのディレクトリ構造を指します。ディレクトリ構造が変更されたのは、GCP インスタンスに PostgreSQL 10 を別の方法 (希望どおり) でインストールしたためです。

ありがとう!

PS - これは SO にありました。しかし、そこでは削除し、もっと注目を集めたいと思い、質問をこちらに移動しました。他の質問が移動または転送されているのを見ましたが、少なくとも私の現在の信用レベルでは、その方法がわかりませんでした。また、Stack Exchange サイトの Database Administrators に投稿するつもりでしたが、Google-Cloud タグをフォローしている人が 2 人しかいないことに気付きました。この点に関して、ご提案をお待ちしています。

答え1

データベースを SQL にダンプし、それをリモート マシンに転送し、SQL 経由でデータベースをインポートすることは、あなたが行ったように、目的を達成するための完全に正常な方法です。ディスク上の構造は実際には問題にならないはずです。

関連情報