Totara-Websites aus einer Datenbanksicherung klonen

Prev Next

Wenn Sie eine neue Website einrichten, sollten Sie mit einer Standardkonfiguration und -einrichtung beginnen. Eine Möglichkeit, dies zu erreichen, ist das Klonen der Datenbank- und Websitedaten von einer bestehenden Website. Wenn diese Methode verwendet wird, scheint oft alles in Ordnung zu sein, aber es gibt einige subtile Probleme, die durch Klonen verursacht werden und zu erheblichen Problemen an einer Produktionsstätte führen können.

Daher empfehlen wir dringend, eine Neuinstallation für jede Website durchzuführen, die in der Produktion verwendet wird. Unten finden Sie weitere Informationen zu unserem empfohlenen Ansatz und zu Dingen, die Sie berücksichtigen sollten, wenn Sie aus einem Backup klonen.

Bedeutung des Zurücksetzens der Website-Kennung

Ein wesentliches Problem, das auftreten kann, wenn eine Website aus einer Datenbanksicherung geklont wird, ist, dass Sie dieselbe Website-ID auf mehreren Websites haben können. Die Site-ID wird in der Konfigurationseinstellung $CFG→siteidentifier gespeichert und muss ein eindeutiger Wert für alle Sites sein. Viele Codebereiche hängen von der Einzigartigkeit dieser Variablen ab. Wenn Sie eine neue Website aus einem anderen Grund als dem Verschieben der Website zu einer neuen URL wiederherstellen, müssen Sie die Konfigurationsvariable Siteidentifier deaktivieren. Das System generiert automatisch eine neue eindeutige Kennung, wenn sie als nächstes erforderlich ist.

Nachfolgend finden Sie einige potenzielle Probleme, die wir auf Websites mit denselben Website-Kennungen festgestellt haben. Dies ist keine vollständige Liste, sondern nur einige Beispiele, die die Probleme hervorheben.

Caching

Das integrierte Caching-System verwendet die Site-Kennung, um einen eindeutigen Schlüssel zu generieren (siehe get_cache_identifier() in /cache/classes/definition.php). Wenn zwei Websites mit derselben Kennung denselben Cache-Speicher verwenden, besteht die Möglichkeit, dass die zwischengespeicherten Daten von einer Website fälschlicherweise an die andere Website weitergegeben werden. Dazu können sensible Informationen oder systemkritische Informationen wie Konfigurationsdaten gehören. Die falsche Verwendung von zwischengespeicherten Daten von einer anderen Website kann die Website(n) kritisch beschädigen – z. B. wenn zwischengespeicherte Konfigurations- oder Datenbanktabellenstrukturdaten von einer Website durch Code auf einer anderen Website verwendet werden.

Sicherung und Wiederherstellung

Die Sicherung und Wiederherstellung verwendet die Site-Kennung, um zu bestimmen, ob eine Sicherung auf derselben Site wiederhergestellt wird, auf der sie generiert wurde oder nicht. Das System verhält sich unterschiedlich, je nachdem, ob Quelle und Ziel übereinstimmen oder nicht. Anstatt beispielsweise einen neuen Nutzer zu erstellen, kann das System einem bestehenden Nutzer wiederhergestellte Daten zuweisen, wenn es glaubt, dass der Nutzer übereinstimmt (siehe Kommentare oben precheck_user() in /util/dbops/restore_dbops.class.php). Es gibt zwar zusätzliche Überprüfungen (die Benutzer-ID und der Benutzername müssen übereinstimmen), aber es besteht immer noch die Möglichkeit einer falschen Datenzuordnung, wenn eine Sicherung von einer Website auf einer anderen Website wiederhergestellt wird, wenn sie dieselbe Website-ID teilen, insbesondere wenn Nutzer als Teil der Einrichtung der neuen Website geklont werden.

LTI

LTI verwendet die Website-ID, um geheime Token zu generieren, die zur Authentifizierung des Zugriffs auf LTI-Pakete verwendet werden (siehe generate_cartridge_token() in /enrol/lti/classes/helper.php). Theoretisch könnte sich ein Nutzer mit Zugriff auf eine Website bei einem Kurs auf einer anderen Website authentifizieren, der dieselbe Website-Kennung hat, wenn es einen Kurs gibt, der dieselbe Kurs-ID wie der Kurs hat, auf den er auf seiner Website Zugriff hat. Dies würde ein erhebliches Sicherheitsproblem darstellen.

Empfohlener Ansatz zur Erstellung von Website-Instanzen

Unser empfohlener Ansatz für die Einrichtung einer neuen Website wäre wie folgt:

  • Neuen Standort mit leerer Datenbank und Datenstamm von Grund auf neu erstellen
  • Installieren Sie die Website mit dem normalen Installationsverfahren (CLI oder über das Internet)
  • Erwägen Sie die Erstellung eines Geschmacks-Plugins (siehe Kommentare in /totara/flavour/classes/definition.php für die Erstellung eines Geschmacks), um die anfängliche Konfiguration und die Standardeinstellungen festzulegen
  • Erstellen Sie ein lokales Plugin und verwenden Sie db/install.php oder CLI-Skripte, um Standardinhalte zu erstellen

Überlegungen bei der Wiederherstellung von Datenbanksicherungen

Wir empfehlen zwar dringend, dies aus den oben genannten Gründen nicht zu tun, und können keine Unterstützung für Probleme bieten, die sich aus der Einrichtung dieser Website ergeben. Wenn Sie sich jedoch dafür entscheiden, eine Website auf diese Weise zu erstellen, empfehlen wir Ihnen, Folgendes sorgfältig zu überdenken:

  • Sie müssen die Einstellung für die Konfiguration der Websitekennung auf der neuen Website deaktivieren, es sei denn:
    • Sie verschieben die Website auf eine neue URL (in diesem Fall sollte sie gleich bleiben).
    • Sie kopieren eine Produktionsdatenbank zu Testzwecken auf einen Staging- oder Testserver (Sie sollten in Ordnung sein, solange Ihr Testserver ordnungsgemäß von der Produktionsinstanz isoliert ist).
  • Ihre Datenbank kann Verweise auf die URL der Website enthalten, die Sie wahrscheinlich ersetzen möchten. Es gibt ein Skript, das dies tut (/admin/cli/replace.php), aber wir unterstützen seine Verwendung nicht und können keine Garantien dafür geben, dass es richtig funktioniert.
  • Sie sollten alle Website-Logs sofort nach der Wiederherstellung der Website kürzen.
  • Wir empfehlen, die Menge der Inhalte auf der zu sichernden Website auf ein absolutes Minimum zu beschränken. Je weniger Inhalte vorhanden sind, desto geringer ist die Wahrscheinlichkeit eines Problems.

Was ist zu tun, wenn Sie über bestehende Websites verfügen, die eine Website-ID teilen

Wir empfehlen, dass Sie, wenn möglich, die Website-Kennung aufheben und eine neue erstellen, indem Sie die Funktion moodlelib.php get_site_identifier() aufrufen. Dies muss jedoch von Fall zu Fall unter Berücksichtigung der folgenden möglichen Auswirkungen bewertet werden:

  • Stellen Sie sicher, dass Sie über eine vollständige Sicherung Ihrer Datenbank- und Websitedaten verfügen, bevor Sie die Website-Kennung aufheben.
  • Caches werden ungültig. Löschen Sie Ihren Cache sofort nach dem Aufheben der Einstellung der Website-Kennung.
  • Beachten Sie, dass alle Backups, die auf der Website erstellt werden, die Sie auf derselben Website wiederherstellen, die Website nun so behandeln, als ob es sich um eine andere als die gleiche Website handelt.
  • Überprüfen Sie sorgfältig den Code aller Drittanbieter-Plugins, um Abhängigkeiten von der Website-ID zu identifizieren und zu bestimmen, wie sie sich verhalten werden.

Join the Totara Community for more resources to help you get the most out of Totara. 


© Copyright 2026 Totara Learning Solutions. All rights reserved.