Zum Hauptinhalt springen

PostgreSQL — Economy

Beta Warnung

Bitte beachte, dass während der Beta-Phase noch Änderungen auftreten können. Wir empfehlen dir, dich nicht auf den Dienst zu verlassen, bis er allgemein verfügbar ist. Während dieser Zeit kann die Ressourcenverwaltung über das Cockpit oder unser CLI-Tool nctl nur eingeschränkt oder gar nicht verfügbar sein.

Economy-Datenbanken laufen in einem logisch getrennten Mandanten in einer von Nine verwalteten gemeinsam genutzten Multi-Tenant-Umgebung. Dies macht sie zu einer perfekten Lösung für Nicht-Produktions- oder Niedrig-Traffic-Sites. Aufgrund ihrer schnellen Startzeit sind sie auch ideal für automatisierte Test-Pipelines.

Bei Economy erhältst du eine einzige Datenbank, während bei Business eine dedizierte Datenbankinstanz bereitgestellt wird, in der du mehrere Datenbanken erstellen und verwalten kannst.

Die folgende Tabelle gibt einen Überblick über die Unterschiede zwischen den Stufen:

Stufe Economy (Beta)
Einzelne Datenbanken
Business
Dedizierte Instanzen
First
Managed Service
Verwaltbar in Cockpit / nctl☑️☑️✖️
Backups☑️☑️☑️
Dedizierte Ressourcen✖️☑️☑️
Individuelle Konfiguration✖️Begrenzte Optionen☑️
Cluster-Deployments✖️✖️☑️
Beginnt beiBitte kontaktiere:

Alle On-Demand-Datenbanken stützen sich auf Nines jahrelange Erfahrung im Betrieb von Managed Services und basieren auf derselben Infrastruktur und denselben Bausteinen. Economy- und Business-Datenbanken machen dieses Know-how als Self-Service-Angebot verfügbar, zugeschnitten auf unterschiedliche Bedürfnisse und Budgets, von einfachen Einzeldatenbanken bis hin zu vollständig dedizierten Instanzen. Die Abrechnung erfolgt automatisch basierend auf den genutzten Ressourcen.

Erste Schritte

Du kannst nctl oder Cockpit, unsere Weboberfläche, verwenden, um zu beginnen:

  1. Erstelle im Cockpit einen neuen Service .
  2. Ruf die Anmeldedaten von der Übersichtsseite ab. Notiere dir FQDN, Benutzername und Passwort.
    Die Datenbank hat denselben Namen wie der Benutzer.
  3. Verbinde dich mit der neu erstellten Datenbank:
    psql --host ${FQDN} --dbname ${USER} --username ${USER}

Updates und Wartungsfenster

Sicherheits- und Softwareupdates werden in der Regel während des regulären Wartungsfensters durchgeführt.

Daher kann es während dieses Wartungsfensters zu kurzen Serviceunterbrechungen kommen, ohne dass dies vorher angekündigt wird.

Überwachung

Nine überwacht deine Datenbank mit einem Monitoring-System 24/7. Im Falle einer Fehlfunktion wird automatisch ein (Bereitschafts-) Techniker von Nine benachrichtigt, der den ordnungsgemässen Betrieb so schnell wie möglich wiederherstellt.

Eine vollständige Auslastung der Ressourcen wird nicht als Fehlfunktion bewertet. Du kannst die Grösse der Instanz jederzeit anpassen.

Konfigurationsoptionen

Die On-Demand Services bieten eine Basiskonfiguration, die für die meisten Anforderungen geeignet ist, wobei einige Optionen angepasst werden können. Die Anpassung der Konfigurationsoptionen kann zu einem Neustart der Instanz führen.

Die folgenden Konfigurationsparameter kannst du verwenden, um die Datenbankinstanz an deine Bedürfnisse anzupassen.

Name

Der Name der Datenbankinstanz kann frei gewählt werden, muss aber einzigartig sein. Nach der Erstellung kann der Name nicht mehr geändert werden.

Standort

Je nach verfügbaren Ressourcen können Instanzen an diesen Standorten erstellt werden:

API / Cockpit NameNameStandortNotizen
nine-cz42ColoZüri 4.2Altstetten, Zürich
nine-es34NTT Zürich 1Rümlang
nine-cz41ColoZüri 4.1Altstetten, ZürichNeue Ressourcen können nicht mehr in diesem Standort erstellt werden.

Der Standort kann nach der Erstellung der Ressource nicht mehr geändert werden.

Collation

Die Datenbank-Collation kann bei der Erstellung festgelegt werden und ist danach nicht mehr änderbar. Ohne Angabe wird die Collation C.UTF-8 verwendet.

Im Cockpit kann die Collation im Erstellungsformular konfiguriert werden. Mit nctl verwende die Option --collation:

nctl create postgresdatabase my-database --collation=de_DE.UTF-8

Erweiterungen

Nine stellt eine Vielzahl an Erweiterungen zur Verfügung, die du bei Bedarf aktivieren kannst. Die folgenden Erweiterungen stehen zur Verfügung:

Erweiterungen
  • address_standardizer
  • address_standardizer_data_us
  • btree_gin
  • btree_gist
  • citext
  • cube
  • dict_int
  • earthdistance
  • fuzzystrmatch
  • hstore
  • intarray
  • isn
  • lo
  • ltree
  • pg_prewarm
  • pg_stat_statements
  • pg_trgm
  • pgcrypto
  • plpgsql
  • postgis
  • postgis_raster
  • postgis_sfcgal
  • postgis_tiger_geocoder
  • postgis_topology
  • seg
  • tablefunc
  • tcn
  • tsm_system_rows
  • tsm_system_time
  • unaccent
  • uuid-ossp
  • vector

Um eine Erweiterung im Standardschema public zu aktivieren:

CREATE EXTENSION extension_name;

Um sie stattdessen in einem bestimmten Schema zu aktivieren:

CREATE EXTENSION extension_name SCHEMA my_schema;

Um die aktuell aktivierten Erweiterungen aufzulisten:

\dx

Preise

Datenbanken sind in verschiedene Pakete unterteilt:

SML
Speicherplatz max.1 GB5 GB10 GB
Max. Verbindungen202020
Monatliche Gebühren

Das Paket wird automatisch basierend auf der aktuellen Datenbankgrösse ausgewählt. Der Speicherplatz ist auf 10 GB begrenzt.

Verbindung

Benutzer

Die Verbindungsinformationen (FQDN, Benutzer und Passwort) können im Cockpit unter Zugriffsinformationen oder über die Ausgabe von nctl gefunden werden. Verwende nctl get postgresdatabase um den FQDN anzuzeigen und den --print-password Parameter für das Passwort. Die Instanzen sind über den Standard-PostgreSQL-Port 5432 erreichbar.

TLS

note

Das CA-Zertifikat stimmt nicht mit dem Hostnamen des Dienstes überein. Möglicherweise musst du die Hostnamen-Überprüfung explizit deaktivieren.

Die On-Demand Services akzeptieren nur Verbindungen, die durch TLS gesichert sind. Je nach verwendetem Client oder verwendeter Bibliothek kann es erforderlich sein, TLS explizit zu aktivieren.

Das TLS-Zertifikat ist selbstsigniert. Zusätzlich zur Aktivierung der TLS-Transportverschlüsselung musst du möglicherweise die für die Validierung verwendete Zertifizierungsstelle bereitstellen.

Du kannst die CA entweder via Cockpit oder nctl abrufen:

  1. Öffne die On-Demand Services Übersicht und wähle den entsprechenden Service aus. 2. Die CA ist unter dem Zertifikat-Tab der Ressource verfügbar.

Deploio-Umgebungsvariablen

Wenn dieser Service von einer Deploio-Applikation referenziert wird, injiziert Nine Verbindungsdaten als Umgebungsvariablen. <NAME> ist der Name der Ziel-Serviceressource, in Grossbuchstaben mit nicht-alphanumerischen Zeichen ersetzt durch _.

VariableBeschreibung
NINE_PGDB_<NAME>_FQDNHostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname.
NINE_PGDB_<NAME>_PORTPort (immer 5432).
NINE_PGDB_<NAME>_USERDatenbankname (entspricht dem bei der Erstellung vergebenen Namen).
NINE_PGDB_<NAME>_PASSWORDPasswort.
NINE_PGDB_<NAME>_CA_CERTCA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist.
NINE_PGDB_<NAME>_DSNVollständige PostgreSQL-Verbindungs-URI (postgres://user:pass@host:port/dbname).

Import einer bestehenden Datenbank

Um schnell loszulegen, kannst du eine bestehende Datenbank importieren, zum Beispiel aus deiner lokalen Entwicklungsumgebung. Es wird empfohlen, die folgenden Optionen zu verwenden:

# Erstelle einen Dump der Datenbank und stelle sicher, dass er keine create database-Anweisung enthält
pg_dump --no-owner --no-privileges my_postgresdatabase > my_postgresdatabase.sql
# Importiere den Dump in die neu erstellte Datenbank
psql --host ${FQDN} --dbname ${USER} --username ${USER} < my_postgresdatabase.sql

Backups

Backups für Economy-Datenbanken werden in S3-kompatiblem Object Storage gespeichert. Sie werden täglich erstellt und können mit jedem S3-kompatiblen Client-Tool heruntergeladen werden.

Backup herunterladen und wiederherstellen

info

One-Click-Restore ist derzeit in Entwicklung. In der Zwischenzeit können Backups manuell heruntergeladen und wiederhergestellt werden.

Die Backup-Zugangsdaten und Bucket-Details findest du im Cockpit oder über nctl.

Verwende s3cmd, um deine Backups aufzulisten und herunterzuladen:

# verfügbare Backups auflisten
s3cmd ls s3://backup-bucket/

# das neueste Backup herunterladen
s3cmd get s3://backup-bucket/dump.sql.zst ./dump.sql.zst

Nach dem Herunterladen kannst du das Backup wiederherstellen:

zstd -d --stdout dump.sql.zst | psql --host=${FQDN} --username=${USER} --dbname=${USER}

Weitere S3-Client-Tools und Konfigurationsoptionen findest du unter Object Storage Client Tools.

Speicher

Der Speicherplatz ist auf 10 GB (L-Paket) begrenzt. Wenn deine Datenbank mehr Speicherplatz benötigt, empfehlen wir die Migration zu einer Business-Datenbank, die dedizierte Ressourcen und automatische Speichererweiterung bietet. Du kannst dazu ein Backup herunterladen und auf einer neuen Business-Instanz wiederherstellen.