PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Failover und Failback für PostgreSQL auf Microsoft Azure

Es ist ziemlich üblich, die Cloud zum Speichern Ihrer Daten oder als Failover-Option im Falle eines Master-Ausfalls zu verwenden. Es gibt mehrere Cloud-Anbieter, die es Ihnen ermöglichen, Daten über eine Cloud-Plattform zu speichern, zu verwalten, abzurufen und zu manipulieren; über das Internet zugänglich. Jeder Cloud-Anbieter hat seine eigenen Produktangebote und einzigartigen Funktionen mit jeweils unterschiedlichen Kostenmodellen.

Microsoft Azure ist einer dieser potenziellen Anbieter. In diesem Blog werfen wir einen Blick darauf, welche Funktionen Microsoft Azure für den primären Speicher als Standort für die Notfallwiederherstellung bietet, und sehen uns insbesondere an, wie es mit einer gemischten PostgreSQL-Datenbankumgebung umgeht.

Bereitstellen einer PostgreSQL-Datenbankinstanz auf Microsoft Azure

Bevor Sie diese Aufgabe ausführen, müssen Sie entscheiden, wie Sie diese Instanz verwenden und welches Azure-Produkt für Sie am besten geeignet ist. Es gibt zwei grundlegende Möglichkeiten, eine PostgreSQL-Instanz auf Microsoft Azure bereitzustellen.

  1. Azure-Datenbank für PostgreSQL :Ist ein verwalteter Dienst, mit dem Sie hochverfügbare PostgreSQL-Datenbanken in der Cloud ausführen, verwalten und skalieren können. Es ist in zwei Bereitstellungsoptionen verfügbar:Single Server und Hyperscale.
  2. Virtuelle Maschine :Bietet eine hochgradig skalierbare, sichere und virtualisierte On-Demand-Infrastruktur. Es unterstützt Ubuntu Server, RedHat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian und Windows Server und ermöglicht es Ihnen, Anwendungen zu entwickeln, zu testen, auszuführen und Ihr Rechenzentrum in nur wenigen Sekunden zu erweitern.

Für diesen Blog werfen wir einen Blick darauf, wie wir eine Azure-Datenbank für PostgreSQL erstellen und eine Azure-VM aus dem Microsoft Azure-Portal verwenden können.

Bereitstellen von Azure Database for PostgreSQL

Wenn Sie zu Ihrem Azure-Portal gehen -> Ressource erstellen -> Datenbanken -> Azure Database for PostgreSQL, können Sie zwischen Single Server oder Hyperscale wählen. Für diesen Blog verwenden wir einen einzelnen Server, da sich die Hyperscale-Option in der Vorschau befindet und noch kein SLA bietet.

Hier müssen Sie einige Informationen über Ihre neue PostgreSQL-Instanz hinzufügen; B. Abonnement, Servername, Benutzeranmeldeinformationen und Standort. Sie können auch auswählen, welche PostgreSQL-Version verwendet werden soll (aktuell sind Versionen 9.5, 9.6, 10 oder 11 verfügbar) und die virtuelle Hardware zum Ausführen (Compute + Storage).

Wenn Sie die Hardware angeben, sehen Sie den geschätzten realen Preis -Zeit. Dies ist wirklich nützlich, um eine große Überraschung im nächsten Monat zu vermeiden. Nach diesem Schritt müssen Sie nur noch die Ressourcenkonfiguration bestätigen und ein paar Minuten warten, bis Azure den Erstellungsauftrag abgeschlossen hat.

Wenn Sie die neue Ressource erstellt haben, können Sie zu Alle Ressourcen gehen, um die verfügbaren Ressourcenoptionen anzuzeigen.

In den erstellten Ressourcenoptionen können Sie zur Replikation gehen, um sie zu aktivieren und vom Masterserver auf bis zu fünf Replikate replizieren. Sie sollten auch den Abschnitt Verbindungssicherheit überprüfen, um den externen Zugriff zu aktivieren oder zu deaktivieren. Um die Zugangsinformationen zu erfahren, müssen Sie den Ressourcenübersichtsabschnitt besuchen.

$ psql -h pg1blog.postgres.database.azure.com -U [email protected] postgres

Password for user [email protected]:

psql (11.5, server 11.4)

SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)

Type "help" for help.

postgres=>

Failover auf Azure Database for PostgreSQL

Leider ist ein automatisiertes Failover zwischen Master- und Replica-Servern nicht verfügbar. Wenn Sie jedoch die Masterinstanz löschen, führt Azure einen Failoverprozess durch, um das Replikat automatisch hochzustufen.

Es gibt eine Option zum manuellen Ausführen dieser Failover-Aufgabe, was von Ihnen verlangt wird Stoppen Sie das Replikat und konfigurieren Sie den neuen Endpunkt in Ihrer Anwendung so, dass er auf den neuen Master verweist. Das Replikat wird heraufgestuft und vom Master getrennt. Es gibt keine Möglichkeit, dieses Replikat erneut mit Ihrem Master zu verknüpfen.

Bereitstellen von PostgreSQL auf einer virtuellen Azure-Maschine

Wenn Sie zu Ihrem Azure-Portal -> Ressource erstellen -> Compute -> Virtuelle Maschine gehen, öffnen Sie den Abschnitt Virtuelle Maschine erstellen, in dem Sie verschiedene Konfigurationen für Ihre neue virtuelle Azure-Maschine angeben können .

Auf der Basisregisterkarte müssen Sie das Azure-Abonnement, die Region und die Verfügbarkeit angeben Optionen, Betriebssystem, Servergröße, Zugangsdaten (Benutzername/Passwort oder SSH-Schlüssel) und eingehende Firewall-Regeln.

Auf der Registerkarte Datenträger müssen Sie den Speicher (Typ und Größe) angeben für Ihre neue virtuelle Maschine. Der Festplattentyp kann Standard HDD, Standard SSD oder Premium SSD sein. Letzteres wird für hohe IOPS-Workloads empfohlen.

Auf der Registerkarte „Netzwerk“ können Sie das virtuelle Netzwerk und die öffentliche IP-Adresse angeben , und die zulässigen eingehenden Ports. Sie können diesen neuen virtuellen Computer auch hinter einer vorhandenen Azure-Lastenausgleichslösung hinzufügen.

Auf der nächsten Registerkarte haben wir einige Verwaltungsoptionen wie Überwachung und Backups .

Und schließlich können wir auf der Registerkarte „Erweitert“ Erweiterungen, Cloud- init oder Hostgruppen.

Nachdem Sie die vorherige Option überprüft und bestätigt haben, haben Sie Ihre neue virtuelle Maschine erstellt und können über das Azure-Portal darauf zugreifen. Im Abschnitt Ressource -> Übersicht sehen Sie die Zugriffsinformationen der virtuellen Maschine (öffentliche/private IP-Adresse).

Jetzt können Sie über SSH darauf zugreifen und die PostgreSQL-Datenbank mit ClusterControl installieren .

$ ssh 23.102.177.27

Last login: Mon Sep 23 21:33:27 2019

[[email protected] ~]$

Sie können diesen Link überprüfen, um die Schritte zum Durchführen der PostgreSQL-Bereitstellung mit ClusterControl anzuzeigen.

PostgreSQL-Failover auf Azure Virtual Machine

Disaster Recovery ist eine Funktion für virtuelle Maschinen im Abschnitt „Vorgänge“, mit der Sie Ihre Umgebung in einer anderen Azure-Region replizieren können. Um es zu aktivieren, müssen Sie die Zielregion auswählen. Auf der Registerkarte Erweitert können Sie die spezifischen Zieldetails ändern; wie virtuelles Netzwerk, Speichereinstellungen und Replikationseinstellungen.

Wenn die Notfallwiederherstellung aktiviert ist, können Sie die Replikationsstatus, testen Sie den Failover-Prozess oder führen Sie ein manuelles Failover durch.

Wenn Sie dies aktivieren, haben Sie im Fehlerfall eine Failover-Option. Dies ist jedoch ein Failover für die gesamte Umgebung und nicht nur für den Datenbankdienst.

Ein verbesserter PostgreSQL-Failover-Prozess für Microsoft Azure

Da Sie SSH-Zugriff haben, können Sie diesen Failover-Prozess verbessern, indem Sie die virtuelle Maschine mit ClusterControl importieren (oder sogar die PostgreSQL-Datenbank bereitstellen).

Wenn Sie die Datenbankknoten mit ClusterControl verwalten (und wenn die Option „Automatische Wiederherstellung“ aktiviert ist), wird ClusterControl im Falle eines Master-Ausfalls den am weitesten fortgeschrittenen Slave heraufstufen (wenn er nicht auf der schwarzen Liste steht). ) zu meistern und Sie über das Problem zu informieren. Es führt auch automatisch ein Failover für die restlichen Slaves durch, um vom neuen Master zu replizieren.

Mit ClusterControl stellen Sie sogar eine gemischte Umgebung mit einigen Knoten in der Cloud und anderen Knoten vor Ort bereit. Sie können Ihrer Topologie auch Load Balancer hinzufügen, um unsere Hochverfügbarkeitsumgebung zu verbessern. Weitere Informationen zu diesem Thema finden Sie hier.

Fazit

Azure hat viele Funktionen und Produkte, um eine Lösung auf Unternehmensebene anzubieten. Während dieser Tests stellte ich jedoch fest, dass die Zeit bis zur Erstellung und zum Failover für die meisten Anwendungsanforderungen zu lang war.

Wenn Sie ein schnelles Failover und eine schnelle Wiederherstellung benötigen, sollten Sie die Verfügbarkeit der Umgebung verbessern, indem Sie einen Load Balancer oder ein externes System wie ClusterControl verwenden, um die Ausfallzeit zu verringern. Ausführlichere Informationen zum Ausführen von PostgreSQL auf Microsoft Azure finden Sie in unserem ausführlichen Blog.