Skapa och hantera läsrepliker i Azure Database for PostgreSQL – flexibel server från Azure Portal, CLI eller REST API
Artikel
GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server
I den här artikeln får du lära dig hur du skapar och hanterar läsrepliker i Azure Database for PostgreSQL – flexibel server från Azure Portal, CLI och REST API. Mer information om att läsa repliker finns i översikten.
När du distribuerar läsrepliker för beständiga tunga skrivintensiva primära arbetsbelastningar kan replikeringsfördröjningen fortsätta att växa och kanske aldrig komma ikapp den primära. Detta kan också öka lagringsanvändningen i den primära eftersom WAL-filerna endast tas bort när de tas emot på repliken.
Granska primära inställningar
Innan du konfigurerar en läsreplik för en flexibel Azure Database for PostgreSQL-server kontrollerar du att den primära servern är konfigurerad för att uppfylla de nödvändiga kraven. Specifika inställningar på den primära servern kan påverka möjligheten att skapa repliker.
Automatisk ökning av lagring: Inställningar för automatisk lagring på den primära servern och dess läsrepliker måste följa specifika riktlinjer för att säkerställa konsekvens och förhindra replikeringsstörningar. Mer information om regler och inställningar finns i Automatisk lagringsväxlning .
Premium SSD v2: Den aktuella versionen stöder inte skapandet av läsrepliker för primära servrar med Premium SSD v2-lagring. Om din arbetsbelastning kräver läsrepliker väljer du ett annat lagringsalternativ för den primära servern.
I Azure Portal väljer du den flexibla serverinstansen Azure Database for PostgreSQL som du vill använda för repliken.
I dialogrutan Översikt noterar du PostgreSQL-versionen (till exempel 15.4). Observera också den region som din primära är distribuerad till (till exempel East US).
I sidofältet på servern går du till Inställningar och väljer Beräkning + lagring.
Granska och notera följande inställningar:
Beräkningsnivå, processor, storlek (till exempel Standard_D4ads_v5).
Storage
Lagringsstorlek (ex 128GB)
Autogrowth
Hög tillgänglighet
Aktiverad/inaktiverad
Inställningar för tillgänglighetszon
Inställningar för säkerhetskopiering
Kvarhållningsperiod
Redundansalternativ
Under Inställningar väljer du Nätverk.
Granska nätverksinställningarna.
Kommentar
Kommandona i den här guiden gäller för Azure CLI version 2.56.0 eller senare. Kontrollera att du har den version som krävs eller en senare version som är installerad för att köra dessa kommandon. Du kan kontrollera din aktuella Azure CLI-version genom att köra az --version i kommandoradsgränssnittet. Om du vill uppdatera Azure CLI till den senaste versionen följer du anvisningarna i Azure CLI-dokumentationen.
Om du vill visa konfigurationen och aktuell status för en flexibel Azure PostgreSQL-server använder du az postgres flexible-server show kommandot . Det här kommandot innehåller detaljerad information om den angivna servern.
az postgres flexible-server show \
--resource-group <resource-group> \
--name <server-name>
Ersätt <resource-group> och <server-name> med din specifika resursgrupp och namnet på den server som du vill visa.
Granska och notera följande inställningar:
Beräkningsnivå, processor, storlek (till exempel Standard_D8ads_v5).
Om du vill få information om konfigurationen av en server i Azure Database for PostgreSQL – flexibel server, särskilt för att visa inställningar för nyligen introducerade funktioner som automatisk lagringsbrytning eller privat länk, bör du använda den senaste API-versionen 2023-06-01-preview. Begäran GET formateras på följande sätt:
Ersätt {subscriptionId}, {resourceGroupName}och {serverName} med ditt Azure-prenumerations-ID, resursgruppens namn och namnet på den primära server som du vill granska. Den här begäran ger dig åtkomst till konfigurationsinformationen för din primära server, vilket säkerställer att den är korrekt konfigurerad för att skapa en läsreplik.
Granska och notera följande inställningar:
Beräkningsnivå, processor, storlek (till exempel Standard_D8ads_v5).
Välj en befintlig flexibel Azure Database for PostgreSQL-serverinstans som ska användas som primär server.
På serversidan väljer du Replikering under Inställningar.
Välj Skapa replik.
Ange formuläret Grundläggande med följande information.
Välj Granska + skapa för att bekräfta skapandet av repliken eller Nästa: Nätverk om du vill lägga till, ta bort eller ändra brandväggsregler.
Lämna de återstående standardvärdena och välj sedan knappen Granska + skapa längst ned på sidan eller fortsätt till nästa formulär för att lägga till taggar eller ändra datakrypteringsmetod.
Granska informationen i det slutliga bekräftelsefönstret. När du är klar väljer du Skapa. En ny distribution skapas.
Under distributionen visas den primära i Updating tillståndet.
När läsrepliken har skapats kan den visas från replikeringsfönstret.
Ersätt <replica-name>, <resource-group>, <source-server-name>och <location> med dina specifika värden.
När läsrepliken har skapats kan egenskaperna för alla servrar, som är repliker av en primär replik, hämtas med hjälp az postgres flexible-server replica create av kommandot .
az postgres flexible-server replica list \
--name <source-server-name> \
--resource-group <resource-group>
Ersätt <source-server-name>och <resource-group> med dina specifika värden.
Initiera en HTTP PUT begäran med hjälp av api:et för att skapa servrar:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{replicaserverName}?api-version=2022-12-01
Här måste du ersätta {subscriptionId}, {resourceGroupName}och {replicaserverName} med ditt specifika Azure-prenumerations-ID, namnet på resursgruppen respektive önskat namn för din läsreplik.
När läsrepliken har skapats kan egenskaperna för alla servrar, som är repliker av en primär replik, hämtas genom att initiera en HTTP GET begäran med hjälp av repliklistan efter server-API:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/replicas?api-version=2022-12-01
Här måste du ersätta {subscriptionId}, {resourceGroupName}och {sourceserverName} med ditt specifika Azure-prenumerations-ID, namnet på resursgruppen och namnet som du tilldelade till din primära replik.
Det är bästa praxis för Cloud Adoption Framework (CAF) att använda en namngivningskonvention för resurser som gör att du enkelt kan avgöra vilken instans du ansluter till eller hanterar och var den finns.
Välj en annan plats än din primära men observera att du kan välja samma region.
Dricks
Mer information om vilka regioner du kan skapa en replik i finns i artikeln om att läsa replikbegrepp.
Ange beräkning och lagring till det du spelade in från din primära. Om den visade beräkningen inte matchar väljer du Konfigurera server och väljer lämplig.
Kommentar
Om du väljer en beräkningsstorlek som är mindre än den primära misslyckas distributionen. Tänk också på att beräkningsstorleken kanske inte är tillgänglig i en annan region.
För att undvika problem vid befordran av repliker ändrar du ständigt följande serverparametrar på replikerna först innan du tillämpar dem på den primära: max_connections, max_prepared_transactions, max_locks_per_transaction, max_wal_senders, max_worker_processes.
Skapa virtuella slutpunkter
Kommentar
Alla åtgärder som involverar virtuella slutpunkter – som att lägga till, redigera eller ta bort – körs i kontexten för den primära servern.
Ersätt <resource-group>, <primary-name>, <virtual-endpoint-name>och <replica-name> med dina specifika värden.
Om du vill skapa en virtuell slutpunkt med hjälp av Azures REST API använder du en HTTP PUT begäran. Begäran skulle se ut så här:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/virtualendpoints/{virtualendpointName}?api-version=2023-06-01-preview
Den tillhörande JSON-brödtexten för den här begäran är följande:
På serversidan väljer du Replikering under Inställningar.
Överst på sidan visas både läsaren och skrivarslutpunkterna, tillsammans med namnen på de servrar som de pekar på.
Du kan visa information om den virtuella slutpunkten med hjälp av antingen list kommandot eller show . Eftersom endast en virtuell slutpunkt tillåts per primär-replikpar ger båda kommandona samma resultat.
Här är ett exempel på hur du använder list kommandot:
az postgres flexible-server virtual-endpoint list \
--resource-group <resource-group> \
--server-name <server-name>
Ersätt <server-name> med namnet på den primära servern och <resource-group> med namnet på resursgruppen.
Så här kan du använda show kommandot:
az postgres flexible-server virtual-endpoint show \
--name <virtual-endpoint-name>
--resource-group <resource-group> \
--server-name <server-name>
I det här kommandot ersätter du <virtual-endpoint-name>,<server-name>och <resource-group> med respektive namn. <server-name> är namnet på den primära servern.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/virtualendpoints?api-version=2023-06-01-preview
{sourceserverName} Här bör vara namnet på den primära server som du hanterar de virtuella slutpunkterna från.
Ändra programmet så att det pekar på den virtuella slutpunkten
Ändra alla program som använder din flexibla Azure Database for PostgreSQL-serverinstans för att använda de nya virtuella slutpunkterna (t.ex. corp-pg-001.writer.postgres.database.azure.com och corp-pg-001.reader.postgres.database.azure.com).
Flytta upp repliker
Med alla nödvändiga komponenter på plats är du redo att utföra en flytta upp replik till primär åtgärd.
Följ dessa steg för att höja upp repliken från Azure Portal:
I Azure Portal väljer du den primära azure database for PostgreSQL-instansen för flexibel server.
På servermenyn går du till Inställningar och väljer Replikering.
Under Servrar väljer du ikonen Höj upp för repliken.
I dialogrutan kontrollerar du att åtgärden är Flytta upp till primär server.
För Datasynkronisering ska du se till att Planned – sync data before promoting is selected (Planera – synkronisera data innan du befordrar ) väljs.
Välj Höj upp för att påbörja processen. När den är klar omvänts rollerna: repliken blir den primära och den primära antar replikens roll.
När du befordrar en replik till en primär server i Azure PostgreSQL – flexibel server använder du az postgres flexible-server replica promote kommandot . Den här processen är nödvändig för att höja en replikserver så att den fungerar som primär server och degradering av den aktuella primära till replikrollen. Ange --promote-mode switchover och --promote-option planned i kommandot .
Ersätt <resource-group> och <replica-server-name> med din specifika resursgrupp och replikservernamn. Det här kommandot säkerställer en smidig övergång av repliken till en primär roll på ett planerat sätt.
När du befordrar en replik till en primär server använder du en HTTP PATCH begäran med en specifik JSON brödtext för att ange kampanjalternativen. Den här processen är avgörande när du behöver höja en replikserver för att fungera som primär server.
I det här JSONär kampanjen inställd på att ske i switchover läge med ett planned kampanjalternativ. Det finns två alternativ för upphöjning – planned eller forced – som valts planned för den här övningen.
Kommentar
Repliken som du befordrar måste ha den virtuella slutpunkten för läsaren tilldelad, annars får du ett fel vid befordran.
Testa program
Om du vill utföra vissa åtgärder startar du om dina program och försöker sedan utföra dessa åtgärder. Dina program bör fungera sömlöst utan att ändra den virtuella slutpunkten anslutningssträng eller DNS-poster. Låt dina program vara igång den här gången.
Återställning efter fel till den ursprungliga servern och regionen
Upprepa samma åtgärder för att höja upp den ursprungliga servern till den primära servern.
Välj Replikering under Inställningar i sidofältet på servern
Under Servrar väljer du ikonen Höj upp för repliken.
I dialogrutan kontrollerar du att åtgärden är Flytta upp till primär server.
För Datasynkronisering ska du se till att Planned – sync data before promoting is selected (Planera – synkronisera data innan du befordrar ) väljs.
Välj Höj upp, processen börjar. När den är klar omvänts rollerna: repliken blir den primära och den primära antar replikens roll.
Den här gången ändrar du <replica-server-name> kommandot för az postgres flexible-server replica promote att referera till din gamla primära server, som för närvarande fungerar som en replik, och kör begäran igen.
Ersätt <resource-group> och <replica-server-name> med din specifika resursgrupp och aktuella replikservernamn.
Den här gången ändrar du {replicaserverName} i API-begäran så att den refererar till din gamla primära server, som för närvarande fungerar som en replik, och kör begäran igen.
I det här JSONär kampanjen inställd på att ske i switchover läge med ett planned kampanjalternativ. Det finns två alternativ för upphöjning – planned eller forced – som valts planned för den här övningen.
Testa program
Växla återigen till ett av de program som förbrukar. Vänta tills den primära statusen och replikstatusen ändras till Updating och försök sedan utföra vissa åtgärder. Under replikflytten kan programmet stöta på tillfälliga anslutningsproblem till slutpunkten:
Lägg till sekundär läsreplik
Skapa en sekundär läsreplik i en separat region för att ändra läsarens virtuella slutpunkt och för att skapa en oberoende server från den första repliken.
I Azure Portal väljer du den primära flexibla serverinstansen i Azure Database for PostgreSQL.
På serversidan väljer du Replikering under Inställningar.
Välj Skapa replik.
Ange formuläret Grundläggande med information i en tredje region (till exempel westus och corp-pg-westus-001)
Välj Granska + skapa för att bekräfta skapandet av repliken eller Nästa: Nätverk om du vill lägga till, ta bort eller ändra brandväggsregler.
Kontrollera brandväggsinställningarna. Observera hur de primära inställningarna kopieras automatiskt.
Lämna de återstående standardvärdena och välj sedan knappen Granska + skapa längst ned på sidan eller fortsätt till följande formulär för att konfigurera säkerhet eller lägga till taggar.
Granska informationen i det slutliga bekräftelsefönstret. När du är klar väljer du Skapa. En ny distribution skapas.
Under distributionen visas den primära i Updating tillståndet.
Välj ett distinkt namn för för <replica-name> att skilja det från den primära servern och andra repliker.
Ersätt <resource-group>, <source-server-name> och <location> med dina specifika värden.
Du kan skapa en sekundär läsreplik med hjälp av api:et för att skapa servrar:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{replicaserverName}?api-version=2022-12-01
Välj ett distinkt namn för för {replicaserverName} att skilja det från den primära servern och andra repliker.
I Azure Portal väljer du den primära flexibla serverinstansen i Azure Database for PostgreSQL.
På serversidan väljer du Replikering under Inställningar.
Välj ellipserna och välj sedan Redigera.
I dialogrutan väljer du den nya sekundära repliken.
Välj Spara. Läsarens slutpunkt är nu riktad mot den sekundära repliken och uppflyttingsåtgärden är nu kopplad till den här repliken.
Nu kan du ändra läsarens slutpunkt så att den pekar på den nyligen skapade sekundära repliken med hjälp av ett az postgres flexible-server virtual-endpoint update kommando. Kom ihåg att ersätta <replica-name> med namnet på den nyligen skapade skrivskyddade repliken.
Ersätt <resource-group>, <server-name>, <virtual-endpoint-name>och <replica-name> med dina specifika värden.
Nu kan du ändra läsarens slutpunkt så att den pekar på den nyligen skapade sekundära repliken med hjälp av en PATCH begäran. Kom ihåg att ersätta {replicaserverName} med namnet på den nyligen skapade skrivskyddade repliken.
I Azure Portal väljer du den primära servern Azure Database for PostgreSQL – flexibel server.
På serverpanelen går du till servermenyn och väljer Replikering under Inställningar.
Under Servrar väljer du ikonen Höj upp för repliken som du vill höja upp till en oberoende server.
I dialogrutan kontrollerar du att åtgärden är Flytta upp till oberoende server och ta bort från replikeringen. Detta påverkar inte den primära servern.
För Datasynkronisering ska du se till att Planned – sync data before promoting is selected (Planera – synkronisera data innan du befordrar ) väljs.
Välj Höj upp, processen börjar. När den är klar är servern inte längre en replik av den primära.
När du höjer upp en replik i Azure PostgreSQL – flexibel server är standardbeteendet att höja upp den till en oberoende server. Befordran uppnås med kommandot az postgres flexible-server replica promote utan att ange alternativet --promote-mode , eftersom läget antas som standalone standard.
I det här kommandot ersätter <resource-group> du och <replica-server-name> med ditt specifika resursgruppsnamn och namnet på den första replikservern som du skapade, som inte längre är en del av den virtuella slutpunkten.
Du kan höja upp en replik till en fristående server med hjälp av en PATCH begäran. Skicka en PATCH begäran till den angivna REST API-URL:en för Azure Management med den första JSON brödtexten, där PromoteMode anges till standalone och PromoteOption till planned. Det andra JSON brödtextformatet, inställningen ReplicationRole till None, är inaktuellt men nämns fortfarande här för bakåtkompatibilitet.
På serversidan väljer du Replikering under Inställningar.
Leta upp avsnittet överst på sidan Virtual endpoints . Gå till de tre punkterna (menyalternativen) bredvid slutpunktsnamnet, expandera det och välj Delete.
En dialogruta för borttagningsbekräftelse visas. Den varnar dig: "Den här åtgärden tar bort den virtuella slutpunkten virtualendpointName. Klienter som är anslutna med dessa domäner kan förlora åtkomst." Bekräfta konsekvenserna och bekräfta genom att klicka på Ta bort.
Om du vill ta bort en virtuell slutpunkt från en flexibel Azure PostgreSQL-server kan du använda az postgres flexible-server virtual-endpoint delete kommandot . Den här åtgärden tar bort den angivna virtuella slutpunkten permanent.
I det här kommandot ersätter <resource-group>du , <server-name>och <virtual-endpoint-name> med din specifika resursgrupp, servernamn och namnet på den virtuella slutpunkt som du vill ta bort.
Om du vill ta bort en virtuell slutpunkt med hjälp av Azures REST API skickar du en HTTP DELETE begäran. Begärande-URL:en skulle struktureras på följande sätt:
Du kan ta bort en läsreplik som liknar hur du tar bort en fristående Azure Database for PostgreSQL flexibel serverinstans.
I Azure Portal öppnar du sidan Översikt för läsrepliken. Välj Ta bort.
Du kan också ta bort läsrepliken från replikeringsfönstret genom att följa dessa steg:
I Azure Portal väljer du den primära azure database for PostgreSQL-instansen för flexibel server.
På servermenyn går du till Inställningar och väljer Replikering.
Välj den läsreplik som ska tas bort och välj sedan ellipserna. Välj Ta bort.
Bekräfta borttagningsåtgärden .
Om du vill ta bort en primär server eller replikserver använder du az postgres flexible-server delete kommandot . Om servern har läsrepliker bör du ta bort skrivskyddade repliker först innan du tar bort den primära servern.
az postgres flexible-server delete \
--resource-group <resource-group> \
--name <server-name>
Ersätt <resource-group> och <server-name> med namnet på resursgruppens namn och det replikservernamn som du vill ta bort.
Om du vill ta bort en primär server eller replikserver använder du borttagnings-API:et för servrar. Om servern har läsrepliker bör skrivskyddade repliker tas bort först innan den primära servern tas bort.
Du kan bara ta bort den primära servern när du har tagit bort alla skrivskyddade repliker. Om du vill ta bort repliker följer du anvisningarna i avsnittet Ta bort en replik och fortsätter sedan med de angivna stegen.
Följ dessa steg om du vill ta bort en server från Azure Portal:
I Azure Portal väljer du den primära azure database for PostgreSQL-instansen för flexibel server.
Öppna sidan Översikt för servern och välj Ta bort.
Ange namnet på den primära server som ska tas bort. Välj Ta bort för att bekräfta borttagningen av den primära servern.
Om du vill ta bort en primär server eller replikserver använder du az postgres flexible-server delete kommandot . Om servern har läsrepliker bör skrivskyddade repliker tas bort först innan den primära servern tas bort.
az postgres flexible-server delete \
--resource-group <resource-group> \
--name <server-name>
Ersätt <resource-group> och <server-name> med namnet på resursgruppens namn och det primära servernamn som du vill ta bort.
Om du vill ta bort en primär server eller replikserver använder du borttagnings-API:et för servrar. Om servern har läsrepliker bör skrivskyddade repliker tas bort först innan den primära servern tas bort.
Måttet Maximal fysisk replikeringsfördröjning visar bytefördröjningen mellan den primära servern och den replik som släpar efter mest.
I Azure Portal väljer du den primära servern.
Välj Mått. I fönstret Mått väljer du Maximal fysisk replikeringsfördröjning.
För Aggregation väljer du Max.
Mått för att läsa replikeringsfördröjning
Måttet Read Replica Lag visar tiden sedan den senaste omspelade transaktionen på en replik. Om inga transaktioner sker på din primära, visar måttet den här tidsfördröjningen. Om till exempel inga transaktioner inträffar på den primära servern och den senaste transaktionen spelades upp för 5 sekunder sedan, visar Fördröjningen för läsreplik en fördröjning på 5 sekunder.
I Azure Portal väljer du läsreplik.
Välj Mått. I fönstret Mått väljer du Läs replikfördröjning.