PostgreSQL 16 stellt ein bedeutendes Update in der Welt der Datenbankverwaltungssysteme dar. PostgreSQL 16 wurde am 14. September 2023 offiziell veröffentlicht und führt viele neue Funktionen und Verbesserungen ein, die seine Position als robuste und vielseitige Datenbanklösung für Benutzer, Administratoren und Entwickler stärken.
Nachfolgend sind einige der wichtigsten Funktionen von PostgreSQL 16 aufgeführt:
- Verbesserungen bei der Parallelisierung: PostgreSQL 16 ermöglicht die Parallelisierung von FULL- und internen rechten OUTER-Hash-Joins, was die Abfrageleistung erheblich verbessert.
- Replikationsverbesserungen: Es führt die Möglichkeit zur logischen Replikation von Standby-Servern ein und ermöglicht Abonnenten, große Transaktionen parallel durchzuführen.
- Überwachungsfunktionen: Durch das Hinzufügen der Ansicht pg_stat_io ist eine detailliertere Überwachung der E/A-Statistiken möglich.
- SQL/JSON-Unterstützung: Diese Version führt SQL/JSON-Konstruktoren und Identitätsfunktionen ein und erweitert so die Datenverarbeitungsfunktionen.
- Vakuumgefrierleistung: PostgreSQL 16 verbessert die Leistung des Vakuum-Einfrierens und unterstützt so eine effiziente Datenbankwartung.
- Übereinstimmung mit regulären Ausdrücken: Die reguläre Ausdrucksübereinstimmung für Benutzer- und Datenbanknamen in pg_hba.conf und Benutzernamen in pg_ident.conf verbessert die Sicherheit und Flexibilität.
Fahren wir nun mit der technischen Anleitung fort und vertiefen uns in den Installationsprozess von PostgreSQL 16.
Voraussetzungen für die Installation von PostgreSQL 16
Um PostgreSQL 16 erfolgreich auf Ubuntu zu installieren, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen:
Empfohlene Hardware und unterstützte Ubuntu-Versionen
Komponente | Erfordernis |
---|---|
Prozessor | 1 Gigahertz (GHz) oder schnellerer kompatibler Prozessor |
RAM | 2 GB oder mehr |
Festplattenplatz | 512 MB Festplatte (zusätzlicher Speicherplatz für Daten oder unterstützende Komponenten erforderlich) |
Unterstützte Versionen | Ubuntu 24.04 (Noble), Ubuntu 22.04 (Jammy), Ubuntu 20.04 (Focal) |
Zusätzliche Anforderungen
Erfordernis | Beschreibung |
---|---|
Internetverbindung | Erforderlich zum Herunterladen von PostgreSQL 16 und zukünftigen Updates. |
Terminalkonventionen | Alle Terminalbefehle sollten als normaler Benutzer ausgeführt werden mit sudo Berechtigungen. |
CLI-Befehle | Verwenden Sie für die Installation und Einrichtung die Befehlszeilenschnittstelle (CLI). |
PostgreSQL APT-Repository importieren
Aktualisieren Sie Ubuntu vor der Installation von PostgreSQL 16
Stellen Sie zunächst sicher, dass Ihr Ubuntu-System auf dem neuesten Stand ist. Dieser Schritt ist entscheidend für die Aufrechterhaltung der Systemstabilität und -kompatibilität:
sudo apt update
Aktualisieren Sie als Nächstes alle Pakete, die veraltet sind:
sudo apt upgrade
Installieren Sie erste Pakete für PostgreSQL 16
Installieren Sie zur Unterstützung der Installation der Datenbanksoftware die folgenden Pakete:
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https lsb-release curl -y
PostgreSQL 16 APT-Repository hinzufügen
Importieren Sie zunächst den PostgreSQL GPG-Schlüssel. So stellen Sie sicher, dass die Pakete, die Sie installieren möchten, authentisch und unverfälscht sind:
curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null
Auswahl des richtigen PostgreSQL 16-Repository
Jetzt ist es an der Zeit, das geeignete PostgreSQL 16-Repository für Ihre Anforderungen auszuwählen.
Stabiles Repository für Produktion/allgemeine Nutzung
Das stabile Repository ist für die meisten Benutzer die erste Wahl, insbesondere in einer Produktionsumgebung. Es wird regelmäßig mit stabilen und sicheren Versionen aktualisiert:
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list
Snapshot- oder Test-Repositorys für Entwickler
Wenn Sie sich in der Entwicklungs- oder Testphase befinden, sollten Sie Snapshot- oder Test-Repositorys in Betracht ziehen. Bedenken Sie jedoch, dass diese aufgrund ihrer geringeren Stabilität nicht für den Einsatz in der Produktion geeignet sind.
Snapshot-Repository für modernste Tests
Die neusten Schnappschüsse gibt es hier:
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-snapshot main | sudo tee /etc/apt/sources.list.d/postgresql.list
Test-Repository für die neuesten Features
Um die neuesten Funktionen zu testen, können Sie sich mit diesem Befehl einrichten:
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql.list
Installieren Sie PostgreSQL 16 über Terminalbefehle
Liste der APT-Paketindexquellen aktualisieren
Nachdem Sie entweder das stabile oder das Test-PostgreSQL-Repository hinzugefügt haben, ist es wichtig, Ihre Repository-Quellenliste zu aktualisieren. Diese Aktion stellt sicher, dass Ihr System das neu hinzugefügte PostgreSQL-Repository erkennt:
sudo apt update
Installieren Sie PostgreSQL 16 über den APT-Befehl
Fahren wir nun mit der Installation von PostgreSQL 16 fort. Dieser Befehl installiert sowohl den PostgreSQL-Client als auch den PostgreSQL-Server:
sudo apt install postgresql-client-16 postgresql-16
Überprüfen der PostgreSQL-Installation
Sobald die Installation abgeschlossen ist, ist es wichtig, zu bestätigen, dass PostgreSQL korrekt installiert und ausgeführt wird. Dieser Befehl überprüft den Status des PostgreSQL-Dienstes:
systemctl status postgresql
Aktivieren von PostgreSQL 16
Wenn PostgreSQL nicht aktiv ist, verwenden Sie diesen Befehl, um den PostgreSQL-Dienst zu starten. Dadurch wird auch sichergestellt, dass PostgreSQL automatisch mit Ihrem System gestartet wird:
sudo systemctl enable postgresql --now
Verwalten des PostgreSQL 16-Dienstes
Stoppen des PostgreSQL 16-Servers
Um den PostgreSQL-Dienst vorübergehend anzuhalten, beispielsweise für Wartungsarbeiten oder Konfigurationsänderungen, verwenden Sie diesen Befehl:
sudo systemctl stop postgresql
Starten des PostgreSQL 16-Servers
Wenn Sie bereit sind, den PostgreSQL-Dienst zu starten, insbesondere nach einem Stopp oder einer Erstinstallation, ist dieser Befehl praktisch:
sudo systemctl start postgresql
Neustart des PostgreSQL 16-Servers
In Szenarien, in denen Sie Konfigurationen oder Updates geändert haben, ist häufig ein Neustart erforderlich. Dieser Befehl startet den PostgreSQL-Dienst neu und wendet alle neuen Änderungen an:
sudo systemctl restart postgresql
Neuladen des PostgreSQL 16-Servers
Um den PostgreSQL-Dienst neu zu laden, ohne seinen Betrieb zu unterbrechen, verwenden Sie diesen Befehl. Er ist nützlich, wenn Sie kleinere Konfigurationsänderungen vornehmen müssen:
sudo systemctl reload postgresql
Überprüfen des PostgreSQL 16-Status
Um den Betriebsstatus des PostgreSQL-Dienstes zu überprüfen, einschließlich der Frage, ob er aktiv ist und ohne Probleme ausgeführt wird, verwenden Sie:
systemctl status postgresql
Aktivieren von PostgreSQL 16 beim Systemstart
Wenn PostgreSQL nicht auf automatischen Start eingestellt ist, wird es durch diesen Befehl aktiviert und stellt sicher, dass es sofort und bei nachfolgenden Systemstarts aktiv ist:
sudo systemctl enable postgresql --now
Grundlegende Beispielbefehle mit PostgreSQL 16
Zugriff auf das Postgres-Benutzerkonto
In PostgreSQL ist der Benutzer „postgres“ eine Standard-Superuser-Rolle. Dieses Konto ist für die Ausführung administrativer Befehle von entscheidender Bedeutung. Um zu diesem Konto zu wechseln, verwenden Sie:
sudo -i -u postgres
Sobald Sie sich im Konto befinden, rufen Sie die PostgreSQL-Befehlszeilenschnittstelle auf:
psql
Die Eingabeaufforderung postgres=#
bestätigt Ihre Verbindung zur PostgreSQL-Umgebung. Zum Beenden geben Sie einfach ein exit
.
Schneller Zugriff auf PostgreSQL ohne Benutzerwechsel
Für schnelle Vorgänge ohne Änderung des Benutzerkontos greifen Sie direkt auf PostgreSQL zu:
sudo -u postgres psql
Dieser Befehl spart Zeit bei Routineaufgaben. Um diese Schnittstelle zu verlassen, geben Sie ein exit
.
Erstellen einer neuen PostgreSQL-Benutzerrolle
Dank der Flexibilität von PostgreSQL können Superuser Benutzerrollen erstellen. Um eine neue Benutzerrolle zu erstellen, geben Sie diesen Befehl ein:
sudo su - postgres -c "createuser <username>"
Ersetzen <username>
mit Ihrem gewünschten Benutzernamen.
Initiieren einer neuen PostgreSQL-Datenbank
So richten Sie eine neue Datenbank für Ihren Benutzer ein:
sudo su - postgres -c "createdb <database_name>"
Ersetzen <database_name>
durch den gewünschten Namen für Ihre Datenbank.
Zuweisen von Benutzerberechtigungen zu einer Datenbank
Datenbankzugriffe sicher zuweisen:
sudo -u postgres psql
GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <username>;
Ersatz <database_name>
Und <username>
nach Bedarf. Geben Sie abschließend exit
.
Konfigurieren Sie die UFW-Firewall für PostgreSQL 16
Installieren und Aktivieren der UFW-Firewall
Stellen Sie sicher, dass die UFW (Uncomplicated Firewall) auf Ihrem System installiert und aktiviert ist. Die UFW vereinfacht die Firewall-Verwaltung und ist für die Sicherung des Netzwerkverkehrs unerlässlich:
sudo apt install ufw
sudo ufw enable
Einrichten von UFW-Regeln für PostgreSQL 16
PostgreSQL kommuniziert standardmäßig über Port 5432. Es ist notwendig, UFW so zu konfigurieren, dass Datenverkehr über diesen Port zugelassen wird, insbesondere bei Verbindungen von Remotestandorten.
Subnetzzugriff zulassen
Um den Zugriff auf einen IP-Adressbereich innerhalb eines Subnetzes zu ermöglichen, verwenden Sie diesen Befehl:
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432
Ersetzen 192.168.1.0/24
mit Ihrem spezifischen Subnetzbereich.
Individuellen IP-Zugriff zulassen
Um Zugriff auf PostgreSQL von einer einzelnen IP-Adresse aus zu gewähren, verwenden Sie:
sudo ufw allow proto tcp from 192.168.1.0 to any port 5432
Ändern 192.168.1.0
an die IP-Adresse, die Sie zulassen möchten.
Dies sind nur einfache Beispiele. Sie sollten erwägen, öffentlich zugängliche Datenbanken langfristig so weit wie möglich zu sperren.
PostgreSQL 16 konfigurieren
Aktivieren Sie den Remotezugriff in PostgreSQL 16
Um PostgreSQL für die Annahme von Remoteverbindungen zu konfigurieren, muss die Abhöradresse der lokalen Standardschnittstelle angepasst werden.
Ändern der Konfiguration für den Remotezugriff
Greifen Sie auf die PostgreSQL-Konfigurationsdatei zu:
sudo nano /etc/postgresql/16/main/postgresql.conf
Ändern Sie im Abschnitt „Verbindungseinstellungen“ listen_addresses = 'localhost'
auf Ihre spezifischen Bedürfnisse zugeschnitten:
- Ersetzen Sie „localhost“ durch die gewünschte IP-Adresse für eine einzelne IP.
- Um Verbindungen auf allen Schnittstellen zuzulassen, verwenden Sie
listen_addresses = '*'
.
Nachdem Sie Änderungen vorgenommen haben, speichern Sie mit STRG+O und beenden Sie mit STRG+X. Starten Sie PostgreSQL anschließend neu:
sudo systemctl restart postgresql
Überprüfen Sie die Änderungen mit:
ss -nlt | grep 5432
In der Ausgabe sollte Port 5432 aktiv sein.
Konfigurieren von pg_hba.conf für erhöhte Sicherheit
Bearbeiten Sie die pg_hba.conf
Datei zur Feinabstimmung der Zugriffskontrolle:
sudo nano /etc/postgresql/16/main/pg_hba.conf
Anpassen des Benutzer- und Datenbankzugriffs
In pg_hba.conf
können Sie angeben, welche Benutzer und Datenbanken eine Verbindung herstellen können und von welchen Adressen aus. Hier sind einige gängige Konfigurationen:
- Benutzerspezifischer Zugriff: Ersetzen Sie „alle“ durch einen bestimmten Benutzernamen, um den Zugriff auf diesen Benutzer zu beschränken.
- Datenbankspezifischer Zugriff: Geben Sie eine bestimmte Datenbank an, anstatt den Zugriff auf alle Datenbanken zu erlauben.
- Adressbeschränkungen: Definieren Sie bestimmte IP-Adressen oder Bereiche (z. B.
192.168.1.0/24
), um einzuschränken, wo Verbindungen entstehen können.
Auswählen von Authentifizierungsmethoden
PostgreSQL unterstützt verschiedene Authentifizierungsmethoden:
- MD5: Erfordert ein Passwort und verschlüsselt es mit MD5.
- Passwort: Verwendet Passwörter im Klartext (weniger sicher, für die Produktion nicht empfohlen).
- Peer: Basiert auf der Benutzeridentität auf Betriebssystemebene (üblich für lokale Verbindungen).
- Ident: Ähnlich wie „Peer“, wird normalerweise für Netzwerkverbindungen verwendet.
- SCRAM-SHA-256: Eine sicherere Methode, empfohlen gegenüber MD5 oder Passwort.
Tuning-Leistung in postgresql.conf
Zur Leistungsoptimierung berücksichtigen Sie diese Einstellungen in postgresql.conf
:
- gemeinsame_Puffer: Passt die Speichermenge an, die PostgreSQL für gemeinsam genutzte Speicherpuffer verwendet.
- Arbeitsspeicher: Legt den für interne Sortier- und Hashvorgänge verwendeten Speicher fest.
- Max_Verbindungen: Steuert die maximale Anzahl gleichzeitiger Verbindungen zur Datenbank.
Überwachung und Diagnose
Aktivieren Sie die ausführliche Protokollierung, um Einblicke in die Datenbankleistung und Probleme zu erhalten:
- log_statement: Auf „alle“ setzen, um jede ausgeführte SQL-Anweisung zu protokollieren.
- log_dauer: Wenn aktiviert, wird die Dauer jeder abgeschlossenen SQL-Anweisung protokolliert.
Abschluss
Wir haben gerade eine umfassende Anleitung zum Einrichten von PostgreSQL 16 unter Ubuntu durchgearbeitet, die alles von der Installation und Konfiguration des Fernzugriffs bis hin zur Erhöhung der Sicherheit mit Firewall-Regeln abdeckt. Denken Sie daran: Es ist zwar großartig, PostgreSQL einsatzbereit zu haben, der eigentliche Schlüssel liegt jedoch in regelmäßigen Wartungs- und Sicherheitsüberprüfungen.
Nützliche Links
Hier sind einige hilfreiche Links zur Installation von PostgreSQL 16 auf Ubuntu Linux:
- Versionshinweise zu PostgreSQL 16: Lesen Sie die Versionshinweise zu PostgreSQL 16, um mehr über neue Funktionen, Verbesserungen und Fehlerbehebungen zu erfahren.
- PostgreSQL GitHub-Repository: Besuchen Sie das offizielle PostgreSQL-GitHub-Repository, um auf den Quellcode zuzugreifen, Probleme zu melden und zur Entwicklung beizutragen.
- PostgreSQL-Dokumentation: Greifen Sie auf die umfassende PostgreSQL-Dokumentation zu, um detaillierte Anleitungen zur Installation, Konfiguration und Verwendung zu erhalten.
- PostgreSQL-Community: Treten Sie der PostgreSQL-Community bei, um sich mit anderen Benutzern zu vernetzen, an Diskussionen teilzunehmen und Unterstützung zu erhalten.