Ich habe gerade Postgres 10.0 auf 10.1 aktualisiert und es war ein sehr schnelles und einfaches Upgrade.
Ich habe die Binärdateien von https://www.enterprisedb.com/download-postgresql-binaries heruntergeladen und entpackt C:\postgres
und dann das Verzeichnis pgsql
in umbenannt , pgsql-10.1
damit ich ältere Versionen behalten kann, bis sie als unnötig erachtet werden.
Ich kopierte die DLL - Dateien msvcp120.dll
und msvcr120.dll
zu , C:\postgres\pgsql-10.1\bin
weil ich es vorziehen , dass eine einfache Installation über den „Installer“ , die wahrscheinlich viel mehr aufblasen fügt als nötig.
Ich habe dann dieses einfache Batch-Skript verwendet, das ich in der Vergangenheit geschrieben habe:
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%
Ich lief SELECT version();
in psql, um die alte Version zu bestätigen:
postgres=# select version();
-[ RECORD 1 ]-------------------------------------------------------
version | PostgreSQL 10.0, compiled by Visual C++ build 1800, 64-bit
Ich habe dann das Batch-Skript ausgeführt, über dem ein Dienst mit dem Namen installiert wurde postgres-10.1
.
Ich hielt den alten Dienst und legen Sie seine Startup Type
zu Disabled
, und den neuen Dienst gestartet.
Das SELECT version();
erneute Ausführen in psql bestätigte das Upgrade (musste zweimal ausgeführt werden, da die Verbindung abgebrochen wurde, als ich den alten Server stoppte):
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
Denken Sie daran, dass für das Upgrade einer Hauptversion das Datenverzeichnis mit pg_upgrade
einer anderen Methode aktualisiert werden muss. Bei einem kleinen Upgrade hat diese Methode jedoch wie ein Zauber gewirkt.