Запуск нескольких версий PostgreSQL на одном сервере Ubuntu


12

У меня PostgreSQL 8.4 и 9.0 работают на одном сервере (Ubuntu Lucid).

Я установил их оба через apt-get (8.4 с исходными кодами пакетов по умолчанию и 9.0 после добавления ppa из https://launchpad.net/~pitti/+archive/postgresql ).

Когда я запускаю команду, такую ​​как «createb», из командной строки или запускаю оболочку «psql», в моей системе по умолчанию используется версия 8.4 PostgreSQL.

Итак, как заставить эти команды использовать PostgreSQL 9.0 вместо 8.4?


Ответы:


11

Предполагая, что Ubuntu делает то же самое, что и Debian, ваши два экземпляра PostGreSQL будут работать на разных портах.

Вы можете легко проверить файлы конфигурации, чтобы увидеть, какая версия на каком порту:

$ grep -H '^port' /etc/postgresql/*/main/postgresql.conf
/etc/postgresql/8.4/main/postgresql.conf:port = 5432
/etc/postgresql/8.3/main/postgresql.conf:port = 5433

Большинство команд PostGreSQL выбирают опцию «-p ####» или «--port = ####», так что вы можете использовать ее для выбора нужной версии.


7

Используйте --clusterпараметр, например (при условии, что оба кластера названы основными по умолчанию):

psql --cluster 8.4/main
psql --cluster 9.0/main

Общими схемами являются:

--cluster version/name      # for local connections
--cluster version/host:port # for TCP/IP connections

Для просмотра списка всех установленных кластеров (имя, порт, статус, каталог данных и т. Д.) Используйте pg_lsclustersкоманду.

Проверьте man pg_wrapperдля получения дополнительной информации.


Это замечательно, почему это не в psql doc?
MarHoff

1
@MarHoff: pg_wrapperрасширение Debian. По сути, он psqlвключает (то есть psqlсимволическую ссылку на pg_wrapperскрипт) команду с несколькими новыми опциями, облегчающими обработку нескольких кластеров.
Гжегож Шпетковски

0

Вы можете использовать, dpkg -L <packagename>чтобы увидеть, какие файлы принадлежат конкретному пакету. Запустите его с пакетом postgresql 9 и посмотрите, где хранилась команда createb для этой версии.

Большинство команд postgresql работают в кросс-версии с соответствующим выбором базы данных по порту или пути, но это, конечно, не относится к сценариям запуска и командам создания.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.