Я обновил свою машину разработки 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