postgresデータを8.4から9.1に移行するにはどうすればよいですか?


27

Ubuntu開発マシンを11.04から11.10にアップグレードしました。その過程で、私のpostgresも8.4から9.1にアップグレードされました。

しかし、私はすべてのデータを失ったようです。見ると、8.4のデータがフォルダに/var/lib/postgres/8.4/mainあり、新しいデータベースがにあることがわかります/var/lib/postgres/9.1/main

データを新しいバージョンに移行する最良の方法は何ですか?ファイルをコピーするだけでいいですか?

回答:


27
su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

最初は、2つの理由でこれがうまくいきませんでした。最初に、postgresql-8.4はある時点で一時停止していたため、再インストールする必要がありました。

sudo apt-get install postgresql-8.4

その後、8.4に移動して10にpostgresql.conf変更max_connectionsする必要がありました。confファイルは次の場所にあります。/etc/postgresql/8.4/main/postgresql.conf


1台のコンピューターでは、上位3行で十分でした。あなたが言ったように、それを動作させるために8.4を再インストールする必要がありました。ご協力ありがとうございました。
-nathanvda

「pg_upgradecluster」スクリプトでは、データベースユーザーを指定する必要がある場合は処理されないことに注意してください。(もしそうなら、私はそれを提供する方法を理解することはできません。)
Pointy

Error: specified cluster is not running変更してmax_connectionsからもう一度試してみたら、を使用してくださいpg_ctlcluster 8.4 main start
スキッピールグラングロウ14年

削減max_connectionsは私にとってはうまくいきませんでした。エラーメッセージが提供する代替ソリューションとして、shared_buffers(200MBから)20MB に削減しました。
セラーノ14年

4

11.10にアップグレードした後、PostgreSQL 9.1はインストールされましたが、実行中のバージョンは8.4でした。

私はもう試した:

su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

エラーを報告しました:

Stopping old cluster...
pg_ctl: servidor não desligou
Error: Could not stop old cluster

したがって、別のウィンドウで:

$ sudo service postgresql-8.4 stop
 * Stopping PostgreSQL 8.4 database server                               [ OK ] 
jgr@cagliari:~$ sudo service postgresql-8.4 start
 * Starting PostgreSQL 8.4 database server                               [ OK ] 

そして再び:

pg_upgradecluster 8.4 main

pgRoutingに関連するエラーが報告されました。しばらく(一晩中)かかりましたが、その後データベースは9.1にアップグレードされました。PostGISも1.5.3にアップグレードされました。


参考までに、/ var / lib / postgresql / 9.1ディレクトリで「du -hs」を実行し、それを/var/lib/postgresql/8.4/の同じコマンドの出力と比較すると、次のことができることがわかりました。そのコマンドから出力されたサイズに基づいて、コピーされた量を測定します。
ジョーJ

これは議論されている問題ではないことを知っています。しかし、私はあなたが説明したのと同じ問題に遭遇しました。pg_upgradeclusterが古いクラスターを停止できなかった理由は、Tomcatインスタンスが接続を使用しており、Postgresがそれらを閉じることができなかったためです。これが誰かを助けることを願っています。
bplayer

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