大きなデータベース(postgres)をローカルコピーにダウンロードする


3

Amazon RDSには非常に大きなpostgres DB(zip形式で約9GB)があり、ローカルマシンでそれをコピーしてテストする必要がある場合があります。

DBダンプ(pg_dump)を実行してダウンロードするのは遅すぎるだけで、正直に言って最後に何度か行き詰まってしまいました。

DBの一部をスマートな方法で取得する簡単な方法はありますか?たとえば、過去10日間の変更のみを取得してから、それらをローカルDBとマージできますか、またはDBをチャンクなどで取得できますか?

私はその必要性を持つ最初の人ではないと確信していますが、それを行うための最良の方法を説明するまともな方法やチュートリアルを見つけることができませんでした。

ありがとう!


どのように動けなくなる?
カスペルド16

回答:


4

9GBの圧縮ダンプは実際にはそれほど大きくありません。あなたはちょうどそれを正しくする必要があります:

  • RDSデータベースが実行されているのと同じAWSアカウントとリージョンのEC2インスタンスからダンプします—インターネット経由ではありません。
  • ディレクトリダンプ形式(--format=directoryまたは-Fd)を使用します。これは自動的に圧縮されます。
  • 並列ダンプ(--jobs=16またはなど-j16)と並列復元を使用します。
  • sslmode=disable接続文字列で使用するかenv PGSSLMODE=disable pg_dump …、SSLを無効にします— AWS RDSの一部のバージョンでは、単一接続でのSSLデータの64GB制限があります。
  • スナップショットから復元されたRDSデータベースは、すべてのデータが少なくとも1回読み取られるまでひどく遅いことに注意してください。最初の読み取りは通常よりも10倍以上遅くなります。スナップショットから最近復元されたデータベースからのダンプ。
  • 圧縮状態で正常にダンプされた後にのみ、AWSから移動します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.