Avansert PostgreSQL: Indeksering, partisjonering og replikering · leksjon

Overvåke replikeringens tilstand

Lær å overvåke statusen og tilstanden til replikeringen effektivt, slik at du proaktivt kan identifisere og løse problemer.

Leksjon 2 av 411 trinn

Overvåke replikeringens tilstand er en gratis leksjon i Avansert PostgreSQL: Indeksering, partisjonering og replikering på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Avansert PostgreSQL: Indeksering, partisjonering og replikering, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Avansert PostgreSQL: Indeksering, partisjonering og replikering inneholder totalt 4 leksjoner.

Hvorfor overvåke replikering?

PostgreSQL-replikering er viktig for høy tilgjengelighet og skalering av lesing. Men hvordan vet du om den fungerer som den skal?

Det er avgjørende å overvåke replikeringens helse for å sikre at standby-serverne er oppdaterte og klare til å overta hvis primærserveren svikter. Uten overvåking oppdager du kanskje problemene først når det er for sent!

Viktige replikasjonsmålinger

Når du overvåker replikering, bør du følge med på noen viktige målinger:

  • Replikasjonsstatus: Er standby-serveren tilkoblet og mottar den data aktivt?
  • Replikasjonsforsinkelse: Hvor langt etter primærserveren ligger standby-serveren?
  • WAL-aktivitet: Overføres og brukes Write-Ahead Log-filer (WAL) riktig?

Visningen `pg_stat_replication`

PostgreSQL tilbyr en kraftig systemvisning kalt pg_stat_replication. Denne visningen gir detaljert informasjon om hver aktive standby-server som er koblet til primærserveren.

Dette er den viktigste kilden din til replikasjonsstatus og fremdrift i sanntid.

`pg_stat_replication` i sanntid

La oss se hvilken informasjon pg_stat_replication gir. Kjør denne spørringen på primærserveren:

SELECT
  client_addr,
  state,
  sync_state,
  sync_priority
FROM pg_stat_replication;

Forstå `state` og `sync_state`

Kolonnene state og sync_state er avgjørende:

  • state: Viser standby-serverens nåværende aktivitet (for eksempel streaming, catching up og backup). streaming betyr at den aktivt mottar WAL-poster.
  • sync_state: Angir om standby-serveren er async (asynkron) eller sync (synkron). Synkrone standby-servere garanterer at dataene er varige på tvers av flere servere.

Forstå replikasjonsforsinkelse

Replikasjonsforsinkelse er tidsforskjellen mellom når en transaksjon bekreftes på primærserveren, og når den brukes på standby-serveren.

Stor forsinkelse betyr at standby-serveren ikke er oppdatert. I en failover-situasjon kan dette føre til datatap. Vi ønsker at forsinkelsen skal være så lav som mulig, helst null.

Beregne replikasjonsforsinkelse

Du kan beregne replikasjonsforsinkelsen i byte ved hjelp av pg_wal_lsn_diff(). Denne funksjonen måler forskjellen mellom to Log Sequence Numbers (LSN-er).

En vanlig måte å se forsinkelsen på er å sammenligne primærserverens gjeldende LSN med standby-serverens replay_lsn fra pg_stat_replication.

SELECT
  client_addr,
  pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) AS lag_bytes
FROM pg_stat_replication;

Gjenopprettingsstatus for standby-serveren

Hva med å kontrollere selve standby-serveren? Du kan bruke funksjonen pg_is_in_recovery() for å bekrefte om en server for øyeblikket fungerer som standby-server og bruker WAL-poster.

Den returnerer true hvis serveren er i gjenopprettingsmodus (det vil si en standby-server), og false hvis den er en primærserver.

SELECT pg_is_in_recovery();

WAL-fremdrift og LSN-er

Utover enkel forsinkelse kan du følge fremdriften for bruk av WAL mer detaljert. Funksjonen pg_wal_lsn_diff() er også nyttig for å sammenligne to vilkårlige LSN-er.

Du kan for eksempel sammenligne write_lsn, flush_lsn og replay_lsn fra pg_stat_replication for å finne ut hvor forsinkelser oppstår (ved skriving til disk, tømming eller avspilling).

Hurtigsjekk: Replikasjonsstatus

Du kjører SELECT client_addr, state, sync_state FROM pg_stat_replication; på primærserveren og ser følgende resultat for én standby:

client_addr | state    | sync_state
------------+----------+-----------
192.168.1.5 | streaming | async

Hvilke av følgende påstander om denne standby-en er riktige?

Oppsummering og neste steg

Du har lært hvordan du overvåker helsetilstanden til PostgreSQL-replikering! Vi har gått gjennom:

  • Hvorfor det er avgjørende å overvåke forsinkelse og status.
  • Bruk av visningen pg_stat_replication på primærserveren.
  • Tolkning av state og sync_state.
  • Beregning av replikeringsforsinkelse med pg_wal_lsn_diff().
  • Kontroll av gjenopprettingsstatus for standby med pg_is_in_recovery().

Regelmessig kontroll av disse måleverdiene bidrar til å sikre at oppsettet for høy tilgjengelighet er robust og pålitelig!

Gratis å komme i gang

Lær deg Avansert PostgreSQL: Indeksering, partisjonering og replikering med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
11
Leksjoner
44

Ofte stilte spørsmål

Er leksjonen «Overvåke replikeringens tilstand» gratis?

Ja – hele teksten i «Overvåke replikeringens tilstand» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Avansert PostgreSQL: Indeksering, partisjonering og replikering-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Avansert PostgreSQL: Indeksering, partisjonering og replikering inneholder totalt 4 leksjoner.

Hva lærer jeg i «Overvåke replikeringens tilstand»?

Lær å overvåke statusen og tilstanden til replikeringen effektivt, slik at du proaktivt kan identifisere og løse problemer. Du øver på Avansert PostgreSQL: Indeksering, partisjonering og replikering med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Avansert PostgreSQL: Indeksering, partisjonering og replikering?

Ingen tidligere erfaring er nødvendig. Avansert PostgreSQL: Indeksering, partisjonering og replikering på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Overvåke replikeringens tilstand»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Avansert PostgreSQL: Indeksering, partisjonering og replikering-leksjonen?

Ja. Alle Avansert PostgreSQL: Indeksering, partisjonering og replikering-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Verktøy for automatisk failover (Patroni)
  2. Overvåke replikeringens tilstand
  3. Strategier for katastrofegjenoppretting
  4. Tilkoblingsruting med PgBouncer og HAProxy
← Tilbake til Avansert PostgreSQL: Indeksering, partisjonering og replikering