PostgreSQL — Economy
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 bei | Bitte 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:
- Cockpit
- nctl
- Erstelle im Cockpit einen neuen Service .
- Ruf die Anmeldedaten von der Übersichtsseite ab. Notiere dir FQDN, Benutzername und Passwort.
Die Datenbank hat denselben Namen wie der Benutzer. - Verbinde dich mit der neu erstellten Datenbank:psql --host ${FQDN} --dbname ${USER} --username ${USER}
- Stelle sicher, dass du mit
nctlangemeldet bist:nctl auth login - Erstelle eine
postgresdatabase:nctl create postgresdatabase my-test-database - Verbinde dich mit der neu erstellten Datenbank:nctl get postgresdatabase my-test-database # notiere dir den FQDNnctl get postgresdatabase my-test-database --print-user # notiere dir den Benutzernctl get postgresdatabase my-test-database --print-password # notiere dir das Passwortpsql --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 Name | Name | Standort | Notizen |
|---|---|---|---|
| nine-cz42 | ColoZüri 4.2 | Altstetten, Zürich | |
| nine-es34 | NTT Zürich 1 | Rümlang | |
| nine-cz41 | ColoZüri 4.1 | Altstetten, Zürich | Neue 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:
| S | M | L | |
|---|---|---|---|
| Speicherplatz max. | 1 GB | 5 GB | 10 GB |
| Max. Verbindungen | 20 | 20 | 20 |
| 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
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:
- Cockpit
- nctl
- Ö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.
- Stelle sicher, dass du mit
nctlangemeldet bist:bash nctl auth login2. Rufe das Zertifikat ab:
nctl get postgresdatabase my-test-postgresdatabase --print-ca-cert
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 _.
| Variable | Beschreibung |
|---|---|
NINE_PGDB_<NAME>_FQDN | Hostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname. |
NINE_PGDB_<NAME>_PORT | Port (immer 5432). |
NINE_PGDB_<NAME>_USER | Datenbankname (entspricht dem bei der Erstellung vergebenen Namen). |
NINE_PGDB_<NAME>_PASSWORD | Passwort. |
NINE_PGDB_<NAME>_CA_CERT | CA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist. |
NINE_PGDB_<NAME>_DSN | Vollstä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
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:
- MySQL
- PostgreSQL
zstd -d --stdout dump.sql.zst | mysql --user=${USER} --host=${FQDN} --password=${PASSWORD} --database=${USER}
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.