여러 PostgreSQL 서버가 설치되어 있습니다. 이전 서버에서 자동 부팅을 비활성화하려면 어떻게합니까?


24

Oracle VirtualBox에서 Ubuntu 12.04를 실행 중입니다. 몇 달 전에 내 컴퓨터에 PostgreSQL 서버 버전 9.1을 설치했습니다. 최근에 PostgreSQL 서버 9.3이 JSON 데이터 유형을 지원한다는 것을 알았으므로 업그레이드하기로 결정했습니다.

여기 지침에 따라 9.3으로 업그레이드했습니다.

https://wiki.postgresql.org/wiki/Apt

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3

이 버전 9.1과 함께 서버에 서버 버전 9.3을 설치했습니다. 새로 부팅 한 후 pg_lsclusters를 실행하면 다음이 제공됩니다.

Ver Cluster Port Status Owner    Data directory               Log file
9.1 main    5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main    5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log

그런 다음 업그레이드 후 유지 관리를 수행했습니다. pg_dump를 사용하여 9.1 서버에서 여러 테이블을 내 보낸 다음 9.3 서버로 복원했습니다. 그런 다음 9.1 및 9.3에 대한 구성 파일을 열고 /etc/postgresql/$VERSION/main/postgresql.conf포트 번호를 바꾸어 psql 클라이언트가 기본적으로 새 서버에 연결합니다.

내 질문은 이것입니다. 9.1과 9.3은 부팅시 시작됩니다. 시스템 메모리의 약 5 %를 차지하므로 9.1 자동 부팅을 방지하고 싶습니다. 어떻게해야합니까?

상담 된 자료 :

서버 시작에 관한 PostgreSQL doc 페이지는 표준 init.d 디렉토리를 가리 킵니다. 내 init.d 디렉토리에는 스크립트가 포함되어 있습니다 postgresql. 이 스크립트는 하나의 버전 만 실행하도록 구성 할 수 있지만 필요한 변경 사항은 분명하지 않습니다.

http://www.postgresql.org/docs/9.1/interactive/server-start.html

아래 게시물은 매우 유익하지만 시작시 클러스터를 비활성화하는 방법이 아니라 클러스터를 제거하는 방법을 보여줍니다. 추가 정보를 검색 할 수 있으므로 이전 클러스터를 설치된 상태로 두려고합니다.

여러 개의 postgresql 서버가 설치되어 있다고 생각하는데 '추가'서버를 어떻게 식별하고 삭제합니까?

시스템 로딩이 완료되면 서버를 죽이는 스크립트 작성을 고려했지만 비효율적 인 것 같습니다. 부팅시 버전 9.1을 비활성화하는 더 확실한 방법이 있습니까?

답변:


43

해킹, 편집의 적은 /etc/postgresql/9.1/main/start.conf및 교체 automanualdisabled.


ch2500 감사합니다! 이 솔루션은 직관적이며 필요한 것을 정확하게 수행합니다.
BitPusher16

몇 시간 동안 이와 같은 답변을 찾고 있습니다. 대단히 감사합니다.
Jonathan Vanasco

10

데비안은 pg_ * cluster 유틸리티와 같은 여러 스크립트를 생성하여 단일 서버에서 여러 버전의 PostgreSQL을 쉽게 설치하거나 설치할 수 있으므로 postgresql.org에 문서화되어 있지 않습니다.

PostgreSQL의 자체 .deb패키지가 데비안과 동일한 시작 메커니즘을 사용 하는지 확실하지 않지만 /etc/init.d/postgresql-9.1(빈 파일이더라도) 생성 한 패키지를 보면 /etc/init.d/postgresql해당 버전을 개별적으로 제어하려고하지 않을 것이라고 가정합니다. 기본적으로 시작하십시오. 여전히 시작할 수 있습니다

service postgresql start 9.1

버전 검색을 무시합니다.


감사합니다 DerfK, 이것이 효과가있었습니다. 제안한 파일을 만들고 해시 뱅을 넣고 실행 파일로 만들었습니다. 내가 다시 부팅 할 때, pg_lsclusters는했다 : Ver Cluster Port Status Owner Data directory Log file 9.1 main 5433 down postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log 9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
BitPusher16

PostgreSQL 데비안 패키징 팀의 패키지는 데비안 패키지와 동일합니다. 자체 sysv init 시작 스크립트를 해킹하는 대신 pg_ * cluster 인프라를 사용해야합니다.
Michael Renner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.