PostgreSQL ohne Installation benutzen: Welche Dateien sind zwingend erforderlich?

Alle anderen Fragen und Probleme zur Installation.
Antworten
burnersk
Neuer Benutzer
Beiträge: 2
Registriert: Mo 25. Mär 2019, 11:53

PostgreSQL ohne Installation benutzen: Welche Dateien sind zwingend erforderlich?

Beitrag von burnersk » Mo 25. Mär 2019, 12:05

Ich schreibe gerade eine Anwendung, welche auf eine Datenbank mit echter Unterstützung für parallele Zugriffe daher kommt. Natürlich gibt es auch z.B. SQLite oder Firebird Embedded, hier ist aber das Problem der parallelen Zugriffe von unterschiedlichen Instanzen. Nach langer Lektüre der Lizenzvereinbarungen verschiedener Datenbanken und ihrerer Connectoren, blieb allein PostgreSQL mit dem Npgsql Connector übrig.

Meiner Anwendung kann man über eine Konfiguration sagen, wie sie welche PostgreSQL-Datenbank ansprechen soll. Der Nutzer kann also selbst entscheiden, ob er eine eigene (richtig installierte) PostgreSQL-Datenbank nutzt, oder die mitgelieferte Datenbank, welche als Standardziel konfiguriert ist. Der Nutzer kann also eine eigene Datenbank konfigurieren, muss es aber nicht (Standardmäßig wird die "embedded" PostgreSQL Datenbank genutzt). Sofern die "embedded" PostgreSQL-Datenbank genutzt werden soll, startet die Anwendung selbst die PostgreSQL Instanz auf einem zufälligen Port und nutzt diesen in den Verbindungsparametern des Connectors. Soviel zum Intro.

Nun zu meiner Frage: Welche Windows 32-Bit Dateien aus dem "Installations"-ZIP-Archiv sind für die korrekte Ausführung von PostgreSQL zwingend erforderlich? Und zwar technisch (Binaries) und rechtlich (Lizenztext, etc.). Ich möchte so wenig Dateien mitliefern bzw. zusätzlichen Speicherplatz belegen wie möglich ist.
Kann man vielleicht einige Dateien (Feature-Bibliotheken) weglassen, wenn man deren Funktionen nicht nutzt und PostgreSQL startet trotzdem?

Noch mal zusammenfassend: Ich möchte mit meiner Anwendung ein Unterordner ausliefern, in welchem PostgreSQL Binaries drin liegen. Diese werden dann durch meine Anwendung kontrolliert (gestartet/beendet). Der Unterordner soll so wenig Dateien wie möglich beinhalten bzw. so wenig wie möglich Speicherplatz verbrauchen.

castorp
Erfahrener Benutzer
Beiträge: 1174
Registriert: Sa 27. Jun 2009, 22:24
Wohnort: Bayern

Re: PostgreSQL ohne Installation benutzen: Welche Dateien sind zwingend erforderlich?

Beitrag von castorp » Mo 25. Mär 2019, 12:30

Letztendlich sind nur die "bin", "lib" und "share" Verzeichnisse notwendig.

Die aktuelle Postgres Version 11 gibt es übrigens nicht mehr als 32bit Version - und ich sehe auch keinen Grund warum man in 2019 noch eine 32bit Version davon installieren wollte. Vermutlich könnte man ein wenig Platz sparen, wenn man nicht alle Extensions mit ausliefert. Aber um 2 oder 3MB zu sparen, würde ich mir die Mühe nicht machen.

Du musst aber dann auch (automatisiert) dafür sorgen, dass vor/bei der ersten Verwendung ein Datenverzeichnis via initdb angelegt wird.

Postgres benötigt noch die Visual C++ Runtime DLLs die nicht auf allen Rechner unbedingt vorhanden sind. Also solltest Du die auch noch in das bin Verzeichnis kopieren falls Du die nicht anderweitig auf dem System installierst.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

burnersk
Neuer Benutzer
Beiträge: 2
Registriert: Mo 25. Mär 2019, 11:53

Re: PostgreSQL ohne Installation benutzen: Welche Dateien sind zwingend erforderlich?

Beitrag von burnersk » Mo 25. Mär 2019, 13:04

Hallo castorp, vielen Dank für deine Antwort.

Ich habe noch einen großen Teil von Benutzern mit Windows XP SP3 32-Bit Systemen; deswegen die 32-Bit Anforderung. Außerdem plane ich die Nutzung der Version 9.6, da diese Version im Debian Repository ist (Debian ist nur auf meinem Server). So habe ich für allen Anwendungen und auf dem Server eine Datenbank(versions)basis.

Bevor ich das jetzt versuche und es aus unglücklichen [sic] Zufall bei mir klappt [sic] (weil zufällig nicht auf die Bibliothek zugegriffen wurde)...
Sind PostgreSQLs Bibliotheken komplett dynamisch, sprich es gibt die Funktion der Bibliothek nicht mehr (wird nicht mehr angeboten), oder steht sie (virtuell) noch zur "Verfügung" und PostgreSQL crashed beim Versuch auf die Funktion der nicht mehr vorhandenen Bibliothek zuzugreifen?

Antworten