Как перенести данные postgres с 8.4 до 9.1?

Я обновил машину разработки Ubuntu с 11.04 по 11.10. В процессе моих postgres также был повышен с 8.4 до 9.1.

Но я, кажется, потерял все свои данные. Если я посмотрю, я вижу, что мои данные для 8.4 находятся в папке /var/lib/postgres/8.4/main а моя новая база данных находится в /var/lib/postgres/9.1/main .

Каков наилучший способ переноса моих данных в новую версию? Могу ли я просто скопировать файлы?

 su postgres pg_dropcluster --stop 9.1 main pg_upgradecluster 8.4 main 

Сначала это не сработало для меня по двум причинам. Во-первых, postgresql-8.4 не был определен в какой-то момент, поэтому мне пришлось переустановить его:

 sudo apt-get install postgresql-8.4 

Затем мне пришлось войти в 8.4 postgresql.conf и изменить max_connections на 10. Затем это сработало. Вы должны найти файл conf в /etc/postgresql/8.4/main/postgresql.conf

После обновления до 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.

когда времени для сброса и восстановления недостаточно, используйте pg_upgrade: http://www.postgresql.org/docs/devel/static/pgupgrade.html.