%20%E3%81%AB%E8%BB%A2%E9%80%81%E3%81%99%E3%82%8B.png)
約 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 を初めて使用します。これはテスト ドライブです。新しいデータベースは、リージョン ストレージ (ニアライン、コールドライン、マルチリージョンではない) に配置する必要があります。
私の現在の戦略は次のとおりです。
pg_dumpall > db.out
古いオンプレミスDBで使用する- その
db.out
ファイルを、ワークステーション上のマップされたドライブ経由でアクセスできる Windows VM ファイル サーバーに保存します。 - ワークステーション経由で GCP コンソールにアクセスし、[ストレージ] に移動してバケットを選択し、ファイルをアップロードして、インスタンスが入っているバケットに db.out ファイルをアップロードします。
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 経由でデータベースをインポートすることは、あなたが行ったように、目的を達成するための完全に正常な方法です。ディスク上の構造は実際には問題にならないはずです。