Update Debian 12 > 13 / Postgres 15 > 17

Started by Spheron, June 22, 2026, 10:29:41 AM

Previous topic - Next topic

Spheron


Hello @all,

today i updated our NetXMS server vom Debian 12 to 13. At the first try i upgraded, as part of the Debian Update, the Postgres Cluster from 15 to 17 too. But there are many warnings:

Example:
Fixing hardcoded library paths for stored procedures...
WARNUNG:  Version von Sortierfolge für Datenbank »postgres« stimmt nicht überein
DETAIL:  Die Datenbank wurde mit Sortierfolgenversion 2.36 erzeugt, aber das Betriebssystem hat Version 2.41.
TIP:  Bauen Sie alle Objekte in dieser Datenbank, die die Standardsortierfolge verwenden, neu und führen Sie ALTER DATABASE postgres REFRESH COLLATION VERSION aus, oder bauen Sie PostgreSQL mit der richtigen Bibliotheksversion.
Upgrading database postgres...
WARNUNG:  Version von Sortierfolge für Datenbank »postgres« stimmt nicht überein
DETAIL:  Die Datenbank wurde mit Sortierfolgenversion 2.36 erzeugt, aber das Betriebssystem hat Version 2.41.
TIP:  Bauen Sie alle Objekte in dieser Datenbank, die die Standardsortierfolge verwenden, neu und führen Sie ALTER DATABASE postgres REFRESH COLLATION VERSION aus, oder bauen Sie PostgreSQL mit der richtigen Bibliotheksversion.
Fixing hardcoded library paths for stored procedures...
WARNUNG:  Version von Sortierfolge für Datenbank »netxms« stimmt nicht überein
DETAIL:  Die Datenbank wurde mit Sortierfolgenversion 2.36 erzeugt, aber das Betriebssystem hat Version 2.41.
TIP:  Bauen Sie alle Objekte in dieser Datenbank, die die Standardsortierfolge verwenden, neu und führen Sie ALTER DATABASE netxms REFRESH COLLATION VERSION aus, oder bauen Sie PostgreSQL mit der richtigen Bibliotheksversion.
Upgrading database netxms...
WARNUNG:  Version von Sortierfolge für Datenbank »netxms« stimmt nicht überein
DETAIL:  Die Datenbank wurde mit Sortierfolgenversion 2.36 erzeugt, aber das Betriebssystem hat Version 2.41.
TIP:  Bauen Sie alle Objekte in dieser Datenbank, die die Standardsortierfolge verwenden, neu und führen Sie ALTER DATABASE netxms REFRESH COLLATION VERSION aus, oder bauen Sie PostgreSQL mit der richtigen Bibliotheksversion.

So i decided to rollback the snapshot of the VM and upgrade Debian without the cluster update of Potsgres.

Are there any howto's or links to websites where i can figure out how i make the Postgres Cluster Update from 15 to 17 on the "right" way for NetXMS?

Greetings
Marco

Alex Kirhenshtein

Hi,

Those messages are warnings, not errors. Upgrade did not fail. This is normal PostgreSQL collation mismatch. Has nothing to do with 15→17 — comes only from Debian 12→13, because Trixie has glibc 2.41 instead of 2.36, and PostgreSQL remembers glibc version used to build indexes.

For in-place upgrade use pg_upgradecluster. Stop NetXMS, make dump for safety, drop empty PG17 cluster that was auto-created, then upgrade:

systemctl stop netxms-server
sudo -u postgres pg_dump -Fc netxms > /backup/netxms.dump   # safety net
pg_dropcluster 17 main --stop        # remove empty auto-created PG17 cluster
pg_upgradecluster 15 main
nxdbmgr check
systemctl start netxms-server
# when verified:  pg_dropcluster 15 main

Important detail: pg_upgradecluster without --method=upgrade uses dump method inside. It rebuilds all indexes under new glibc, so you get no collation warnings and no reindex needed. Only -m upgrade / -m link (fast file-reuse mode) makes the warnings. If you use that mode, fix it correct way — reindex first, then refresh — for each database (netxms, postgres, template1):

REINDEX DATABASE netxms;
ALTER DATABASE netxms REFRESH COLLATION VERSION;

Do not run only REFRESH. It hides warning but leaves bad-sorted indexes. Reindex is mandatory.