방금 Postgres 10.0을 10.1로 업그레이드했으며 매우 빠르고 쉬운 업그레이드였습니다.
https://www.enterprisedb.com/download-postgresql-binaries 에서 바이너리를 다운로드하여 압축을 푼 C:\postgres
다음 디렉토리 이름 pgsql
을pgsql-10.1
불필요한 것으로 간주 될 때까지 나는 이전 버전을 유지할 수 있도록.
나는 dll 파일을 복사 msvcp120.dll
및 msvcr120.dll
에C:\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 Type
에 Disabled
, 새로운 서비스를 시작했다.
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
또는 다른 방법으로 데이터 디렉토리를 업데이트해야 하지만, 약간의 업그레이드에서는이 방법이 매력처럼 작동했습니다.