아마존 EC2에서 우분투 12.04 64 비트를 사용하고 있습니다. postgresql을 9.1에서 9.2로 업그레이드하려고합니다.postgresql 클러스터를 9.1에서 9.2로 업그레이드하는 중 오류가 발생했습니다.
$ uname -a
Linux db2 3.2.0-32-virtual #51-Ubuntu SMP Wed Sep 26 21:53:42 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
$ apt-cache policy postgresql
postgresql:
Installed: 9.1+136~precise
Candidate: 9.1+136~precise
Version table:
*** 9.1+136~precise 0
500 http://ppa.launchpad.net/pitti/postgresql/ubuntu/ precise/main amd64 Packages
100 /var/lib/dpkg/status
9.1+129ubuntu1 0
500 http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
9.1+129 0
500 http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
내가 소식을 업그레이드 프로세스는 다음과 같습니다
$ sudo add-apt-repository ppa:pitti/postgresql
$ sudo apt-get update
$ sudo apt-get install postgres-9.2
$ sudo pg_dropcluster --stop 9.2 main
$ sudo pg_upgradecluster 9.1 main /var/lib/postgresql/9.2
Stopping old cluster...
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Creating new cluster (configuration: /etc/postgresql/9.2/main, data: /var/lib/postgresql/9.2)...
Moving configuration file /var/lib/postgresql/9.2/postgresql.conf to /etc/postgresql/9.2/main...
Moving configuration file /var/lib/postgresql/9.2/pg_hba.conf to /etc/postgresql/9.2/main...
Moving configuration file /var/lib/postgresql/9.2/pg_ident.conf to /etc/postgresql/9.2/main...
Configuring postgresql.conf to use port 5433...
Disabling connections to the new cluster during upgrade...
Roles, databases, schemas, ACLs...
Fixing hardcoded library paths for stored procedures...
ERROR: cannot set transaction read-write mode during recovery
Error: Could not fix library paths
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Error during cluster dumping, removing new cluster
어떤 도움을 주시면 감사하겠습니다. 감사합니다.
이상한 점은'pg_upgrade' 문제처럼 보입니다. 여기에 아무런 응답이 없다면 [pgsql-general mailing list] (http://archives.postgresql.org/pgsql-general/)에 묻는 것이 좋습니다. 'ps'에서 실제로'pg_upgrade' 명령 행을 찾을 수있는 기회는 무엇입니까? –
@CraigRinger : pg_upgradecluster는 Perl 스크립트입니다. https://gist.github.com/3909063 나는 그걸 밟을지도 모른다. 메일 링리스트 제안에 감사드립니다. – onk
그게'pg_wrapper'의 일부인'pg_upgradecluster'처럼 보입니다. 실제 작업을하는 커맨드는'pg_upgrade'라고합니다. 이것은 PostgreSQL과 함께 배포되는 C 프로그램입니다. 'pg_upgradecluster'는'pg_upgrade'를 호출해야하지만, 그 시점에 도달하기 전에 실패했을 수 있습니다. –