sql >> Database >  >> RDS >> PostgreSQL

Failover &Failback voor PostgreSQL op Microsoft Azure

Het is vrij gebruikelijk om de cloud te gebruiken om uw gegevens op te slaan of als een failover-optie in het geval van een masterfout. Er zijn verschillende cloudproviders waarmee u gegevens via een cloudplatform kunt opslaan, beheren, ophalen en manipuleren; toegankelijk via internet. Elke cloudprovider heeft zijn eigen productaanbod en unieke functies, elk met verschillende kostenmodellen.

Microsoft Azure is een van deze providers. In deze blog bekijken we welke functies Microsoft Azure biedt voor primaire opslag, als een site voor noodherstel, en specifiek hoe het omgaat met een gemengde PostgreSQL-databaseomgeving.

Een PostgreSQL-database-instantie implementeren op Microsoft Azure

Voordat u deze taak uitvoert, moet u beslissen hoe u deze instantie gaat gebruiken en welk Azure-product het beste voor u is. Er zijn twee basismanieren om een ​​PostgreSQL-instantie op Microsoft Azure te implementeren.

  1. Azure Database voor PostgreSQL :is een beheerde service die u kunt gebruiken om zeer beschikbare PostgreSQL-databases in de cloud uit te voeren, te beheren en te schalen. Het is beschikbaar in twee implementatie-opties:Single Server en Hyperscale.
  2. Virtuele machine :Biedt een on-demand, grootschalige, veilige, gevirtualiseerde infrastructuur. Het biedt ondersteuning voor Ubuntu Server, RedHat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian en Windows Server en stelt u in staat om in slechts enkele seconden applicaties te ontwikkelen, testen, uitvoeren en uw datacenter uit te breiden.

Voor deze blog bekijken we hoe we een Azure Database for PostgreSQL kunnen maken en hoe we een virtuele machine Azure kunnen gebruiken vanuit de Microsoft Azure Portal.

Azure Database for PostgreSQL implementeren

Als je naar je Azure Portal -> Create a Resource -> Databases -> Azure Database for PostgreSQL gaat, kun je kiezen tussen Single Server of Hyperscale. Voor deze blog gebruiken we een Single Server, omdat de Hyperscale-optie in preview staat en nog geen SLA biedt.

Hier moet u wat informatie over uw nieuwe PostgreSQL-instantie toevoegen; zoals abonnement, servernaam, gebruikersreferenties en locatie. Je kunt ook kiezen welke PostgreSQL-versie je wilt gebruiken (momenteel zijn er 9.5, 9.6, 10 of 11 versies) en de virtuele hardware om het uit te voeren (Compute + Storage).

Als je de hardware opgeeft, zie je de geschatte prijs in werkelijkheid -tijd. Dit is erg handig om een ​​grote verrassing volgende maand te voorkomen. Na deze stap hoeft u alleen maar de resourceconfiguratie te bevestigen en een paar minuten te wachten totdat Azure de aanmaaktaak voltooit.

Als je de nieuwe bron hebt aangemaakt, kun je naar Alle bronnen gaan om de beschikbare bronopties te zien.

In de gemaakte bronopties kunt u naar Replicatie gaan om het in te schakelen en repliceren van de hoofdserver naar maximaal vijf replica's. Controleer ook het gedeelte Verbindingsbeveiliging om externe toegang in of uit te schakelen. Om de toegangsinformatie te kennen, moet u de sectie met overzichtsbronnen bezoeken.

$ 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 op Azure Database for PostgreSQL

Helaas is geautomatiseerde failover tussen master- en replicaservers niet beschikbaar. Als u echter de hoofdinstantie verwijdert, voert Azure een failoverproces uit om de replica automatisch te promoten.

Er is een optie om deze failover-taak handmatig uit te voeren, waarvoor u stop de replica en configureer het nieuwe eindpunt in uw toepassing om naar de nieuwe master te verwijzen. De replica wordt gepromoot en losgekoppeld van de master. Er is geen manier om deze replica opnieuw aan je master te koppelen.

PostgreSQL implementeren op Azure Virtual Machine

Als u naar uw Azure Portal -> Een resource maken -> Compute -> Virtuele machine gaat, opent u de sectie Een virtuele machine maken waar u verschillende configuraties kunt opgeven voor uw nieuwe Azure Virtual Machine .

Op het tabblad Basis moet u het Azure-abonnement, Regio, Beschikbaarheid opgeven opties, besturingssysteem, servergrootte, toegangsgegevens (gebruikersnaam/wachtwoord of SSH-sleutel) en inkomende firewallregels.

Op het schijftabblad moet u de opslag (type en grootte) opgeven voor uw nieuwe virtuele machine. Het schijftype kan Standard HDD, Standard SSD of Premium SSD zijn. De laatste wordt aanbevolen voor hoge IOPS-workloads.

In het netwerktabblad kunt u het virtuele netwerk, het openbare IP-adres specificeren , en de toegestane inkomende poorten. U kunt deze nieuwe virtuele machine ook toevoegen achter een bestaande Azure load balancing-oplossing.

Op het volgende tabblad hebben we enkele beheeropties, zoals monitoring en back-ups .

En tot slot kunnen we op het tabblad Geavanceerd extensies, cloud- init, of host groepen.

Na het bekijken van de vorige optie en het bevestigen ervan, wordt uw nieuwe virtuele machine gemaakt en toegankelijk via de Azure Portal. In het gedeelte Bron -> Overzicht kunt u de toegangsinformatie van de virtuele machine zien (openbaar/privé IP-adres).

U kunt er nu toegang toe krijgen via SSH en de PostgreSQL-database installeren met ClusterControl .

$ ssh 23.102.177.27

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

[[email protected] ~]$

U kunt deze link bekijken om de stappen te zien om de PostgreSQL-implementatie uit te voeren met ClusterControl.

PostgreSQL-failover op Azure Virtual Machine

Noodherstel is een functie voor virtuele machines onder de sectie Bewerkingen waarmee u uw omgeving in een andere Azure-regio kunt repliceren. Om het in te schakelen, moet u de doelregio kiezen. Op het tabblad Geavanceerd kunt u de specifieke doeldetails wijzigen; zoals virtueel netwerk, opslaginstellingen en replicatie-instellingen.

Als het noodherstel is ingeschakeld, kunt u de replicatiestatus, test het failoverproces of handmatig een failover ernaartoe.

Als je dit inschakelt, heb je een failover-optie in het geval van een storing. Dit is echter een failover voor de hele omgeving en niet alleen voor de databaseservice.

Een verbeterd PostgreSQL-failoverproces voor Microsoft Azure

Omdat je SSH-toegang hebt, kun je dit failover-proces verbeteren door de virtuele machine te importeren (of zelfs de PostgreSQL-database te implementeren) met ClusterControl.

Als u de databaseknooppunten beheert met ClusterControl (en als de optie "Auto Recovery" is ingeschakeld) in het geval van een masterfout, zal ClusterControl de meest geavanceerde slave promoten (als deze niet op de zwarte lijst staat ) om het probleem onder de knie te krijgen en u op de hoogte te stellen. Het faalt ook automatisch om de rest van de slaven te repliceren vanaf de nieuwe master.

Met ClusterControl implementeert u zelfs een gemengde omgeving met enkele knooppunten in de cloud en andere knooppunten op locatie. U kunt ook load balancers aan uw topologie toevoegen om onze omgeving met hoge beschikbaarheid te verbeteren. Meer informatie over dit onderwerp vind je hier.

Conclusie

Azure heeft veel functies en producten om een ​​oplossing op ondernemingsniveau te bieden. Tijdens deze tests ontdekte ik echter dat de tijd voor het maken en de failover te lang was voor de meeste toepassingsbehoeften.

Als u een snelle failover en herstel nodig hebt, moet u de beschikbaarheid van de omgeving verbeteren door een load balancer of een extern systeem zoals ClusterControl te gebruiken om de downtime te verminderen. Voor meer gedetailleerde informatie over het uitvoeren van PostgreSQL op Microsoft Azure kunt u een kijkje nemen op onze diepgaande blog.


  1. GROUP BY in de clausule UPDATE FROM

  2. Oracle PL/SQL:Dynamisch SQL-voorbeeld met Execute Immediate

  3. Dynamische query uitvoeren met go in sql

  4. hoe de begin- en einddatum van alle weken tussen twee datums in SQL-server te krijgen?