2012-07-06 3 views
4

Mac OS X 10.6.x에서 postgres를 설치했습니다. 나는 포스트 그레스 데이터베이스 버전을 실행하는 경우 : I는 서버의 버전을 확인postgres 데이터베이스와 서버의 충돌 버전

psql --versionpsql (PostgreSQL) 9.1.1 
contains support for command-line editing 

: 내가 도망 그래서

psql -c "select version();"                  version                  
-------------------------------------------------------------------------------------------------------------------------------------------------- 
PostgreSQL 9.0.5 on x86_64-apple-darwin10.8.0, compiled by GCC i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3), 64-bit 
(1 row) 

bash-3.2$ psql 
psql (9.1.1, server 9.0.5) 
WARNING: psql version 9.1, server version 9.0. 
     Some psql features might not work. 

내가 무엇을 그 확실하지 않다 기능이 있습니다. 이러한 버전은 상충됩니다. 나는 postgres를 사용하는 것에 익숙하지 않기 때문에 postgres 서버를 업그레이드하는 방법을 모른다. 온라인에서 검색하려고했지만 많은 도움을 얻지 못했습니다. 나는 postgres를 제거하고 재설치하고 싶지 않다. 어쨌든 내가 모순없이 서로 사용할 수 있습니까? 또는 서버를 데이터베이스와 동일한 버전으로 업그레이드 하시겠습니까?

편집 :

which psql 
/opt/local/lib/postgresql91/bin//psql 

which postgres 
/opt/local/lib/postgresql91/bin//postgres 

ps -eaf|grep postgres 
    0 60  1 0 0:00.07 ??   0:00.09 /opt/local/bin/daemondo --label=postgresql90-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql90-server/postgresql90-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql90-server/postgresql90-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql90-server/postgresql90-server.wrapper restart ; --pid=none 
    103 3971 3967 0 0:00.69 ??   0:01.17 postgres: writer process  
    103 3972 3967 0 0:00.67 ??   0:00.88 postgres: wal writer process  
    103 3973 3967 0 0:00.18 ??   0:00.23 postgres: autovacuum launcher process  
    103 3974 3967 0 0:00.19 ??   0:00.21 postgres: stats collector process  
    0 3616 2726 0 0:00.04 ttys000 0:00.06 su postgres 
    103 3967 3619 0 0:00.23 ttys000 0:00.34 postgres -D /usr/local/pgsql/data 
    0 4559 4055 0 0:00.03 ttys001 0:00.05 su postgres 
    103 5922 4560 0 0:00.01 ttys001 0:00.01 grep postgres 

감사합니다.

+0

의 KyngChaos의 맥 빌드를 설치하려고 해요? 설정 파일을 수정 했습니까? 'which psql'과'postgres'가보고하는 것은 무엇입니까? 'ps -eaf | grep postgres'는 무엇을보고합니까? – vyegorov

+0

나는 내 질문에 – Maddy

답변

4

이전에 PostgreSQL을 이미 설치했다고 가정합니다. 이 경우 데이터베이스를 업그레이드해야합니다. 이것은 중요한 단계입니다. 소프트웨어를 업그레이드하는 것은 불가능합니다.

현재 실행중인 서버를 중지하십시오.

sudo launchctl list | grep -Ei "macports|postgres" 

그런 다음 수행 : 첫째, 현재 실행중인 PostgreSQL을의 소스를 확인

sudo launchctl unload -w <OldPostgreSQL.plist> 

과 같은 새로운 서버 시작 : 나는 새로운 PLIST는
을 것으로 기대

sudo launchctl load -w <NewPostgreSQL.plist> 

/Library/LaunchDaemons/org.macports.postgresql91-server.plist. 경우


당신은 업그레이드해야합니다

  1. 가 먼저 pg_dump새로운 버전으로 데이터베이스의 전체 덤프를 수행해야합니다.
  2. PGDATA 폴더에 initdb새 번호 버전을 실행하십시오.
  3. 위에서 설명한대로 서버를 시작하십시오.
  4. 전체 덤프를 업로드하십시오.

여기 제가 small description입니다. 그리고 이것은 official PostgreSQL documentation on upgrading between major releases입니다. 광산은 사제가 여기에 설치되었다

+1

업그레이드를위한 비 pg_dump 메소드에 대해서는 참조 된 문서 맨 아래에있는 작은 부분에 유의하십시오. 대개 테라 바이트 급 데이터의 경우에도 pg_upgrade를 사용하여 단 몇 분만의 다운 타임으로 변환 할 수 있습니다. 잠시 후 측정 한 다운 타임이 필요하면 슬론 복제 접근법을 살펴보십시오. 이러한 방법 중 하나를 사용하려면 두 버전의 소프트웨어를 동시에 사용할 수 있어야합니다. – kgrittn

1

새로 설치하기 전에 이미 PostgreSQL 버전이있는 경우 이런 일이 발생할 수 있습니다.

PostgreSQL에는 두 가지 버전이 있으므로 두 가지 버전의 psql이 필요합니다. 기본적으로 psql을 입력하면 시스템에서 어떤 데이터베이스 버전으로 연결하려고하는지 확신 할 수 없습니다.

이전 버전을 제거하십시오. 또는 새 버전의 서버와 함께 새로운 psql을 설치하십시오.

+0

mm을 추가했습니다. 그러나 나는 서버를 업데이트하는 쉬운 방법이 없다고 생각한다. 고맙습니다. – Maddy

1

은 내가 한 (아무 버전 문제를 작동하는 psql의에 나를 데리고) 무엇 - 당신은 PostgreSQL을 설치하는 방법 PostgreSQL을

step 0 (already did): 
brew uninstall postgresql 

step1 
which psql 
=> "locationpath" (in my case, /usr/bin/psql) 
sudo rm "locationpath" 

step2 
#inside ~/.bash_profile 
export PATH=/usr/local/pgsql-9.3/bin:$PATH 

step3 
psql 
#works 
관련 문제