Zum Hauptinhalt springen

Konzepte — PostgreSQL

Architektur​

PostgreSQL auf Hikube ist ein verwalteter Service. Jeder in der Konsole erstellte Cluster ist eine Gruppe replizierter PostgreSQL-Instanzen mit automatischem Failover und Streaming-Replikation. Er gehört zu einem Projekt und verbraucht die Quotas dieses Projekts (CPU, Arbeitsspeicher, Speicher).


Terminologie​

BegriffBeschreibung
PostgreSQL-ClusterVerwaltete Instanz, die in der Konsole erstellt wird und aus einem Primary und gegebenenfalls Replicas besteht.
ProjektIsolierter Bereich, der Ihre Ressourcen bündelt und die Quotas trägt.
PrimaryHauptinstanz, die Lese- und Schreibvorgänge annimmt.
ReplicaSchreibgeschützte Instanz, die per Streaming-Replikation vom Primary synchronisiert wird.
Instanz-PresetRessourcenvorlage (CPU, Arbeitsspeicher), die jedem Knoten des Clusters zugewiesen wird.
Externer ZugriffOption, die den Cluster über eine öffentliche IP-Adresse im Internet verfügbar macht.
Erweiterung (Extension)PostgreSQL-Modul (zum Beispiel pgcrypto, vector), das pro Datenbank aktiviert wird.
WALWrite-Ahead Log — das Transaktionsprotokoll von PostgreSQL, Grundlage der Replikation.

Replikation und Hochverfügbarkeit​

Die Hochverfügbarkeit beruht auf:

  1. Streaming-Replikation: Die Replicas erhalten die WAL fortlaufend vom Primary
  2. Automatisches Failover: Fällt der Primary aus, wird automatisch eine Replica befördert

Die Anzahl der Replicas wird bei der Erstellung im Feld Number of replicas festgelegt:

Angebotener WertVerwendung
1 (Standalone)Entwicklung, Tests
2 (High Availability)Produktion mit einem Standby
3 (Max High Availability)Kritische Produktion
Warnung

Die Anzahl der Replicas kann nach der Erstellung nicht mehr geändert werden („The mode cannot be changed after creation“). Wählen Sie sie entsprechend Ihrem Verfügbarkeitsbedarf. Um sie zu ändern, wenden Sie sich an den Support.

Synchrone Replikation (Quorum) wird in der Konsole nicht angeboten; wenden Sie sich an den Support.


Datenbanken, Benutzer und Rechte​

Jeder Cluster verfügt über:

  • eine automatisch erstellte Systemdatenbank postgres, die der Plattform vorbehalten ist (siehe unten);
  • die Datenbanken, die Sie bei der Erstellung oder später hinzufügen (Registerkarte Databases), mit ihren Erweiterungen;
  • die Benutzer, die Sie anlegen (Registerkarte Users). Jeder Benutzer erhält pro Datenbank eines der beiden folgenden Rechte:
    • Administrator (Admin): Lesen und Schreiben;
    • Read-only: nur Lesen.

Das Passwort eines Benutzers wird von der Plattform generiert und nur ein einziges Mal angezeigt, bei der Erstellung oder nach einer Rotation. Danach ist es nicht mehr einsehbar: Wenn Sie es verlieren, generieren Sie mit Change Password ein neues.

Systemdatenbanken​

postgres, template0 und template1 sind Systemdatenbanken, die der Plattform vorbehalten sind:

  • Die Benutzer-Assistenten bieten sie nicht an, und auf ihnen kann kein Recht vergeben werden;
  • ihre Erstellung wird abgelehnt: „“postgres” is a system database: choose an application database.“;
  • in der Datenbankliste sind Manage extensions und Delete database bei einer Systemdatenbank deaktiviert: „System database: it can be neither changed nor deleted.“

Ein Benutzer, der bereits ein Recht auf einer Systemdatenbank besitzt, behält es unverändert. In Manage Access wird dieses Recht gesperrt und mit einem Warnhinweis angezeigt: Sie können die Zeile entfernen, aber nicht ändern. Vergeben Sie die Rechte Ihrer Benutzer auf Anwendungsdatenbanken.

Benennungsregeln​

ElementRegel
Clustername3 bis 16 Zeichen: Kleinbuchstaben, Ziffern und Bindestriche; beginnt mit einem Buchstaben, endet mit einem Buchstaben oder einer Ziffer
Benutzername3 bis 16 Zeichen: Kleinbuchstaben, Ziffern und Unterstriche (_); beginnt mit einem Kleinbuchstaben oder einem Unterstrich. Kein Bindestrich (-).
Datenbankname1 bis 54 Zeichen: Kleinbuchstaben, Ziffern, Unterstriche (_) und Bindestriche (-); beginnt mit einem Buchstaben oder einem Unterstrich, aber nicht mit pg_

Die Benutzernamen postgres, admin, root, owner, superuser, streaming_replica sowie alle Namen, die mit pg_ beginnen, sind reserviert.


Instanz-Presets​

Das Instance preset legt die Kapazität fest, die jedem Knoten des Clusters zugewiesen wird. Die Presets entsprechen den Größen der virtuellen Maschinen der Serien u1, s1 und m1: Ein Preset hat dieselben Ressourcen wie die gleichnamige VM. Maßgeblich ist die im Assistenten angezeigte Liste:

PresetCPUArbeitsspeicher
u1.medium14Gi
u1.large28Gi
u1.xlarge416Gi
u1.2xlarge832Gi
u1.4xlarge1664Gi
u1.8xlarge32128Gi
s1.small12Gi
s1.medium24Gi
s1.large48Gi
s1.xlarge816Gi
s1.2xlarge1632Gi
s1.4xlarge3264Gi
m1.large216Gi
m1.xlarge432Gi
m1.2xlarge864Gi
m1.4xlarge16128Gi
m1.8xlarge32256Gi

Der Assistent wählt kein Preset vor: Wählen Sie eines aus, um fortzufahren. Jede Option zeigt ihre Ressourcen an, zum Beispiel „u1.medium — 1 CPU / 4Gi“. Kann die Liste nicht geladen werden, zeigt der Assistent „The preset list could not be loaded. Try again later or contact support.“ an.

Ein Cluster, der mit einem früheren Preset (nano, micro, small, medium, large, xlarge oder 2xlarge) erstellt wurde, behält es und läuft wie bisher: Das Formular Edit zeigt es unverändert an und speichert es ohne Änderung. Wurden die Ressourcen eines Clusters abweichend von seinem Preset festgelegt, weist das Formular mit dem Vermerk „(override)“ darauf hin.

Die Festlegung freier CPU-/Arbeitsspeicher-Ressourcen (außerhalb der Presets) wird in der Konsole nicht angeboten; wenden Sie sich an den Support.


Netzwerkzugriff​

  • Interner Host: immer zugewiesen, angezeigt im Bereich Internal der Karte Connection and Databases. Er zeigt auf das Primary und ist von den VMs und Kubernetes-Clustern desselben Projekts aus erreichbar, nicht aus einem anderen Projekt und nicht aus dem Internet.
  • Externer Zugriff deaktiviert (Standard): Der Cluster ist nicht im Internet erreichbar. Der Bereich External zeigt Disabled an.
  • Externer Zugriff aktiviert: Die Plattform weist eine öffentliche IP-Adresse zu, die im Bereich External angezeigt wird. Der Port ist der PostgreSQL-Standardport 5432.

Der externe Zugriff kann nach der Erstellung über Edit aktiviert oder deaktiviert werden. Seine Kosten (öffentliche IP-Adresse) sind in der Angabe Estimated cost des Assistenten enthalten.


Backup und Wiederherstellung​

PostgreSQL-Cluster werden mit dem Backup-Service in einen S3-Bucket des Projekts gesichert und über die Registerkarte Backups ihrer Seite wiederhergestellt. Die Transaktionsprotokolle werden zwischen zwei Backups kontinuierlich archiviert, sodass sich die Datenbank zu einem bestimmten Zeitpunkt wiederherstellen lässt. Siehe Backups konfigurieren und Ein Backup wiederherstellen.


Quotas und Kosten​

Der Erstellungsassistent zeigt ab dem Schritt Configuration die Estimated cost (monatlich und stündlich) sowie die Auswirkung des Clusters auf die Quotas des Projekts (CPU, Arbeitsspeicher, Speicher) an. Der Verbrauch berücksichtigt das Preset, die Anzahl der Replicas und die Disk-Größe. Überschreitet der Cluster die verfügbaren Quotas, bleibt die Schaltfläche Next inaktiv.

ParameterWert
Disk-Größe1 bis 4 096 GB, im Rahmen des Speicher-Quotas des Projekts; nach der Erstellung nur Vergrößerung
Replicas1, 2 oder 3

Weiterführende Informationen​