Avanceret PostgreSQL: Indeksering, partitionering og replikering · Lektion

Synkron og asynkron replikering

Forstå afvejningen mellem holdbarhed og latenstid ved synkron og asynkron fysisk replikering i PostgreSQL.

Lektion 4 af 413 trin

Synkron og asynkron replikering er en gratis Avanceret PostgreSQL: Indeksering, partitionering og replikering-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Avanceret PostgreSQL: Indeksering, partitionering og replikering, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Avanceret PostgreSQL: Indeksering, partitionering og replikering-kurset indeholder 4 lektioner i alt.

To tilstande for streaming

Fysisk streamingreplikering kan køre i to tilstande: asynkron (standard) og synkron. De adskiller sig ved, hvornår den primære server betragter en commit som fuldført.

Asynkron replikering

I asynkron tilstand committer den primære server, så snart WAL er skyllet lokalt. Den venter ikke på standbyserveren. Det er hurtigt, men et nedbrud kan medføre tab af de seneste commits, der endnu ikke er sendt.

Synkron replikering

I synkron tilstand venter den primære server, indtil mindst én standbyserver bekræfter, at den har modtaget eller anvendt WAL, før committen rapporteres som gennemført. Det garanterer intet datatab for bekræftede commits, men medfører ekstra latenstid.

Konfiguration af synkrone standbyservere

Navngiv dine standbyservere med application_name, og angiv dem i synchronous_standby_names på den primære server.

-- on the primary, in postgresql.conf
synchronous_standby_names = 'standby1, standby2';

Kvorumbaseret synkronisering

Du kan kræve, at vilkårlige N ud af flere standbyservere bekræfter, så holdbarhed og tilgængelighed afbalanceres.

synchronous_standby_names = 'ANY 1 (standby1, standby2)';

Niveauer for synchronous_commit

Indstillingen synchronous_commit styrer, hvor langt en commit skal nå:

  • off / local — kun lokalt
  • remote_write — standbyserveren har modtaget WAL
  • on — standbyserveren har skyllet WAL til disken
  • remote_apply — standbyserveren har anvendt WAL, så det er synligt på replikaen

Styring pr. transaktion

Denne indstilling kan ændres pr. transaktion, så uvigtige skrivninger kan gå hurtigt, mens kritiske skrivninger venter på bekræftelse.

SET synchronous_commit = 'remote_apply';
INSERT INTO payments (amount) VALUES (100);

Tilgængelighedsrisiko ved synkronisering

Hvis den eneste synkrone standbyserver går ned, vil commits på den primære server blokere, indtil en standbyserver vender tilbage. Kombinér altid synkron replikering med flere kandidater eller kvorumindstillinger.

Kontrol af replikeringstilstand

Undersøg den aktuelle tilstand fra den primære server ved hjælp af pg_stat_replication.

SELECT application_name, state, sync_state
FROM pg_stat_replication;

Valg af tilstand

Brug asynkron replikering for høj gennemstrømning og geografisk fjerntliggende replikaer. Brug synkron replikering, når tabet af selv én committet transaktion er uacceptabelt, f.eks. i finansielle hovedbøger.

Latenstid i praksis

Latenstiden for en synkron commit svarer omtrent til netværkets tur-retur-tid til standbyserveren plus dens fsync-tid. Det er afgørende at placere synkrone standbyservere på en forbindelse med lav latenstid.

Hurtig kontrol

Hvad er den vigtigste afvejning ved synkron replikering?

Opsummering

Du har sammenlignet asynkron og synkron replikering, konfigureret niveauerne for synchronous_standby_names og synchronous_commit og lært om afvejningen mellem holdbarhed, latenstid og tilgængelighed.

Gratis at komme i gang

Lær Avanceret PostgreSQL: Indeksering, partitionering og replikering med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
11
Lektioner
44

Ofte stillede spørgsmål

Er lektionen “Synkron og asynkron replikering” gratis?

Ja — hele teksten til “Synkron og asynkron replikering” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Avanceret PostgreSQL: Indeksering, partitionering og replikering-kurset, skal du opgradere til CoddyKit PRO. Avanceret PostgreSQL: Indeksering, partitionering og replikering-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Synkron og asynkron replikering”?

Forstå afvejningen mellem holdbarhed og latenstid ved synkron og asynkron fysisk replikering i PostgreSQL. Du øver dig i Avanceret PostgreSQL: Indeksering, partitionering og replikering med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Avanceret PostgreSQL: Indeksering, partitionering og replikering?

Der kræves ingen tidligere erfaring. Avanceret PostgreSQL: Indeksering, partitionering og replikering på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Synkron og asynkron replikering”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Avanceret PostgreSQL: Indeksering, partitionering og replikering-lektion?

Ja. Alle Avanceret PostgreSQL: Indeksering, partitionering og replikering-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Forståelse af replikeringskoncepter
  2. Fysisk replikering (streaming)
  3. Opsætning af en standbyserver
  4. Synkron og asynkron replikering
← Tilbage til Avanceret PostgreSQL: Indeksering, partitionering og replikering