sql >> Database teknologi >  >> RDS >> PostgreSQL

Failover &Failback for PostgreSQL på Microsoft Azure

Det er ret almindeligt at bruge skyen til at gemme dine data eller som en failover-mulighed i tilfælde af masterfejl. Der er flere cloud-udbydere, som giver dig mulighed for at gemme, administrere, hente og manipulere data via en cloud-platform; tilgængelig over internettet. Hver cloud-udbyder har sine egne produkttilbud og unikke funktioner, hver med forskellige omkostningsmodeller.

Microsoft Azure er en af ​​disse kunne udbydere. I denne blog tager vi et kig på, hvilke funktioner Microsoft Azure tilbyder til primær lagring, som et websted for gendannelse af katastrofer, og ser specifikt på, hvordan det håndterer et blandet PostgreSQL-databasemiljø.

Deployering af en PostgreSQL-databaseinstans på Microsoft Azure

Før du udfører denne opgave, skal du beslutte, hvordan du vil bruge denne instans, og hvilket Azure-produkt der er bedst for dig. Der er to grundlæggende måder at implementere en PostgreSQL-instans på Microsoft Azure.

  1. Azure Database for PostgreSQL :Er en administreret tjeneste, som du kan bruge til at køre, administrere og skalere meget tilgængelige PostgreSQL-databaser i skyen. Den er tilgængelig i to implementeringsmuligheder:Single Server og Hyperscale.
  2. Virtuel maskine :Giver en on-demand, højskala, sikker, virtualiseret infrastruktur. Den understøtter Ubuntu Server, RedHat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian og Windows Server, og den giver dig mulighed for at udvikle, teste, køre applikationer og udvide dit datacenter på få sekunder.

Til denne blog vil vi tage et kig på både, hvordan vi kan oprette en Azure-database til PostgreSQL og bruge en Virtual Machine Azure fra Microsoft Azure Portal.

Deployering af Azure Database til PostgreSQL

Hvis du går til din Azure Portal -> Opret en ressource -> Databaser -> Azure Database til PostgreSQL, vil du kunne vælge mellem Single Server eller Hyperscale. Til denne blog bruger vi en enkelt server, da Hyperscale-indstillingen er på forhåndsvisning, og den tilbyder endnu ikke en SLA.

Her skal du tilføje nogle oplysninger om din nye PostgreSQL-instans; såsom abonnement, servernavn, brugeroplysninger og placering. Du kan også vælge, hvilken PostgreSQL-version du vil bruge (9.5, 9.6, 10 eller 11 versioner er tilgængelige i øjeblikket) og den virtuelle hardware til at køre den (Compute + Storage).

Når du angiver hardwaren, vil du se den anslåede pris i virkeligheden -tid. Dette er virkelig nyttigt for at undgå en stor overraskelse næste måned. Efter dette trin skal du blot bekræfte ressourcekonfigurationen og vente et par minutter, indtil Azure afslutter oprettelsesjobbet.

Når du har oprettet den nye ressource, kan du gå til Alle ressourcer for at se de tilgængelige ressourcemuligheder.

I de oprettede ressourceindstillinger kan du gå til Replikering for at aktivere det og replikere fra masterserveren til op til fem replikaer. Du bør også tjekke afsnittet Forbindelsessikkerhed for at aktivere eller deaktivere ekstern adgang. For at kende adgangsoplysningerne skal du besøge oversigtsressourceafsnittet.

$ 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 på Azure Database til PostgreSQL

Desværre er automatiseret failover mellem master- og replikaservere ikke tilgængelig. Hvis du sletter masterforekomsten, vil Azure dog udføre en failover-proces for at fremme replikaen på en automatisk måde.

Der er en mulighed for at udføre denne failover-opgave manuelt, hvilket kræver, at du stop replikaen og konfigurer det nye slutpunkt i din applikation til at pege på den nye master. Replikaen vil blive promoveret og frakoblet masteren. Der er ikke en måde at linke denne replika til din master igen.

Deployering af PostgreSQL på Azure Virtual Machine

Hvis du går til din Azure Portal -> Opret en ressource -> Beregn -> Virtuel maskine, åbner du afsnittet Opret en virtuel maskine, hvor du kan angive forskellige konfigurationer for din nye Azure Virtual Machine .

I grundfanen skal du angive Azure-abonnementet, Region, Tilgængelighed muligheder, operativsystem, serverstørrelse, adgangsoplysninger (brugernavn/adgangskode eller SSH-nøgle) og regler for indgående firewall.

I diskfanen skal du angive lageret (type og størrelse) til din nye virtuelle maskine. Disktypen kan være Standard HDD, Standard SSD eller Premium SSD. Den sidste anbefales til høje IOPS-arbejdsbelastninger.

I netværksfanen kan du angive det virtuelle netværk, den offentlige IP-adresse , og de tilladte indgående porte. Du kan også tilføje denne nye virtuelle maskine bag en spændende Azure load balancing-løsning.

I den næste fane har vi nogle administrationsmuligheder, såsom overvågning og sikkerhedskopier .

Og til sidst, i den avancerede fane, kan vi tilføje udvidelser, cloud- init eller værtsgrupper.

Når du har gennemgået den tidligere mulighed og bekræftet den, har du oprettet din nye virtuelle maskine og tilgængelig fra Azure Portal. I sektionen Ressource -> Oversigt kan du se oplysninger om adgang til den virtuelle maskine (offentlig/privat IP-adresse).

Nu kan du få adgang til den via SSH og installere PostgreSQL-databasen ved hjælp af ClusterControl .

$ ssh 23.102.177.27

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

[[email protected] ~]$

Du kan tjekke dette link for at se trinene til at udføre PostgreSQL-implementeringen med ClusterControl.

PostgreSQL-failover på Azure Virtual Machine

Katastrofegendannelse er en virtuel maskine-funktion under Operations-sektionen, der giver dig mulighed for at replikere dit miljø i en anden Azure-region. For at aktivere det skal du vælge målregionen. I den avancerede fane kan du ændre de specifikke måldetaljer; såsom virtuelt netværk, lagerindstillinger og replikeringsindstillinger.

Når katastrofegendannelse er aktiveret, vil du være i stand til at kontrollere replikeringsstatus, test failover-processen eller manuelt failover til den.

At aktivere dette giver dig mulighed for at have en failover-indstilling i tilfælde af fejl. Dette vil dog være en failover for hele miljøet og ikke kun databasetjenesten.

En forbedret PostgreSQL-failover-proces til Microsoft Azure

Da du har SSH-adgang, kan du forbedre denne failover-proces ved at importere den virtuelle maskine (eller endda implementere PostgreSQL-databasen) med ClusterControl.

Hvis du administrerer databasenoderne med ClusterControl (og hvis "Auto Recovery"-indstillingen er TIL) i tilfælde af masterfejl, vil ClusterControl promovere den mest avancerede slave (hvis den ikke er sortlistet) ) for at mestre samt give dig besked om problemet. Det mislykkes også automatisk over resten af ​​slaverne at replikere fra den nye master.

Med ClusterControl implementerer du endda også et blandet miljø med nogle noder i skyen og andre noder on-prem. Du kan også tilføje load balancere til din topologi for at forbedre vores høje tilgængelighedsmiljø. Du kan finde mere information om dette emne her.

Konklusion

Azure har en masse funktioner og produkter til at tilbyde en løsning på virksomhedsniveau. Under disse tests fandt jeg imidlertid ud af, at tiden til oprettelse og failover var for lang til de fleste applikationsbehov.

Hvis du har brug for en hurtig failover og gendannelse, bør du forbedre tilgængeligheden af ​​miljøet ved at bruge en belastningsbalancer eller et eksternt system som ClusterControl for at reducere nedetiden. For mere detaljeret information om at køre PostgreSQL på Microsoft Azure kan du tage et kig på vores dybe dyk-blog.


  1. EXTRACT (datetime) Funktion i Oracle

  2. Sådan oprettes forbindelse til flere SQL-servere med ét klik (registrerede servere-gruppe) - SQL Server / TSQL-vejledning del 5

  3. Kører serveren på host localhost (::1) og accepterer TCP/IP-forbindelser på port 5432?

  4. SQL Server:SUM() af flere rækker inklusive where-sætninger