Zum Hauptinhalt springen

MySQL — Business

Business-Datenbanken sind ideal für die Bereitstellung deiner Produktions-Workloads oder wenn du eine vollständige Datenbankinstanz mit dedizierten Ressourcen und der Flexibilität der Benutzer- und Datenbankverwaltung wünschst.

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 .
    Vergiss nicht, deine IP zu erlauben your IP um dich mit der Instanz verbinden zu können.
  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:
    mysql --user=${USER} --host=${FQDN} --password=${PASSWORD} --database=${USER}

Grundlegende Befehle

Erstellen einer neuen Datenbank namens app_prod:

mysql> CREATE DATABASE app_prod;

Erstellen eines neuen Benutzers namens app_prod:

mysql> CREATE USER 'app_prod' IDENTIFIED BY 'strongpassword';

Gewähren von Berechtigungen für den Benutzer app_prod auf die Datenbank app_prod:

mysql> GRANT ALL ON app_prod.* TO 'app_prod'@'%';

Für die Vergabe spezifischerer Berechtigungen findest du Details in der offiziellen MySQL-Dokumentation: Summary of Available Privileges

Ändern des Passworts für den Benutzer app_prod:

mysql> ALTER USER app_prod IDENTIFIED BY 'newstrongpassword';

Löschen der Datenbank app_prod:

mysql> DROP DATABASE app_prod;

Löschen des Benutzers app_prod:

mysql> DROP USER app_prod;

Verwende die offizielle MySQL-Dokumentation für weitere Informationen zur Benutzer- und Datenbank-verwaltung.

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.

Erlaubte IP-Adressen

IPv4-Adressen und Adressbereiche, von denen aus Verbindungen zum Service hergestellt werden können. Der Zugriff von unseren Kubernetes-Produkten NKE und GKE sowie von Deploio ist bereits aktiviert.

Die Zugriffsbeschränkung kann jederzeit angepasst werden. Anpassungen werden unterbrechungsfrei wenige Momente nach dem Absenden des Formulars wirksam.

Aufbewahrungszeitraum für Datensicherungen

Der Aufbewahrungszeitraum für Sicherungen in Tagen kann zwischen 0 und 365 Tagen gewählt werden.

Werden 0 Tage gewählt, so wird die Sicherungsroutine deaktiviert und alle vorhandenen Sicherungen werden gelöscht.

Bitte beachte, dass der Speicherplatzbedarf bei langer lokaler Vorhaltedauer ansteigt. Dies hat möglicherweise höhere Instanzkosten zur Folge. Weiterführende Informationen haben wir im Abschnitt Automatische Speicherplatzerweiterung zusammengefasst.

Weitere Informationen zur täglichen Sicherung deiner Datenbanken, dem Zugriff auf die Sicherungen sowie der Möglichkeit, wie du bei Bedarf selbst Sicherungen anlegen kannst, findest du im Abschnitt zu Sicherungen.

Maschinentyp

Wir bieten folgende Maschinentypen für On-Demand-Datenbankinstanzen an:

note

Bitte beachte, dass wir für den Produktiveinsatz mindestens den nine-db-s-Maschinentyp empfehlen.

XS
nine-db-xs
S
nine-db-s
M
nine-db-m
L
nine-db-l
XL
nine-db-xl
XXL
nine-db-xxl
Virtuelle CPU (VCPU)2446810
RAM4 GB8 GB12 GB16 GB24 GB32 GB
Speicherplatz20 GB20 GB20 GB20 GB20 GB20 GB
Monatliche Kosten

Zusätzlicher Speicherplatz pro 10GB:

Der Maschinentyp kann zu einem späteren Zeitpunkt deinem Bedarf angepasst werden. Nach einer Anpassung wird die Datenbankinstanz neu gestartet und steht für einige Minuten nicht zur Verfügung. Der Speicherplatz wird bei Bedarf automatisch erweitert. Weitere Informationen findest du im Abschnitt Automatische Speicherplatzerweiterung.

SSH Public-Keys

In diesem Feld kannst du SSH-Public-Keys zum Zugriff auf die Datenbanksicherungen per SSH hinterlegen. Die SSH-Keys können jederzeit angepasst werden.

Version

Nine stellt derzeit On-Demand MySQL Umgebungen ausschliesslich mit MySQL 8 zur Verfügung.

Long Query Time

Die "Long Query Time" legt die Zeit in Sekunden fest, ab der der MySQL Dienst die Ausführung eines Queries als langsam betrachtet und das Query protokolliert.

Min Word Length

Dieser Wert konfiguriert die Mindestlänge eines Wortes, die MySQL für die Volltextsuche verwendet.

Nine setzt den hier gewählten Wert für die beiden Parameter ft_min_word_len (MyISAM Storage Engine, Legacy) und innodb_ft_min_token_size (InnoDB Storage Engine).

Character Set

Der Zeichensatz ist anpassbar. Aus Erfahrung decken die Standardwerte utf8mb4_unicode_ci / utf8mb4 die meisten Bedürfnisse ab.

Bevor du eine Anpassung dieser Werte in Betracht ziehst, konsultiere bitte die MySQL-Dokumentation unter Character Sets and Collations in MySQL.

Transaction Isolation

Nine empfiehlt, keine Anpassung am gewählten Standardwert vorzunehmen, wenn dies nicht aufgrund von Anforderungen der Applikation unbedingt erforderlich ist.

Informiere dich im Voraus in der MySQL-Dokumentation unter Transaction Isolation Levels und mache dich mit den damit verbundenen Auswirkungen vertraut.

SQL Modes

Der SQL Mode sollte ebenso nur dann angepasst werden, wenn die Applikation dies unbedingt erfordert. Nine verwendet die von Oracle festgelegten Standardwerte für MySQL 8. Weitere Details sind in der offiziellen MySQL Dokumentation unter MySQL 8.0 FAQ: Server SQL Mode und MySQL 8.0 FAQ: Server SQL Mode zu finden.

Verbindung

tip

Gemäss Erlaubte IP-Adressen musst du möglicherweise zusätzliche IPs erlauben.

User

Bei der Erstellung der Instanz wird ein Benutzer "dbadmin" mit einem Passwort für die Verbindungsauthentifizierung erstellt. Weitere Informationen zum Abrufen der Anmeldedaten findest du im Abschnitt Erste Schritte.

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_MYSQL_<NAME>_FQDNHostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname.
NINE_MYSQL_<NAME>_PORTPort (immer 3306).
NINE_MYSQL_<NAME>_USERBenutzername.
NINE_MYSQL_<NAME>_PASSWORDPasswort.
NINE_MYSQL_<NAME>_CA_CERTCA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist.

Sicherungen

Nine erstellt täglich zwischen 01:00 und 02:00 Uhr Sicherungen der Datenbanken deiner On Demand Datenbankumgebung. Diese Sicherungen werden 10 Tage (Standardkonfiguration) lokal auf dem Datenbankserver vorgehalten. Weiter werden die Sicherungen für sieben Tage auf ein Backupspeichersystem mit einem entfernten Standort gespeichert.

Die Sicherungen werden im Verzeichnis /home/dbadmin/backup hinterlegt. Alle Sicherungen werden in Verzeichnissen mit folgendem Zeitschema versioniert: 2022-11-18-0134

Über den symbolischen Link /home/dbadmin/backup/latest/ gelangst du zur neusten Sicherung.

Im Ordner customer findest du die Sicherungen aller von dir angelegten Datenbanken. Solltest du lediglich an der Struktur einer Datenbank interessiert sein, so findest du diese im Verzeichnis structure.

Zusätzliche Sicherungen erstellen

Du kannst zusätzliche Backups erstellen, indem du das Skript {props.command} mit dem sudo Befehl aufrufst:

dbadmin@managedvirtualmachine-xxxxxxx:~ $ sudo nine-mysql-backup 2022-11-18T09:54:19+01:00 Dumped and compressed database 'frontend_production' in 53 seconds 2022-11-18T09:55:04+01:00 Dumped and compressed database 'frontend_staging' in 45 seconds

Speicherbedarf der Sicherungen

Die Sicherungsroutine erstellt komprimierte Sicherungen. In Abhängigkeit der Datenbankgrösse entstehen möglicherweise dennoch speicherplatzintensive Sicherungen.

Um sicherzustellen, dass stets ausreichend Speicherplatz zur Verfügung steht, verfügen die On Demand Datenbankumgebungen über einen Mechanismus, der automatisch eine Speicherplatzerweiterung durchführt.

Anzahl der vorgehaltenen Sicherungen

Die Anzahl der vorgehaltenen Sicherungen kann via Cockpit angepasst werden. Die Dauer der Vorhaltezeit kann dabei zwischen einem und 365 Tagen frei gewählt werden.

Bitte beachte, dass bei einer langen Vorhaltezeit ein höherer Speicherplatzbedarf entsteht, der Folgekosten verursacht.

Sicherungen deaktivieren

Wenn du selbst Sicherungen deiner Datenbanken erstellen oder aus anderen Gründen nicht wünschst, dass Sicherungen erstellt werden, so kann die Vorhaltezeit der Sicherungen in Cockpit auf "0" angepasst werden.

In diesem Fall wird die Erstellung weiterer Sicherungen deaktiviert. Alle bereits erstellten Sicherungen werden kurz nach der Anpassung gelöscht.

Zugriff auf die erstellten Sicherungen

Mittels des Systembenutzers dbadmin kannst du über eine SSH Verbindung auf die erstellten Sicherungen zugreifen.

Der SSH Zugriff für den Benutzer wird über die Hinterlegung eines SSH Schlüssel in Cockpit gesteuert.

Wiederherstellung und Arbeiten mit den erstellten Sicherungen

Die eingesetzte Sicherungsroutine entspricht der Routine, die wir auch für unsere Managed Server einsetzen. Das Arbeiten mit den Sicherungen und weitere Informationen zur Wiederherstellung haben wir in folgendem Support-Artikel beschrieben:

- MySQL Backups and Restore

Automatische Speicherplatzerweiterung

Um eine möglichst störungsfreie Umgebung bereitzustellen, wird der zur Verfügung stehende Speicherplatz in Intervallen von 5 Minuten überprüft. Sollte unsere Überwachung feststellen, dass der zur Verfügung stehende Speicherplatz einen Schwellenwert unterschreitet, wird automatisch eine Erweiterung des Speicherkontingents durchgeführt.

Schwellenwerte

Bei einer Gesamtgrösse unter 50 GB liegt der Schwellenwert bei 5 GB freiem Speicherplatz.

Bei einer Gesamtgrösse über 50 GB liegt der Schwellenwert bei 10 % freiem Speicherplatz.

Erweiterung des Speicherplatzes

Die Erweiterung des Speicherplatzes erfolgt automatisch in Schritten von 25 GB.

Reduktion des Speicherplatzes

Eine Reduktion des Speicherplatzes ist nicht möglich. Wenn du den Speicher nicht mehr benötigst und so die Kosten optimieren möchtest, lade eine aktuelle Sicherung vom Server herunter und spiele diese auf einem neuen Server wieder ein.

Verrechnung der Speicherplatzerweiterung

Der zusätzliche Speicherplatz wird automatisch verrechnet.