サーバーアプリケーションを既存のシステムから別のシステムに移行しています。残念ながら、既存のシステムはデータベースサーバーでもあります。データが保存されています。このデータを他のシステムにコピーすることは可能ですか?すべてのテーブルスキーマのコピーがあります。
どうすればよいかわかりません。 PostgreSQLを使用しています。
pg_dump
を使用してデータベースをダンプし、psqlを使用して新しいサーバーに復元できます。上記のリンクからのコマンドをいくつか次に示します。
バックアップを作成します。
pg_dump mydb > db.sql
db.sql
を新しいサーバーにコピーします(特定のコマンドはOSによって異なります)
新しいサーバーに移動します
createdb mydb -E UTF8
(UTF8エンコードを指定する必要はありませんが、常に指定します)
次に:
psql -d mydb -f db.sql
私が答えている間、JohnPは良い答えで答えましたが、pg_hba.conf
がリモート接続を許可するように編集され、postgres.conf
がネットワークでリッスンするように編集されていると想定しています。
おそらく最も簡単な方法は、古いサーバーからフルダンプを実行し、その結果を新しいサーバーに直接パイプすることです。このような:
pg_dump -h old_server_ip -p 5432 -U username dbname | psql -h localhost -p 5432 -U username dbname
これをスーパーユーザーとして実行します。デフォルトでは、postgres
ユーザーはスーパーユーザーですが、他のユーザーを作成した可能性があります。
更新:異なるサーバーバージョン間でデータを移動する場合は、最新バージョンのpg_dumpを使用してください。おそらく、新しいサーバーのpg_dumpを使用してください。
前回このようなタスクを実行する必要があったとき、「GeoKettle」という無料のETLツールを使用しました
http://www.spatialytics.org/projects/geokettle/
最初は少し怖いように見えますが、サーバーからサーバーへのコピーのために行う必要があるのは、テーブル入力を作業面にドラッグし、テーブルを作業面にドラッグし、それらを結合してから、それぞれをダブルクリックして構成するだけです。必須。
それが完了したら、変換を保存し、必要なときにいつでも実行できるようにします。
実行するには、変換をロードして、実行ボタンをクリックします。すべてが問題なく正しく構成されていると仮定すると、データを比較的迅速に転送する必要があります。
空間データを処理する必要がない場合は、「Pentaho」と呼ばれる非空間バージョンを使用できますが、GeoKettleはPentahoが実行できるすべてのことを実行できるため、GeoKettleは2のうち最も優れています。
アプリに慣れるまでに1日かかるでしょうが、これを完了すると、すべてが非常に簡単で、再利用できることがわかります。
私は今、このアプリを使用して、あらゆる種類の異なるサーバーから他の異なるサーバーにコピーしたり、あらゆる種類のデータを一括で読み込んだりしています。