PostgreSQL® Versions-Upgrade von Version 13 auf Version 16
Wichtig: Es wird dringend empfohlen, vor der
Aktualisierung der Version eine vollständige Sicherungskopie der Datenbank zu erstellen,
damit versehentlich gelöschte Daten wiederhergestellt werden können.
Anmerkung: Sie können die Indizes der PostgreSQL®-Datenbank vor oder nach
dem Upgrade von BRIN auf BTREE ändern. Siehe Kapitel PostgreSQL®-Schema. Beachten Sie, dass die Statistiken
der Datenbank neu erstellt werden müssen. - siehe Schritt
8.
- Installieren Sie PostgreSQL® 16
- Richten Sie das PGDATA-Verzeichnis für PostgreSQL® 16 ein:
- Entscheiden Sie, welches Verzeichnis Sie als PGDATA-Verzeichnis für PostgreSQL® 16 verwenden wollen
- Löschen Sie den Inhalt des gewählten Verzeichnisses
- Vergewissern Sie sich, dass die Berechtigungen für dieses Verzeichnis
korrekt eingestellt sind:
- Vergleichen Sie die Berechtigungen des Datenverzeichnisses von PostgreSQL® 16 mit dem der PostgreSQL® 13-Installation.
- Wenn Sie PG als Windows-Dienst laufen lassen wollen, stellen Sie sicher, dass Sie dem Benutzer NETWORK SERVICE volle Berechtigungen geben.
-
Initialisieren Sie das gewählte PGDATA-Verzeichnis mit dem Befehl initdb aus der PostgreSQL® 16-Installation:
Windows:"C:\Program Files\PostgreSQL\16\bin\initdb.exe" -D <new PGDATA directory for PostgreSQL® 16> -U postgres
Linux:/usr/pgsql-16/bin/initdb -D <new PGDATA directory for PostgreSQL® 16> -U postgres
- Setzen Sie alle lokalen Adressen auf vertrauenswürdig in der Datei: C:\Program Files\PostgreSQL\16\data\pg_hba.confpg_hba.conf im alten PGDATA-Verzeichnis von PostgreSQL® 13
- Fahren Sie die PostgreSQL® 13-Datenbank herunter:
- Wenn Sie PostgreSQL® 13 als Windows-Dienst betreiben, dann beenden Sie einfach den Dienst postgresql-x64-13.
-
Andernfalls verwenden Sie pg_ctl aus der PostgreSQL® 13-Installation:
Windows:"C:\Program Files\PostgreSQL\13\bin\pg_ctl.exe" stop -D <old PGDATA directory for PostgreSQL® 13> -U postgres
Linux:/usr/pgsql-13/bin/pg_ctl -D <old PGDATA directory for PostgreSQL® 13> stop
-
Aktualisieren Sie Ihre PostgreSQL® 13-Datenbank auf PostgreSQL® 16 mit:
aus der PostgreSQL® 16-Installation:pg_upgrade
Windows:"C:\Program Files\PostgreSQL\16\bin\pg_upgrade.exe" -b "C:\Program Files\PostgreSQL\13\bin" -B "C:\Program Files\PostgreSQL\16\bin" -d <old PGDATA directory for PostgreSQL® 13> -D <new PGDATA directory for PostgreSQL® 16> -j 4 -k -p <port of PostgreSQL® 13 server> -P <port of PostgreSQL® 16 server> -U postgres
Linux:/usr/pgsql-16/bin/pg_upgrade -b /usr/pgsql-13/bin -B /usr/pgsql-16/bin -d <old PGDATA directory for PostgreSQL® 13> -D <new PGDATA directory for PostgreSQL® 16> -j 4 -k -p <port of PostgreSQL® 13 server> -P <port of PostgreSQL® 16 server> -U postgres
- Ändern Sie die
im neuen PGDATA-Verzeichnis von PostgreSQL® 16 entsprechend Ihren Bedürfnissen (z.B. kopieren vom alten PGDATA von PostgreSQL® 13 ).pg_hba.conf
- Starten Sie den neuen PostgreSQL® 16 Server:
- Wenn Sie es unter Windows als Dienst starten möchten, öffnen Sie Dienste und stellen Sie sicher, dass das Argument für den D-Switch des postgresql-x64-16 auf das richtige PGDATA-Verzeichnis neues PGDATA-Verzeichnis für PostgreSQL® 16> verweist und starten Sie den Dienst.
-
Wenn Sie es manuell starten, verwenden Sie:
pg_ctl:
Windows:"C:\Program Files\PostgreSQL\16\bin\pg_ctl.exe" start -D <new PGDATA directory for PostgreSQL® 16> -w -U postgres
Linux:/usr/pgsql-16/bin/pg_ctl -D <new PGDATA directory for PostgreSQL® 16> start
- Nach dem Start des Servers, schließen Sie das Versionsupgrade mit
dem Aufruf des nachfolgenden Kommandos ab:
-
Windows:
"C:\Program Files\PostgreSQL\16\bin\psql.exe" -U postgres -d winccoa -c "analyze;"
-
Linux:
/usr/pgsql-16/bin/pg_ctl -U postgres -d winccoa -c "analyze;"
-
Windows: