Hochverfügbarkeit der Datenbank
Diese Seite richtet sich an Datenbankadministratorinnen und -administratoren sowie Infrastrukturteams in öffentlichen Stellen, die die Datenbank einer Exponential-Website verfügbar halten müssen, wenn eine Datenbankmaschine ausfällt. Sie beantwortet, was Exponential selbst leistet, was es der Datenbank-Engine überlässt und was das Umschalten auf eine Bereitschaftsdatenbank umfasst. Die Referenzen sind 9 Datenbanken und Datenbankunterstützung.
Inhalt
- Was Exponential leistet und was nicht
- Je Engine
- Auf eine Bereitschaftsdatenbank umschalten
- Es testen
- Checkliste
Was Exponential leistet und was nicht
Exponential verbindet sich je Website mit einem Datenbankserver, der in site.ini [DatabaseSettings] Server benannt
ist. Es bietet:
| Funktion | Einstellung | Engines |
|---|---|---|
| Wiederholungen, wenn die erste Verbindung scheitert | [DatabaseSettings] ConnectRetries (ausgeliefert 0) | MySQL, PostgreSQL, SQLite |
| Lesezugriffe an Replikate | UseSlaveServer mit SlaveServerArray[] (ausgeliefert disabled) | nur MySQL und MariaDB |
| Ein Deskriptor über mehrere Listener, Failover, Wiederholungen | ezoracle.ini [ConnectionSettings] Hosts[], Failover, RetryCount | Oracle |
Es hat keine eingebaute automatische Ausfallumschaltung für PostgreSQL, MariaDB oder MySQL: Fällt der in Server
benannte Server aus, kann die Website ihre Datenbank nicht erreichen, bis diese Adresse wieder funktioniert. Die
Datenbankverfügbarkeit ist daher Aufgabe der Datenbankplattform: ihrer Replikation, einer virtuellen IP oder eines
DNS-Namens, die auf die Bereitschaftsdatenbank wechseln, oder eines Proxys vor der Datenbank. Wählen Sie, was Ihr
Datenbankteam bereits betreibt.
Je Engine
| Engine | Verfügbarkeitsoptionen | Hinweise |
|---|---|---|
| 1. SQLite 3 | keine eigenen | ein Host; keine Replikation; Wiederherstellung aus Datensicherungen (9.2) |
| 2. PostgreSQL | eigene Replikation und zeitpunktgenaue Wiederherstellung | Einrichtung nach der PostgreSQL-Dokumentation |
| 3. MongoDB | siehe die Dokumentation des Herstellers | lesen Sie zuerst die Grenzen von MongoDB |
| 4. MariaDB, 6. MySQL | die Replikation des Servers; Exponential kann von Replikaten lesen | Lese-Replikate |
| 5. Oracle | [ConnectionSettings]-Failover über mehrere Listener, DRCP, Wiederholungen | jede Funktion ist standardmäßig ausgeschaltet (9.6) |
Für eine öffentliche Stelle mit einer Pflicht zur Aufrechterhaltung des Betriebs ist SQLite die falsche Engine, sobald diese Pflicht eine Bereitschaftsdatenbank verlangt; planen Sie den Umstieg auf einen Datenbankserver (Die Datenbank-Engine wechseln).
Auf eine Bereitschaftsdatenbank umschalten
Wenn die Plattform keine wandernde Adresse hat und Sie von Hand umschalten, ist die Änderung auf der Seite von Exponential eine einzige Einstellung. Die Datenbankschritte (das Hochstufen der Bereitschaftsdatenbank) folgen der Dokumentation Ihrer Engine.
Versetzen Sie die Website in den Wartungsmodus, damit während der Umschaltung niemand schreibt:
php bin/php/maintenance.php on --message="Switching database" --until=30m --allow-root-userStufen Sie die Bereitschaftsdatenbank mit den eigenen Werkzeugen der Datenbank hoch.
Ändern Sie
Server(und bei BedarfPort) insettings/override/site.ini.append.php,[DatabaseSettings]; bei einem Cluster auch die Datenbankeinstellungen des Clusters undCLUSTER_STORAGE_HOST.Leeren Sie den INI-Cache und lassen Sie die Engine den neuen Wert lesen:
php bin/php/ezcache.php --clear-tag=ini --allow-root-user ./console exp:velocity deploy --allow-root-userUnter PHP-FPM ohne Velocity laden Sie das PHP-FPM neu, das die Website ausliefert.
Prüfen Sie die Website und beenden Sie dann den Wartungsmodus:
php bin/php/maintenance.php off --allow-root-user
Ein DNS-Name oder eine virtuelle Adresse, die das Datenbankteam verschiebt, macht Schritt 3 überflüssig und ist die bessere Architektur.
Es testen
Eine Bereitschaftsdatenbank, auf die nie umgeschaltet wurde, ist eine Hoffnung. Testen Sie die Umschaltung in einer Testumgebung (Umgebungen für Entwicklung, Test und Produktion), messen Sie, wie lange sie dauert, und halten Sie die Zeit zusammen mit Ihren Wiederherstellungszielen fest. Prüfen Sie nach einer echten Umschaltung die Inhalte, die kurz vor dem Ausfall veröffentlicht wurden: Eine Replikationsverzögerung kann die letzten Schreibvorgänge kosten.
Checkliste
- To do: Die Engine trägt die Pflicht zur Aufrechterhaltung des Betriebs (nicht SQLite, wenn eine Bereitschaftsdatenbank verlangt ist).
- To do: Das Datenbankteam betreibt die Replikation und ist für das Verfahren zum Hochstufen verantwortlich.
- To do: Die Website erreicht die Datenbank über eine Adresse, die wandern kann, oder die manuelle Umschaltung ist dokumentiert.
- To do: Über
ConnectRetriesist entschieden. - To do: Die Umschaltung wurde getestet und ihre Dauer festgehalten.
Verwandte Seiten
- Verfügbarkeit: Übersicht dieses Ordners
- Eine Datenbank in der offiziellen Reihenfolge wählen
- Datensicherung je Datenbank-Engine
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.