Uruchamianie wielu wersji PostgreSQL na tym samym serwerze Ubuntu


12

Mam PostgreSQL 8.4 i 9.0 działające na tym samym serwerze (Ubuntu Lucid).

Zainstalowałem je oba poprzez apt-get (8.4 z domyślnymi źródłami pakietów i 9.0 po dodaniu ppa z https://launchpad.net/~pitti/+archive/postgresql ).

Kiedy uruchamiam polecenie takie jak „Createdb” z wiersza poleceń lub uruchamiam powłokę „psql”, w moim systemie domyślnie używana jest PostgreSQL wersja 8.4.

Jak więc zmusić te polecenia do używania PostgreSQL 9.0 zamiast 8.4?


Odpowiedzi:


11

Zakładając, że Ubuntu robi to samo co Debian, wówczas twoje dwie instancje PostGreSQL będą działały na różnych portach.

Możesz łatwo sprawdzić pliki konfiguracyjne, aby zobaczyć, która wersja jest na którym porcie:

$ 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

Większość poleceń PostGreSQL ma opcję „-p ####” lub „--port = ####”, więc możesz użyć tej opcji, aby wybrać żądaną wersję.


7

Użyj --clusteropcji np. (Zakładając, że oba klastry mają domyślną nazwę main):

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

Ogólne schematy to:

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

Aby wyświetlić listę wszystkich zainstalowanych klastrów (nazwa, port, status, katalog danych itp.) Użyj pg_lsclusterspolecenia.

Sprawdź man pg_wrapperwięcej informacji.


To jest genialne, dlaczego to nie jest w dokumencie psql?
MarHoff,

1
@MarHoff: To pg_wrapperrozszerzenie Debiana. Zasadniczo zawija psql(tj. Jest psqlsymbolicznym linkiem do pg_wrapperskryptu) polecenie z kilkoma nowymi opcjami ułatwiającymi obsługę wielu klastrów.
Grzegorz Szpetkowski

0

Możesz użyć, dpkg -L <packagename>aby zobaczyć, jakie pliki posiada dany pakiet. Uruchom go z pakietem postgresql 9 i sprawdź, gdzie przechowywana jest komenda utworzona dla tej wersji.

Większość poleceń postgresql działałaby w różnych wersjach z odpowiednim wyborem bazy danych według portu lub ścieżki, ale oczywiście nie dotyczy to uruchamiania skryptów i poleceń tworzenia.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.