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

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을 사용하도록하려면 어떻게해야합니까?



답변

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 = ####”옵션을 사용하므로 원하는 버전을 선택할 수 있습니다.


답변

--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자세한 내용을 확인 하십시오.


답변

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

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


답변