동일한 Ubuntu 서버에서 여러 버전의 PostgreSQL 실행


12

PostgreSQL 8.4 및 9.0이 동일한 서버 (Ubuntu Lucid)에서 실행 중입니다.

apt-get (기본 패키지 소스가있는 8.4 및 https://launchpad.net/~pitti/+archive/postgresql 에서 ppa를 추가 한 후 9.0)을 통해 둘 다 설치했습니다 .

명령 행에서 "createdb"와 같은 명령을 실행하거나 "psql"쉘을 시작하면 PostgreSQL 버전 8.4가 기본적으로 시스템에 사용됩니다.

그렇다면이 명령이 8.4 대신 PostgreSQL 9.0을 사용하도록하려면 어떻게해야합니까?


답변:


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_lsclusterscommand를 사용하십시오 .

man pg_wrapper자세한 내용을 확인 하십시오.


이것은 psql doc에없는 방법으로 훌륭합니다.
MarHoff

1
@MarHoff : pg_wrapper데비안의 확장입니다. 기본적 으로 여러 클러스터를 쉽게 처리 할 수 ​​있도록 몇 가지 새로운 옵션으로 명령을 래핑 psql(즉, 스크립트에 대한 psql심볼릭 링크 pg_wrapper)합니다.
Grzegorz Szpetkowski

0

dpkg -L <packagename>특정 패키지가 소유 한 파일을 확인하는 데 사용할 수 있습니다 . postgresql 9 패키지로 실행하고 해당 버전의 createdb 명령이 저장된 위치를 확인하십시오.

대부분의 postgresql 명령은 포트 또는 경로별로 데이터베이스를 적절히 선택하여 크로스 버전으로 작동하지만 스크립트 시작 및 생성 명령에는 적용되지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.