Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zur Registrierung für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Ersetzen Sie diese Werte nach Abschluss der Übung durch Werte, die für Ihre Cloud-Umgebung spezifisch sind.
PostgreSQL-Cluster auf Oracle Cloud Infrastructure Compute-Instanzen bereitstellen
Einführung
PostgreSQL ist ein objektrelationales Open-Source-Datenbankverwaltungssystem. Es ist hochgradig erweiterbar, hoch skalierbar und verfügt über viele Funktionen. PostgreSQL unterstützt die Datenreplikation über mehrere Data Center hinweg.
Dieses Tutorial zeigt ein typisches Drei-Knoten-Deployment eines PostgreSQL-Clusters auf Oracle Cloud Infrastructure-(OCI-)Compute-Instanzen. In diesem Tutorial werden die Server in der Master- und Standby-Konfiguration konfiguriert und verwenden Streaming-Replikation.
Die Anweisungen zur Automatisierung finden Sie hier: terraform-oci-arch-postgresql.
Hinweis: Dabei wird automatisch
postgis34
undpgvector
installiert.
Architekturdiagramm
Ziele
-
Stellen Sie ein PostgreSQL-Cluster mit drei Knoten bereit.
-
Ändern Sie den Code so, dass er Ihren Anforderungen besser entspricht.
Voraussetzungen
-
Berechtigung zum Verwalten der folgenden Ressourcen in Ihrem OCI-Mandanten: Virtuelle Cloud-Netzwerke (VCNs), Internetgateways, Routentabellen, Sicherheitslisten, Subnetze und Instanzen.
-
Erstellen Sie die folgenden Ressourcen:
- 1 VCN,
- 1 Subnetz,
- 1 Internetgateway,
- 1 Routingregeln und
- 3 Compute-Instanzen (1 primäre Masterinstanz PostgreSQL und 2 Standbyinstanzen von PostgreSQL).
Aufgabe 1: Terraform-Code mit OCI Resource Manager bereitstellen
Das Deployment kann auf zwei Arten erfolgen: mit der terraform-Befehlszeilenschnittstelle (CLI) oder mit OCI Resource Manager. In diesem Tutorial verwenden wir OCI Resource Manager.
Terraform-CLI finden Sie in der Repository-Dokumentation hier: terraform-oci-arch-postgresql.
-
Klicken Sie auf das folgende Image, um den OCI Resource Manager-Prozess zu starten, der die Ressourcen bereitstellt.
-
Wenn Sie noch nicht angemeldet sind, geben Sie die Mandanten- und Benutzerzugangsdaten ein, prüfen und akzeptieren Sie die Vertragsbedingungen, wählen Sie die Region und das Compartment aus, in dem sich der Stack befinden soll, und klicken Sie auf Weiter, um zum nächsten Schritt zum Konfigurieren von Variablen zu gelangen.
-
Geben Sie unter Variablen konfigurieren die folgenden Informationen ein, um die Variablen zu konfigurieren.
- Compartment: Wählen Sie das Compartment aus, in dem Sie die Ressourcen bereitstellen möchten.
- Availability-Domain für Master PostgreSQL: Wählen Sie die Availability-Domain für die Master-Compute-Instanz aus.
- PostgreSQL-Version: Sie können die Versionen 9.6, 10, 11, 12 oder 13 auswählen.
- PostgreSQL-Kennwort: Legen Sie ein Kennwort für den Zugriff auf PostgreSQL fest.
- Erste PostgreSQL HotStandby bereitstellen: Wählen Sie diese Option aus, wenn Sie die erste Standbydatenbank bereitstellen möchten.
- Zweites Deployment von PostgreSQL HotStandby: Wählen Sie diese Option aus, wenn Sie die zweite Standbydatenbank bereitstellen möchten.
- Erstellen in privatem Subnetz: Wählen Sie diese Option aus, wenn die Instanzen in einem privaten Subnetz erstellt werden sollen.
Hinweis:
- Durch das Deployment des ersten und zweiten PostgreSQL HotStandby können Sie einen, zwei oder drei Knoten bereitstellen.
- Wenn Sie die Erstellung in einem privaten Subnetz auswählen, wird ein OCI-Bastion-Service erstellt, um den Zugriff zuzulassen.
-
Klicken Sie auf Erweiterte Optionen anzeigen, um zusätzliche Informationen zu konfigurierbaren Variablen einzugeben.
- Optionale Netzwerkkonfiguration: Damit können Sie die VCN- und Subnetz-CIDRs angeben und angeben, ob ein dynamisches Routinggateway (DRG) erstellt werden soll.
- Optionale Compute-, Speicher- und Backupkonfiguration: Damit können Sie einen öffentlichen SSH-Schlüssel hinzufügen, um auf die PostgreSQL-Instanzen zuzugreifen und Backups zu konfigurieren.
- PostgreSQL Optionale Masterkonfiguration: Geben Sie Faultdomain, Ausprägung, CPU und Speicher der Masterinstanz PostgreSQL für Flex-Ausprägungen an.
- PostgreSQL HotStandby1 Optionale Konfiguration: Geben Sie PostgreSQL Availability-Domain der ersten Standbydatenbank, Faultdomain, Ausprägung, CPU und Speicher für Flex-Ausprägungen an.
- PostgreSQL HotStandby2 Optionale Konfiguration: Geben Sie die Availability-Domain, die Faultdomain, die Ausprägung, die CPU und den Speicher der zweiten Standbydatenbank PostgreSQL für Flex-Ausprägungen an.
-
Klicken Sie auf Weiter, um die Informationen zu prüfen.
Hinweis:
- Heben Sie die Auswahl von Anwenden ausführen auf, wenn Sie zuerst einen Plan ausführen möchten.
- Wenn Sie Apply ausführen auswählen, wird der terraform apply-Befehl ausgelöst, und das Provisioning der Ressourcen wird automatisch gestartet.
-
Klicken Sie auf Erstellen.
Aufgabe 2: Deployment endgültig löschen
Um Ihre Ressourcen zu löschen, gehen Sie einfach zur Seite Stackdetails, und klicken Sie auf Löschen.
Installation und Konfiguration von PostgreSQL verstehen
Diese Informationen sind nützlich, wenn Sie die Funktionsweise von PostgreSQL ändern müssen.
Es wird Ihnen helfen zu verstehen:
-
Wo genau die Installation und Konfiguration ist.
-
Die Reihenfolge, in der die Skripte ausgeführt werden.
-
Eine allgemeine Übersicht darüber, was jedes Skript tut.
Hinweis: Die Anpassung der Automatisierung wird nicht behandelt. Je nach den Änderungen können Änderungen in mehreren Terraform-Dateien erforderlich sein.
-
Wichtige Dateien, die wir in diesem Tutorial verwenden, sind:
remote.tf
: Terraform-Datei, in der die Skripte auf jeder PostgreSQL-Instanz bereitgestellt werden.scripts/postgresql_install_binaries.sh
: Installiert den PostgreSQL-Server, einige Erweiterungen und konfiguriert eine Firewall.scripts/postgresql_master_initdb.sh
: Initialisiert die Datenbank.scripts/postgresql_master_setup.sh
: Konfiguriert das Replikat für PostgreSQL standby1.scripts/postgresql_master_setup2.sh
: Konfiguriert das Replikat für PostgreSQL standby2.scripts/postgresql_standby_setup.sh
: Zusätzliche Konfiguration für Replikate wie Firewall, max. Verbindungen, Bearbeitung vonreplica.conf
.
-
Die Skripte werden in der folgenden Reihenfolge ausgeführt:
scripts/postgresql_install_binaries.sh
: Wird auf der Masterinstanz PostgreSQL ausgeführt.scripts/postgresql_master_initdb.sh
wird auf der Masterinstanz PostgreSQL ausgeführt.scripts/postgresql_install_binaries.sh
wird auf der Instanz PostgreSQL standby1 ausgeführt.scripts/postgresql_install_binaries.sh
wird auf der Instanz PostgreSQL standby2 ausgeführt.scripts/postgresql_master_setup.sh
wird auf der Masterinstanz PostgreSQL ausgeführt.scripts/postgresql_master_setup2.sh
wird auf der Masterinstanz PostgreSQL ausgeführt.scripts/postgresql_standby_setup.sh
wird auf der Instanz PostgreSQL standby1 ausgeführt.scripts/postgresql_standby_setup.sh
wird auf der Instanz PostgreSQL standby2 ausgeführt.
Danksagungen
- Autor - Gabriel Feodorov (Senior Cloud Engineer)
Weitere Lernressourcen
Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Die Produktdokumentation finden Sie im Oracle Help Center.
Deploy a PostgreSQL Cluster on Oracle Cloud Infrastructure Compute Instances
G25656-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.