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.
Danach wird das in Oracle Linux enthaltene PostgreSQL Modul deaktiviert.
Weiter geht es mit der Installation von PostgreSQL.
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.
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
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.
Damit ist die Installation abgeschlossen und der Login ist per Unix Domain Socket Verbindung mit psql als User postgres möglich.
Für den Superuser postgres kann nun als erstes ein Passwort per Metabefehl gesetzt werden.
Dann wird psql wieder verlassen.
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.
Folgende Umgebungsvariablen sind hierbei in die .pgsql_profile Datei im Home-Verzeichnis des postgres Users aufzunehmen.
Danach werden die Umgebungsvariablen in der aktuellen Session geladen.
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.
Abbildung: pgconfig
Die erzeugten Konfigurationsparameter werden mittels psql auf dem Datenbankserver eingespielt.
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.
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.
Alle Änderungen aus der postgresql.conf und pg_hba.conf werden nach einem Neustart des Clusters wirksam.
Die Installation und Konfiguration des Datenbankservers ist nun abgeschlossen. Der PostgreSQL Server läuft und ist bereit, Verbindungen aus dem Labor Subnet entgegenzunehmen.