Vad är synkron och asynkron replikering

Under de senaste åren har strömmande replikering varit en av de viktigaste funktionerna som introducerades i PostgreSQL. Tanken är att använda PostgreSQL-transaktionsloggen (WAL) för att synkronisera ett godtyckligt antal tjänster och för att replikera data i ett kluster. I PostgreSQL kan replikering göras på två sätt:

  • synkron och
  • asynkron replikering

Du kan bestämma vilken metod som är mer fördelaktig för dig enligt dina behov.

Asynkron replikering i PostgreSQL

I händelse av serverfel och katastrof är det en bra idé att ha en standby / kopia av din primära server inom räckhåll. Lyckligtvis erbjuder PostgreSQL sätt att uppnå exakt det. Administratörer kan enkelt skapa skrivskyddade repliker av en primär server och använda dessa repliker för olika ändamål, till exempel:

  • Kontinuerliga säkerhetskopior
  • Automatiska fel
  • Skalar ut skrivskyddade arbetsbelastningar
  • Uppnå geo-uppsägningar

Asynkron är det vanliga sättet att replikera data i PostgreSQL-världen och erbjuder ett pålitligt och enkelt sätt att distribuera data och göra dina inställningar mer felsäkra.

De största fördelarna med asynkron replikering är låg overhead, enkelhet och robusthet. Som ett resultat är asynkron replikering den perfekta lösningen för automatiska failover och företagsklassade uppsägningar.

Hur asynkron replikering fungerar

Om du kör asynkron replikering kan data komma i beredskap efter att en transaktion har begåtts på den primära servern. Det finns vanligtvis en liten replikeringsfördröjning, vilket kan orsaka (vanligtvis) mindre dataförlust vid en krasch.

 

I de flesta fall är detta helt acceptabelt eftersom asynkron replikering lovar lite overhead och inte saktar ner det primära.

Kaskad replikering

I PostgreSQL är replikering inte bara möjligt från en primär till en enda beredskapsläge, det är också möjligt att replikera från en enda primär till flera beredskapslägen eller att använda standbys för att replikera till ännu fler beredskapslägen (kaskadreplikering). Cascading är särskilt användbart om du letar efter en geografiskt distribuerad PostgreSQL-replikeringslösning.

Tänk på följande exempel:

Din huvudsakliga databasserver är baserad i New York, USA. Du vill skapa repliker i Frankfurt, Stuttgart, Berlin och Aachen (Tyskland). Om alla dina repliker är direkt kopplade till den primära servern i New York måste data skickas över Atlanten fyra gånger. Kaskad replikering är ett bra alternativ. Du kan koppla Frankfurt-servern till den primära i USA och skicka data i Tyskland från Frankfurt-servern.

Synkron replikering i PostgreSQL

Om du inte kan ta risken att förlora en enda COMMIT kan synkron replikering vara det du letar efter. I PostgreSQL kan du replikera synkront till så många standbys som du vill för att säkerställa att en COMMIT endast är giltig när den har bekräftats av önskat antal PostgreSQL-servrar.

Synkron replikering garanterar högsta möjliga säkerhet för dina transaktioner eftersom en enda kraschande server inte längre kan orsaka dataförlust.

Hur synkron replikering fungerar

Det säkerställer att inga data kan gå förlorade. Så här fungerar det.

 

A transaction can return only if a sufficient number of standbys have confirmed the write.

Advanced features: Quorum COMMIT

With the introduction of PostgreSQL 10.0, even more sophisticated COMMIT methods are supported. One of the most noteworthy features is the ability to do ”quorum COMMITs”.
FIRST num_sync (standby_name [, …]) ANY num_sync (standby_name [, …])
The idea is to give developers and administrators a more fine-grained way to configure replication.

Setting up PostgreSQL Streaming Replication

If you are looking to set up streaming replication for PostgreSQL 13, this is the tutorial you have been looking for. We will show you how to configure PostgreSQL replication and how to set up your database servers quickly.

Learn more >>

Professionell hjälp

Vill du veta mer om synkron och asynkron replikering?

Kontakta oss idag för att få ditt personliga erbjudande från CYBERTEC. Vi erbjuder leverans i tid, professionell hantering och 20 års erfarenhet av PostgreSQL.

Kontakta oss >>