sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL Multi-Cloud Cluster Distribution

En miljö med flera moln är ett bra alternativ för en Disaster Recovery Plan (DRP), men det kan vara en tidskrävande uppgift eftersom du behöver konfigurera anslutningen mellan de olika molnleverantörerna och du kommer måste sedan distribuera och hantera ditt databaskluster på två olika platser.

I den här bloggen kommer vi att visa hur man utför en multimolndistribution för PostgreSQL i två av de mest populära molnleverantörerna för tillfället, AWS och Google Cloud. För den här uppgiften kommer vi att använda några av funktionerna som ClusterControl kan erbjuda dig, som skalning och kluster-till-klusterreplikering.

Vi antar att du har en ClusterControl-installation igång och redan har skapat två olika molnleverantörskonton.

Förbereda din molnmiljö

Först måste du skapa din miljö i din huvudsakliga molnleverantör. I det här fallet kommer vi att använda AWS med 2 PostgreSQL-noder:

Se till att du har tillåten SSH- och PostgreSQL-trafik från din ClusterControl-server av redigera din säkerhetsgrupp:

Gå sedan till den sekundära molnleverantören och skapa minst en virtuell maskin det kommer att vara slavnoden. Vi kommer att använda Google Cloud Platform med 1 PostgreSQL-nod.

Och igen, se till att du tillåter SSH- och PostgreSQL-trafik från din ClusterControl server:

I det här fallet tillåter vi trafiken utan någon begränsning av källan , men det är bara ett exempel och det rekommenderas inte i verkligheten.

Distribuera ett PostgreSQL-kluster i molnet

Vi kommer att använda ClusterControl för den här uppgiften, så vi antar att du har den installerad.

Gå till din ClusterControl-server och välj alternativet "Deploy". Om du redan har en PostgreSQL-instans igång, måste du välja "Importera befintlig server/databas" istället.

När du väljer PostgreSQL måste du ange Användare, Nyckel eller Lösenord och port för att ansluta med SSH till dina PostgreSQL-noder. Du behöver också namnet på ditt nya kluster och om du vill att ClusterControl ska installera motsvarande programvara och konfigurationer åt dig.

Kontrollera användarkraven för ClusterControl för mer information om detta steg.

När du har ställt in SSH-åtkomstinformationen måste du definiera databasanvändaren, version och datadir (valfritt). Du kan också ange vilket förråd som ska användas. I nästa steg måste du lägga till dina servrar i klustret du ska skapa.

När du lägger till dina servrar kan du ange IP eller värdnamn. I det här steget kan du också lägga till noden placerad i den sekundära molnleverantören, eftersom ClusterControl inte har några begränsningar för nätverket som ska användas, men för att göra det mer tydligt kommer vi att lägga till det i nästa avsnitt. Det enda kravet här är att ha SSH-åtkomst till noden.

I det sista steget kan du välja om din replikering ska vara Synkron eller Asynkron.

Om du lägger till din fjärrnod här är det viktigt att använda asynkron replikering, annars kan ditt kluster påverkas av latensen eller nätverksproblem.

Du kan övervaka skapandets status i ClusterControl-aktivitetsmonitorn.

När uppgiften är klar kan du se ditt nya PostgreSQL-kluster i huvudskärmen för ClusterControl.

Lägga till en fjärrslavnod i molnet

När du har skapat ditt kluster kan du utföra flera uppgifter på det, som att distribuera/importera en lastbalanserare eller en replikeringsslavnod.

Gå till klusteråtgärder och välj "Lägg till replikeringsslav":

Låt oss använda alternativet "Lägg till ny replikeringsslav" eftersom vi antar att fjärrnoden är en ny installation, om inte kan du använda alternativet "Importera befintlig replikeringsslav" istället.

Här behöver du bara välja din huvudserver, ange IP-adressen för din nya slavserver och databasporten. Sedan kan du välja om du vill att ClusterControl ska installera programvaran och om replikeringsslaven ska vara Synchronous eller Asynchronous. Återigen, om du lägger till en nod i ett annat datacenter bör du använda asynkron replikering för att undvika problem relaterade till nätverkets prestanda.

På detta sätt kan du lägga till så många repliker du vill och sprida lästrafik mellan dem med hjälp av en lastbalanserare, som du även kan implementera med ClusterControl.

Du kan övervaka skapandet av replikeringsslaven i ClusterControl-aktivitetsmonitorn.

Och kontrollera din slutliga topologi i Topology View-sektionen.

Kluster-till-klusterreplikering i molnet

Istället för att använda alternativet "Lägg till replikeringsslav" för att ha en multimolnmiljö, kan du använda ClusterControl Cluster-to-Cluster-replikeringsfunktionen för att lägga till ett fjärrkluster. För närvarande har den här funktionen en begränsning för PostgreSQL som gör att du bara kan ha en fjärrnod, så det är ganska likt det tidigare sättet, men vi arbetar för att ta bort den begränsningen snart i en framtida utgåva.

För att skapa ett nytt slavkluster, gå till ClusterControl -> Välj kluster -> Cluster Actions -> Create slavcluster.

Slavklustret kommer att skapas genom att strömma data från det aktuella huvudklustret.

I det här avsnittet måste du välja huvudnoden för det aktuella klustret från vilken data kommer att replikeras.

När du går till nästa steg måste du ange Användare, Nyckel eller Lösenord och port för att ansluta med SSH till dina servrar. Du behöver också ett namn för ditt slavkluster och om du vill att ClusterControl ska installera motsvarande programvara och konfigurationer åt dig.

När du har ställt in SSH-åtkomstinformationen måste du definiera databasversionen, datadir, port och administratörsuppgifter. Eftersom det kommer att använda strömmande replikering, se till att du använder samma databasversion och referenser som används i Master Cluster. Du kan också ange vilket arkiv som ska användas.

I det här steget måste du lägga till servern för det nya slavklustret . För den här uppgiften kan du ange både IP-adressen eller värdnamnet för databasnoden.

Du kan övervaka skapandet av slavklustret i ClusterControl-aktivitetsmonitorn. När uppgiften är klar kan du se klustret på huvudskärmen för ClusterControl.

Slutsats

Dessa ClusterControl-funktioner låter dig snabbt ställa in replikering mellan olika molnleverantörer för en PostgreSQL-databas (och olika teknologier), och hantera installationen på ett enkelt och vänligt sätt. Om kommunikationen mellan molnleverantörerna måste du av säkerhetsskäl begränsa trafiken endast från kända källor, alltså endast från molnleverantör 1 till molnleverantör 2 och vice versa.


  1. Hur man lägger till en främmande nyckelbegränsning till en befintlig tabell i SQL Server (T-SQL)

  2. Lägg till tidsstämpelkolumn med standard NOW() endast för nya rader

  3. psql ogiltigt kommando \N vid återställning av sql

  4. rad num visar inga rader när du använder mellan nyckelord