postgresqlデータベースをサーバー間で移動する


9

自宅に数ギガバイトの(空間)データベースを作成しました。1台のコンピューターから私のコンピューターにそのままデータベース全体を移動したいと考えています。

何もファンシーではないので、仕事用のコンピューターに新しいpostgresql / postgis dbインスタンスを作成します。dbユーザーは、両方のコンピューターで同じ名前を持つ場合とそうでない場合があります。

出来ますか?何に注意すべきですか?どうすれば痛みをなくすことができますか?

postgres v9.1.5とpostgis拡張を使用しています。Ubuntu12.04(カーネル3.2.0-31)


StackOverflow、PostgreSQLデータベースの別のサーバーへのコピーで、この同様のスレッドを参照してください。
バジルブルク2015年

回答:


11

データベースのダンプを実行できます。

pg_dump yourdatabase | gzip -9 > outfile.sql.gz

作業用コンピューターのPostgreSQLにインポートして戻します。かなり時間がかかり、結果のファイルは、たとえ圧縮されていても、ギガバイトの範囲にある可能性がありますが、USBキーに含めるには十分小さいはずです。

仕事用のコンピューターで、新しいデータベースを作成し、ダンプをロードします。

zcat outfile.sql.gz | psql yournewdatabase

高速な接続を使用している場合(または時間がかかる場合)、暗号化されたSSH接続またはrsyncなどのツールを使用して、インターネット経由でデータベースを転送することもできます。


1
ユーザー/グループの権限についてはどうですか?私の家には、たとえばuser1がいますが、職場ではuser2があります。それは重要ですか?

2
すべきではない。もちろん、アプリケーションで正しいユーザーを設定する必要があります。自宅のPCなので、ダンプする前に、user1の名前をuser2に変更し、すべて機能することを確認してください。その後、転送は問題なく行われるはずです。

3
データベースロールのダンプにはpg_dumpallを使用します。
フランク・ハイケンズ2012

1
データベースをダンプできるようにするには、古いサーバーと同じバージョンのpostgresqlをインストールする必要があります。wiki.postgresql.org
wiki /

2

これを行うには、pg_dumpallが最も安全な方法です。とにかく、移行の前にダンプオールを取ることをお勧めします。ただし、大きな問題は、それが大きい場合、復元に時間がかかることです。

また、できればサーバーを停止した後でデータディレクトリをコピーすることもできます(停止の代わりにpg_start_backup()を使用できますが、そのルートに進む前に、ポイントオブタイムリカバリに関するすべてのドキュメントを参照してください。このルートでは、ダウンタイムがゼロに近いただし、これは、OSとCPUアーキテクチャが両方のシステムで同じ場合にのみ実行できることにも注意してください。この方法では、WindowsからLinuxに、またはi686からx86-64に移動することはできません。OSカーネルバージョンも確認してください。システムに互換性があることを確認します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.