MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

So erstellen Sie einen Klon Ihres MySQL- oder PostgreSQL-Datenbankclusters

Wenn Sie eine Produktionsdatenbank verwalten, ist die Wahrscheinlichkeit hoch, dass Sie Ihre Datenbank auf einen anderen Server als den Produktionsserver klonen mussten. Die grundlegende Methode zum Erstellen eines Klons besteht darin, eine Datenbank aus einer kürzlich durchgeführten Sicherung auf einem anderen Datenbankserver wiederherzustellen. Eine andere Methode besteht darin, von einer Quelldatenbank zu replizieren, während sie noch läuft. In diesem Fall ist es wichtig, dass die Originaldatenbank von keinem Klonvorgang betroffen ist.

Warum sollten Sie eine Datenbank klonen?

Ein geklonter Datenbankcluster ist in einer Reihe von Szenarien nützlich:

  • Beheben Sie Fehler in Ihrem geklonten Produktionscluster in der Sicherheit Ihrer Testumgebung, während Sie destruktive Operationen an der Datenbank ausführen.
  • Patch-/Upgrade-Test einer geklonten Datenbank, um den Upgrade-Prozess zu validieren, bevor er auf den Produktionscluster angewendet wird.
  • Validieren Sie die Sicherung und Wiederherstellung eines Produktionsclusters mithilfe eines geklonten Clusters.
  • Validieren oder testen Sie neue Anwendungen auf einem geklonten Produktionscluster, bevor Sie sie auf dem Live-Produktionscluster bereitstellen.
  • Klonen Sie schnell die Datenbank für Audit- oder Informations-Compliance-Anforderungen, zum Beispiel bis zum Quartals- oder Jahresende, wenn der Inhalt der Datenbank nicht geändert werden darf.
  • Eine Berichtsdatenbank kann in Intervallen erstellt werden, um Datenänderungen während der Berichterstellung zu vermeiden.
  • Migrieren Sie eine Datenbank auf neue Server, eine neue Bereitstellungsumgebung oder ein neues Rechenzentrum.

Wenn Sie Ihre Datenbankinfrastruktur in der Cloud betreiben, sind die Kosten für den Besitz eines Hosts (gemeinsam genutzte oder dedizierte virtuelle Maschine) erheblich niedriger als bei der traditionellen Art, Speicherplatz in einem Rechenzentrum zu mieten oder einen physischen Server zu besitzen. Darüber hinaus kann der Großteil der Cloud-Bereitstellung einfach über Anbieter-APIs, Client-Software und Skripting automatisiert werden. Daher kann das Klonen eines Clusters eine gängige Methode sein, um Ihre Bereitstellungsumgebung zu duplizieren, beispielsweise von Entwicklung zu Staging zu Produktion oder umgekehrt.

Wir haben noch nie gesehen, dass diese Funktion von irgendjemandem auf dem Markt angeboten wird, daher ist es unser Privileg, zu zeigen, wie sie mit ClusterControl funktioniert.

Klonen eines MySQL Galera-Clusters

Eine der coolen Funktionen von ClusterControl ist, dass Sie schnell einen bestehenden MySQL Galera-Cluster klonen können, sodass Sie eine exakte Kopie des Datensatzes auf dem anderen Cluster haben. ClusterControl führt den Klonvorgang online durch, ohne dass der vorhandene Cluster gesperrt oder heruntergefahren wird. Es ist wie ein Cluster-Scale-Out-Vorgang, außer dass beide Cluster nach Abschluss der Synchronisierung unabhängig voneinander sind. Der geklonte Cluster muss nicht unbedingt die gleiche Clustergröße haben wie der vorhandene. Wir könnten mit einem Ein-Knoten-Cluster beginnen und ihn zu einem späteren Zeitpunkt mit mehr Datenbankknoten skalieren.

In diesem Beispiel haben wir einen Cluster namens "Staging", den wir als einen anderen Cluster namens "Production" klonen möchten. Die Prämisse ist, dass der Staging-Cluster bereits die erforderlichen Daten gespeichert hat, die bald in Produktion gehen werden. Der Produktionscluster besteht aus weiteren 3 Knoten mit Produktionsspezifikationen.

Das folgende Diagramm fasst die endgültige Architektur dessen zusammen, was wir erreichen wollen:

Als Erstes müssen Sie vom ClusterControl-Server aus eine passwortlose SSH-Verbindung einrichten zu den Produktionsservern. Führen Sie auf dem ClusterControl-Server Folgendes aus:

$ whoami

root

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Geben Sie das Root-Passwort des Zielservers ein, wenn Sie dazu aufgefordert werden.

Klicken Sie in der Clusterliste der ClusterControl-Datenbank auf die Schaltfläche Clusteraktion und wählen Sie Cluster klonen. Der folgende Assistent wird angezeigt:

Geben Sie die IP-Adressen oder Hostnamen des neuen Clusters an und stellen Sie sicher, dass Sie diese erhalten alle grünen Häkchen neben dem angegebenen Host. Das grüne Symbol bedeutet, dass ClusterControl sich über passwortloses SSH mit dem Host verbinden kann. Klicken Sie auf die Schaltfläche „Clone Cluster“, um die Bereitstellung zu starten.

Die Bereitstellungsschritte sind:

  1. Neuen Cluster erstellen besteht aus einem Knoten.
  2. Synchronisieren Sie den neuen Ein-Knoten-Cluster über SST. Der Spender ist einer der Quellserver.
  3. Die verbleibenden neuen Knoten werden dem Cluster beitreten, nachdem der Spender des geklonten Clusters mit dem Cluster synchronisiert wurde.

Sobald der Vorgang abgeschlossen ist, wird ein neuer MySQL Galera-Cluster im ClusterControl-Cluster-Dashboard aufgelistet.

Beachten Sie, dass das Cluster-Klonen nur die Datenbankserver klont und nicht den gesamten Stack des Clusters. Das bedeutet, dass andere unterstützende Komponenten im Zusammenhang mit dem Cluster wie Load Balancer, virtuelle IP-Adresse, Galera-Arbitrator oder asynchroner Slave nicht von ClusterControl geklont werden. Wenn Sie dennoch eine exakte Kopie Ihrer vorhandenen Datenbankinfrastruktur klonen möchten, können Sie dies mit ClusterControl erreichen, indem Sie diese Komponenten separat bereitstellen, nachdem der Datenbankklonvorgang abgeschlossen ist.

Erstellen eines Datenbank-Clusters aus einer Sicherung

Eine weitere ähnliche Funktion, die von ClusterControl angeboten wird, ist "Cluster aus Backup erstellen". Diese Funktion wird in ClusterControl 1.7.1 eingeführt, speziell für Galera Cluster und PostgreSQL-Cluster, wo man einen neuen Cluster aus dem bestehenden Backup erstellen kann. Im Gegensatz zum Klonen von Clustern bringt dieser Vorgang keine zusätzliche Last für den Quellcluster mit einem Kompromiss, dass der geklonte Cluster nicht den aktuellen Zustand des Quellclusters aufweist.

Um einen Cluster aus einem Backup zu erstellen, müssen Sie ein funktionierendes Backup erstellt haben. Für Galera-Cluster werden alle Sicherungsmethoden unterstützt, während für PostgreSQL nur pgbackrest für die Bereitstellung neuer Cluster nicht unterstützt wird. Von ClusterControl aus kann unter ClusterControl -> Backups -> Backup erstellen einfach ein Backup erstellt oder geplant werden. Klicken Sie in der Liste der erstellten Sicherungen auf Sicherung wiederherstellen, wählen Sie die Sicherung aus der Liste aus und wählen Sie „Cluster aus Sicherung erstellen“ aus der Wiederherstellungsoption:

In diesem Beispiel stellen wir einen neuen PostgreSQL-Streaming-Replikationscluster bereit für die Staging-Umgebung, basierend auf dem vorhandenen Backup, das wir im Produktionscluster haben. Das folgende Diagramm veranschaulicht die endgültige Architektur:

Als Erstes müssen Sie vom ClusterControl-Server aus eine passwortlose SSH-Verbindung einrichten zu den Produktionsservern. Führen Sie auf dem ClusterControl-Server Folgendes aus:

$ whoami

root

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Wenn Sie Create Cluster From Backup wählen, öffnet ClusterControl einen Bereitstellungsassistenten, der Sie beim Einrichten des neuen Clusters unterstützt:

Eine neue PostgreSQL-Streaming-Replikationsinstanz wird aus der ausgewählten Sicherung erstellt, die wird als Basisdatensatz für den neuen Cluster verwendet. Die ausgewählte Sicherung muss von den Knoten im neuen Cluster aus zugänglich sein oder auf dem ClusterControl-Host gespeichert sein.

Durch Klicken auf "Fortfahren" wird der standardmäßige Datenbank-Cluster-Bereitstellungsassistent geöffnet:

Beachten Sie, dass das Root-/Admin-Benutzerpasswort für diesen Cluster mit identisch sein muss das PostgreSQL-Administrator-/Root-Passwort, wie es in der Sicherung enthalten ist. Folgen Sie dem Konfigurationsassistenten entsprechend und ClusterControl führt dann die Bereitstellung in der folgenden Reihenfolge durch:

  1. Installieren Sie notwendige Software und Abhängigkeiten auf allen PostgreSQL-Knoten.
  2. Starte den ersten Knoten.
  3. Backup auf dem ersten Knoten streamen und wiederherstellen.
  4. Konfigurieren und fügen Sie die restlichen Knoten hinzu.

Sobald der Vorgang abgeschlossen ist, wird ein neuer PostgreSQL-Replikationscluster im ClusterControl-Cluster-Dashboard aufgelistet, sobald der Bereitstellungsjob abgeschlossen ist.

Fazit

Mit ClusterControl können Sie mit nur wenigen Klicks einen Datenbank-Cluster in mehrere Umgebungen klonen oder kopieren. Sie können es heute kostenlos herunterladen. Viel Spaß beim Klonen!