Windows에서 PostgreSQL을 약간 업그레이드하는 방법 (예 : 9.3.0에서 9.3.1)은 무엇입니까?


10

Enterprise DB 내장 Windows 설치 프로그램을 사용하여 PostgreSQL에서 9.3.0에서 9.3.1 로의 작은 업그레이드를 수행하는 권장 방법은 무엇입니까? 먼저 제거하거나 기존 설치 위에 설치해야합니까?

현재 설치는 postgresql-9.3.0-1-windows-x64.exe로 수행되었습니다. 이제 postgresql-9.3.1-1-windows-x64.exe를 사용하여 업그레이드하고 싶습니다.


당으로 문서 : 서버를 중지 새로운 바이너리를 설치하고 다시 시작합니다. 백업을하는 것이 좋으며 일반적으로 계획 B를 갖는 것이 좋습니다.
dezso

@dezso 링크 덕분에 9.3 설명서의 해당 섹션을 읽었지만 특히 Windows 설치 바이너리와 관련하여 약간 모호한 것으로 나타났습니다.
buzz3791

@ buzz3791 10.0에서 10.1은 새로운 버전 관리 체계로 약간 업그레이드되었으므로 질문 / 제목이 정확하지 않습니다. 나는 당신이 e.g. ...부분을 제거해야한다고 생각합니다 .
isapir

답변:


8

Windows에서는 postgresql 서비스를 중지 한 다음 기존 9.3.0 위에서 postgresql-9.3.1-1-windows-x64.exe를 실행하면됩니다. 제거가 필요하지 않습니다. 물론 백업을 권장합니다.

Windows의 업데이트 절차에 대한 명확하고 명확한 문서가 없습니다. @dezso에서 제공하는 설명서 링크가 현재 설명서에서 https://www.postgresql.org/docs/current/static/upgrading.html 로 이동했습니다.

PostgreSQL 릴리스 노트는 일반적으로 부록 E의 마이그레이션 팁을 설명합니다. 예를 들어,

Windows 설치 관리자 정보의 가장 좋은 출처는 Enterprise DB 포럼이었습니다. 다음은 질문을 해결 한 게시물입니다.

업그레이드 정보는 릴리스마다 이동합니다. 예를 들어

2017 년 6 월 현재 EnterpriseDB는이 답변 ( https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-announces-) 의 링크에 영향을주는 커뮤니티 토론 포럼을 대체했습니다. 새로운 postgres-rocks-online-user-forum ). Wayback Machine의 원래 게시물 중 일부를 찾아 낼 수있었습니다. 내가 고칠 수 없었던 하나의 죽은 링크는 "2010 1 월-8.4.1에서 8.4.2로 업그레이드", http://forums.enterprisedb.com/posts/list/2115.page#7888 입니다.


4

레코드의 경우 Enterprise DB에서 Windows 용 설치 프로그램 실행 (기본값 최소한 현재 버전 Postgres 9.4 Postgres 사이트에서 링크 됨)에서 하면 postgresql서비스 를 중지 할 필요가 없습니다 . 설치 관리자가이를 수행합니다. 연결이있는 경우에도 연결을 다시 설정해야합니다 (대부분의 클라이언트에서 자동으로 수행).

현재 를 가장 잘 참조하십시오 매뉴얼을 ( 현재 버전의 Postgres 사용).

http://www.postgresql.org/docs/current/interactive/upgrading.html


3

방금 Postgres 10.0을 10.1로 업그레이드했으며 매우 빠르고 쉬운 업그레이드였습니다.

https://www.enterprisedb.com/download-postgresql-binaries 에서 바이너리를 다운로드하여 압축을 푼 C:\postgres다음 디렉토리 이름 pgsqlpgsql-10.1 불필요한 것으로 간주 될 때까지 나는 이전 버전을 유지할 수 있도록.

나는 dll 파일을 복사 msvcp120.dllmsvcr120.dllC:\postgres\pgsql-10.1\bin 아마 필요한 것보다 훨씬 더 팽창을 추가 "설치"를 통해 간단한 설치를 선호하기 때문이다.

그런 다음 과거에 작성한이 간단한 배치 스크립트를 사용했습니다.

set MAJOR_VERSION=10
set MINOR_VERSION=1

set SERVICE_NAME=pgsql-%MAJOR_VERSION%.%MINOR_VERSION%

set PGHOME=C:\postgres\%SERVICE_NAME%
set PGDATA=C:\postgres\pgdata%MAJOR_VERSION%

%PGHOME%\bin\pg_ctl.exe register -N %SERVICE_NAME% -U LocalSystem -S auto --pgdata=%PGDATA%

::: to unregister old service:
::%PGHOME%\bin\pg_ctl.exe unregister -N %SERVICE_NAME%

SELECT version();이전 버전을 확인하기 위해 psql에서 실행 했습니다.

postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.0, compiled by Visual C++ build 1800, 64-bit

그런 다음 배치 서비스를 실행하여라는 서비스를 설치했습니다 postgres-10.1.

나는 이전 서비스를 중지하고 설정 Startup TypeDisabled, 새로운 서비스를 시작했다.

SELECT version();psql에서 다시 실행 하면 업그레이드가 확인되었습니다 (이전 서버를 중지했을 때 연결이 중단되어 두 번 실행해야 함).

postgres=# select version();
server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.1, compiled by Visual C++ build 1800, 64-bit

메이저 버전을 업그레이드하려면 데이터 디렉토리 pg_upgrade또는 다른 방법으로 데이터 디렉토리를 업데이트해야 하지만, 약간의 업그레이드에서는이 방법이 매력처럼 작동했습니다.


1
나는 이것을 이것을 여기에 게시했다. 난 그냥 업그레이드 지침을 다음 10.110.2그것은 좋은 일했다.
isapir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.