大規模なPostgreSQL / PostGISデータベースの移動


8

非常に大きな(約320 GB)PostGISデータベースをserver1(PostgreSQL 9.1、PostGIS 1.5)からserver2(PostgreSQL 9.3、PostGIS 2.1)に移動してアップグレードする必要があります。

アップグレードプロセスは十分に文書化されています。問題は、server1にファイルをダンプしてチェックサムし、それをserver2にコピーして合計を確認するのに十分なスペースがないことです。私は試した:

  • を使用して、server1からserver2にダンプをパイピングしますnc
  • を使用してserver1にマウントされているserver2ファイルシステムに直接ダンプファイルを書き込む。sshfs

どちらの場合も、ダンプファイルが破損しているようです。pg_restoreこのようなエラーで別の場所で壊れました:

pg_restore: [compress_io] could not uncompress data: incorrect data check

誰かがこの移動とアップグレードを完了するためのより良い方法を提案できますか?

更新: NFSを試してみました(そしてSSHFSにもう一度試してみました)。これらのリモートファイルシステムがこれだけのデータを確実に転送できないことは明らかです。結果のSQLファイルから明らかにブロックが欠落しているため、インポート中に次のような構文エラーが発生します。

ERROR:  invalid input syntax for integer: "8266UPDATE spatial_ref_sys o set auth_name = n.auth_name, auth_srid = n.auth_srid, srtext = n.srtext, proj4text = n.proj4text FROM _pgis_restore_spatial_ref_sys n WHERE o.srid = n.srid;"

2番目のオプションは良いようですが、なぜNFSを使用しないのですか おそらく、sshfsで適切に処理されない小さな中断がいくつかあります。320Gbは非常に大きなファイルです。
マルコ

1
より大きなディスクを購入しますか?最近では1TBのコストはほとんどありません。
Colin 't Hart

NFSは、これだけのデータを転送するSSHFSと同じくらい信頼性が低いことがわかりました。質問を更新しています。
kontextify 2015

回答:


7

次のように、新しい9.3サーバーから9.1データベースをダンプすることをお勧めします。

pg_dump -h remoteserver -U remoteuser remotedbname -Fc -f my_old_server_backup.dump

9.3 pg_dumpを使用することをお勧めしpg_dumpます。常に下位互換性がありますが、上位互換性はありません。言い換えると、新しいpg_dumpユーティリティは、古いユーティリティが認識していない新しいサーバーが必要とする構文の変更を処理します。

必ずあなたの作るようにしてくださいpg_hba.conflisten_addressesでは、postgresql.confあなたがリモートで接続することを許可し、同様に適切にダンプするように設定されています。

ダンプと復元を1つのステップで試したい場合は、次のように試すこともできます。

pg_dump -h remotehost -U remoteuser remotedbname | psql -U localuser localdbname

お役に立てば幸いです。=)


「1ステップでのダンプと復元」は、PostGISのバージョン間の違いにより機能しない可能性がありますが、受信サーバーからリモートでダンプを実行し、そこから復元することはできました。これは、ネットワークファイルシステムを使用するよりも明らかに優れています。おかげで、データベースが機能するようになりました。
kontextify 2015

それは実行可能なプロセスですか?完了するまでに数日かかると思います。次に、サーバー間リモートバックアップを使用しない場合、pgdumpは〜300GBのダンプファイルを作成しますか?
deFreitas 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.