Installation PostgreSQL 11.8 whoami fehler

Hallo,

ich habe mir den Installer der PostgreSQL-Version 11.8 heruntergeladen. Das ist der EDB-Installer. Die Installation der Version 12.3 hat damit schon gut funktioniert. Die Version 12 war aber mit unseren Programm nicht kompatibel. Das Feld adsrc der Tabelle pg_attrdef fehlte den Programmen. Ich versuche es nun mit der 11.8.

Nachdem ich die exe-Datei der PosstgreSQL 11.8 anklicke, erscheint die Meldung:
Unknown error while running C:\Windows\System32\whoami

das LOG sagt:

Log started 06/02/2020 at 09:58:20
Preferred installation mode : qt
Trying to init installer in mode qt
Mode qt successfully initialized
Setting variable whoami from C:\Windows\System32\whoami
Script exit code:

Script output:

Script stderr:

Unknown error while running C:\Windows\System32\whoami
Exiting with code 1

Ich habe es auf einem Server und einem PC versucht. Immer die gleiche Meldung. Was bedeutet das?

Gruß

Dann solltest Du den Treiber (JDBC/ODBC/…) den Dein Programm verwendet aktualisieren.

yeah, aus den release-notes zu 12:

  • Remove obsolete pg_attrdef . adsrc column (Peter Eisentraut)This column has been deprecated for a long time, because it did not update in response to other catalog changes (such as column renamings). The recommended way to get a text version of a default-value expression from pg_attrdef is pg_get_expr(adbin, adrelid) .

Hallo und danke für die Rückmeldung.

In diesem Fall wären das der Autodesk Infrastructure Map Server 2017 (wird bald druch mapguidOS ersetzt) und AutoCAD Map 3D 2019. Die Verbindung wird über FDO erstellt und funktioniert auch aber der Infrastrcture Map Server 2017 z.B. kann dann keinen Layer erstellen.

Gruß

Ja, die Info kenne ich. Da ich mich aber noch nicht lange mit PostgreSQL beschäftige, sagte mir das nur, dass diese Felder entfernt wurden. Ich bin da leider ein Anfänger. Da dieses “Problem” in der aktuellen MapGuideOS-Version gefixt wurde, bin ich davon ausgegangen, dass es nicht so behoben werden kann.

Hast Du denn mal überprüft ob whoami.exe vorhanden ist? Das ist meiner Meinung nach schon ziemlich lange Standard bei Windows.Was für eine Windows Version verwendest Du denn?

Ich bin eh kein Fan von dem Installer (der versucht viel zu viele Checks die dann oft dazu führen, dass der Installer gar nicht läuft), ich nehme immer die ZIP Dateien, packe sie aus und lasse dann initdb manuell laufen. Danach erstelle ich den Windows Service via pg_ctl.

diese Tabelle gehört zu den systeminternen Katalogtabellen, die sich immer mal wieder ändern können. Reine Anwenderprogramme sollten NIE diese Tabellen nutzen, und Treiber wie ODBC / JDBC etc. sollten in aktuellen Versionen zumindest darauf eingestellt sein. Daher auch die Antwort von @castorp.

Ja, die ist vorhanden. Aktuell getestet 2012R2 und 2016 Server. Zudem auf einem Win7 PC. Ja, nicht mehr zeitgemäß aber es ist ein TestPC. PostgreSQL12 lief dort auch gut.

Ok, das erklärt schon einiges. Warum nutzen die Hersteller dann diese Tabellen. Naja, ist ein anderes Thema. Ich würde an dem Infrastructure Map Server nun ungern etwas anpacken. Der läuft im Produktiv-System.

Ich vermute sie nutzen das gar nicht direkt, sondern über Funktionen des ODBC/JDBC/… Treibers z.B. um die Spalten einer Tabelle zu ermitteln. Der Treiber wiederum liest die Informationen aus den Systemtabellen, deswegen muss der verwendete Treiber zu der Datenbankversion passen. Weißt Du über welche Schnittstelle Deine Programme mit der Datenbank reden? JDBC? ODBC? .Net? Was anderes? Diese Schnittstelle müsstest Du aktualisieren damit es mit Postgres 12 klappt.

Das ist der OSGeo-FDO-Provider für PostgreSQL/PostGIS.

Laut dieser Seite:

http://fdo.osgeo.org/OSProviderOverviews.html

gibt es keinen extra Provider für Postgres. Also vermute ich mal, dass ihr die ODBC Schnittstelle verwendet. Hast Du mal versucht den ODBC Treiber zu aktualisieren?

ODBC ist ein anderer FDO, der aber auch nicht funktionierte. Auf dieser Seite ist der für PostgreSQL aufgeführt:

http://download.osgeo.org/fdo/4.0.0/release/adsk/M040/binaries/win64/

Aber der ist auch wohl von 2015.

Dann bleibt wohl wirklich nur die manuelle Installation über das ZIP Archiv

Ja, ich fürchte. :smirk:
Scheinbar habe aber nur ich das Problem bei der 11er-Version. Entweder installieren das alle über ZIP oder den Installer für die 11.8 hat noch keiner genutzt.

Ich habe - glaube ich - mit 8.x das letzte Mal den Installer verwendet.

Ab dem Zeitpunkt, ab dem der Installer versucht hat, die Berechtigungen für das Data Directory zu setzen gingen die Probleme los. Bei mir war es eher die Tatsache, dass er sehr lange als Standardverzeichnis für das Data Directory “c:\Programme” vorgeschlagen hat, und das ist eigentlich ein absolutes No-Go.

Ich finde die Installation via ZIP und manuellem initdb wesentlich einfacher und verständlicher, da ich genau weiß, was auf dem System passiert. Der einzige Nachteil von dem Vorgehen ist, dass die Visual C Runtime nicht automatisch mit installiert wird. Aber in den allermeisten Fällen ist das ja eh schon vorhanden.

Ich fand das sehr praktisch, dass man relativ einfach pgAgent, postgis usw. auswählen konnte und es wurde direkt mitinstalliert.
Was ist denn an dem Pfad c:\Programme so verkehrt? Mal abgesehen, dass dort nur die Programme liegen sollten.

Ist es denn zwischen der 11 und der 12 wirklich so ein Performanceschub in den Abfragen?

Genau das: dort sollten einfach keine Anwendungsdaten gespeichert werden.
Das Verzeichnis ist aus guten Gründen ein (sehr stark) geschütztes Verzeichnis.

das kommt auf die Abfragen an. Partitioning ist in 12 erheblich erwachsener geworden. Mal als Beispiel.

Habe das hier gefunden. Der Unterschied ist wirklich schon groß teilweise.

1 „Gefällt mir“