Im Folgenden wird die Installation und Basiskonfiguration von PostgreSQL 13 auf Oracle Linux 8 beschrieben. Die Installationsanleitung ist nicht ausschließlich für Oracle Linux 8 erstellt, sondern kann in ähnlicher Weise auf andere Distributionen der RedHat-Familie angewendet werden.

Wer sich über Postgresql- und Datenbankthemen austauschen oder beraten möchte, kann gerne direkt Kontakt mit mir aufnehmen. >>Zum Kontaktformular

Systemanforderungen

Für die Installation wird ein Server oder eine VM benötigt. Das System weist in diesem Fall folgende Spezifikation auf:

  • Prozessor: 2 CPU Cores
  • Arbeitsspeicher: 8 GB
  • Speicherplatz: 20 GB
  • IP: 192.168.56.222
  • Betriebssystem: Oracle Linux 8
  • PostgreSQL Version: PostgreSQL 13

Hinweis: Für die Installation ist entweder Root-Zugriff oder sudo-Rechte notwendig.

Installation

Zuerst wird das PostgreSQL Repository eingebunden.

Copy to Clipboard

Danach wird das in Oracle Linux enthaltene PostgreSQL Modul deaktiviert.

Copy to Clipboard

Weiter geht es mit der Installation von PostgreSQL.

Copy to Clipboard

Nach der Installation der Pakete ist der Applikationsuser postgres verfügbar, der als Besitzer für den Betrieb und das Management genutzt wird. Der Wechsel auf diesen User erfolgt per sudo-Befehl.

Copy to Clipboard

Der Datenbankcluster wird mit dem postgres User initialisiert. Hierbei wird das data Verzeichnis angelegt, welches alle zugehörigen Verzeichnisse und Dateien beinhaltet. Dazu zählen:

  • Datendateien
  • Logdateien
  • Transaktionslogs (WAL)
  • Konfigurationsdateien
Copy to Clipboard

Bei dem Initialisieren werden die folgenden Parameter angewendet:

  • das Encoding ist UTF-8
  • es wird das deutsche Gebietsschema verwendet
  • die Authentifikation per IP v4/v6 erfolgt per scram-sha-256
  • die lokale Authentifikation per peer
  • Prüfsummen für Datendateien sind aktiviert

Zuletzt wird der PostgreSQL-Service beim Booten aktiviert und danach gestartet.

Copy to Clipboard

Damit ist die Installation abgeschlossen und der Login ist per Unix Domain Socket Verbindung mit psql als User postgres möglich.

Copy to Clipboard

Für den Superuser postgres kann nun als erstes ein Passwort per Metabefehl gesetzt werden.

Copy to Clipboard

Dann wird psql wieder verlassen.

Copy to Clipboard

Umgebungsvariablen setzen

Mit Umgebungsvariablen können Standardwerte beim Aufruf von PostgreSQL Anwendungen definiert werden. Diese werden hier für den User postgres gesetzt, können aber auch für andere User definiert werden. Dazu wird als erstes auf den User postgres gewechselt, falls noch ein anderer User in der Shell aktiv ist.

Copy to Clipboard

Folgende Umgebungsvariablen sind hierbei in die .pgsql_profile Datei im Home-Verzeichnis des postgres Users aufzunehmen.

Copy to Clipboard

Danach werden die Umgebungsvariablen in der aktuellen Session geladen.

Copy to Clipboard

Konfiguration

Abschließend erfolgt die Konfiguration des Clusters. Normalerweise wird die Konfiguration in Abhängigkeit vom jeweiligen Einsatzzweck angepasst, damit die Performance auch zur Systemumgebung und dem angestrebten Workload, z.B. OLTP oder OLAP, passt. In diesem Fall wird mit einer Basiskonfiguration mit dem PGConfig Konfigurationskalkulator begonnen. PGConfig liefert auf Basis der eingegebenen Werte eine Liste von Konfigurationsparametern zur Anpassung der postgresql.conf Konfigurationsdatei.

pgconfig Postgresql configuration builder

Abbildung: pgconfig

Die erzeugten Konfigurationsparameter werden mittels psql auf dem Datenbankserver eingespielt.

Copy to Clipboard

Hinweis: Die Änderung der Server-Konfiguration erfolgt, indem die Parameter in die Datei postgresql.auto.conf mittels SQL-Befehl ALTER SYSTEM eingetragen werden.

Ein Teil der Konfigurationsparameter benötigt einen Neustart des Clusters, damit die Änderungen aktiv werden. Dieser wird jetzt noch nicht durchgeführt.

Authentifikation

Die Authentifizierung der Clients am Cluster wird über die Konfigurationsdatei pg_hba.conf gesteuert. Die Abkürzung “hba” steht für “host-based authentication”. Jeder Eintrag stellt den Typ der Verbindung, die IP(-Range) des Clients, den Namen der Datenbank, den Namen des Users und die Art der Authentifizierung dar.

Copy to Clipboard

IPv6 und Einträge zur Replikation werden auskommentiert. Ein neuer Eintrag für das im Labor verwendete Subnet 192.168.56.0 wird hinzugefügt.

Copy to Clipboard

Alle Änderungen aus der postgresql.conf und pg_hba.conf werden nach einem Neustart des Clusters wirksam.

Copy to Clipboard

Die Installation und Konfiguration des Datenbankservers ist nun abgeschlossen. Der PostgreSQL Server läuft und ist bereit, Verbindungen aus dem Labor Subnet entgegenzunehmen.

Copy to Clipboard
Blog Mykola Kumanikin

Mykola Kumanikin

Mykola Kumanikin arbeitet als Consultant für die Proventa AG. Sein Tätigkeitsumfeld umfasst Software-Testing, Ticketmanagement und seit Kurzem Datenbankarchitekturen mit PostgreSQL. Seine fachlichen Erfahrungen sammelte er in den unterschiedlichen Projekten in der Telekommunikationsbranche.