postgres 데이터를 8.4에서 9.1로 어떻게 마이그레이션합니까?


27

우분투 개발 시스템을 11.04에서 11.10으로 업그레이드했습니다. 이 과정에서 내 postgres도 8.4에서 9.1로 업그레이드되었습니다.

그러나 나는 모든 데이터를 잃어버린 것 같습니다. 내가 보면 8.4에 대한 내 데이터가 폴더에 /var/lib/postgres/8.4/main있고 새 데이터베이스가에 있음을 알 수 /var/lib/postgres/9.1/main있습니다.

내 데이터를 새 버전으로 마이그레이션하는 가장 좋은 방법은 무엇입니까? 파일을 복사 할 수 있습니까?

답변:


27
su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

처음에는 두 가지 이유로 나에게 효과가 없었습니다. 첫째, postgresql-8.4는 언젠가 unistalled되었으므로 다시 설치해야했습니다.

sudo apt-get install postgresql-8.4

그런 다음 8.4로 이동 하여 10으로 postgresql.conf변경 max_connections해야했습니다. 당신은 conf 파일을 찾을 수 있어야합니다/etc/postgresql/8.4/main/postgresql.conf


한 컴퓨터에서 상위 3 줄이면 충분했습니다. 다른 한편으로 말했듯이 8.4를 다시 설치해야 작동합니다. 도와 주셔서 감사합니다.
nathanvda

"pg_upgradecluster"스크립트는 데이터베이스 사용자를 제공해야하는 경우를 처리하지 않습니다. (그렇다면 제공 방법을 알 수 없습니다.)
Pointy

당신은 얻을 경우 Error: specified cluster is not running변경 한 후 다시 시도 할 때 max_connections사용 pg_ctlcluster 8.4 main start.
Skippy le Grand Gourou 2018 년

축소 max_connections는 저에게 효과가 없었습니다. 오류 메시지가 제공하는 대체 솔루션 shared_buffers으로 200MB에서 20MB로 줄어 들었 습니다.
Serrano

4

11.10으로 업그레이드 한 후 PostgreSQL 9.1이 설치되었지만 실행 버전은 8.4입니다.

난 노력 했어:

su postgres
pg_dropcluster --stop 9.1 main    
pg_upgradecluster 8.4 main

오류를보고했습니다.

Stopping old cluster...
pg_ctl: servidor não desligou
Error: Could not stop old cluster

따라서 다른 창에서 :

$ sudo service postgresql-8.4 stop
 * Stopping PostgreSQL 8.4 database server                               [ OK ] 
jgr@cagliari:~$ sudo service postgresql-8.4 start
 * Starting PostgreSQL 8.4 database server                               [ OK ] 

그리고 다시 :

pg_upgradecluster 8.4 main

pgRouting과 관련된 오류가보고되었습니다. 밤새도록 시간이 걸렸지 만 나중에 데이터베이스가 9.1로 업그레이드되었습니다. PostGIS도 1.5.3으로 업그레이드되었습니다.


참고로, /var/lib/postgresql/9.1 디렉토리에서 "du -hs"를 수행 한 다음 /var/lib/postgresql/8.4/에서 동일한 명령의 출력과 비교 한 결과, 해당 명령의 출력 크기에 따라 복사 된 양을 측정하십시오.
Joe J

나는 이것이 논의되고있는 질문이 아니라는 것을 안다. 그러나 나는 당신이 설명한 것과 같은 문제에 부딪 쳤습니다. pg_upgradecluster가 이전 클러스터를 중지 할 수없는 이유는 Tomcat 인스턴스가 연결을 사용 중이고 Postgres가이를 닫을 수 없기 때문입니다. 이것이 누군가를 돕기를 바랍니다.
bplayer

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