Overvåke replikeringens tilstand
Lær å overvåke statusen og tilstanden til replikeringen effektivt, slik at du proaktivt kan identifisere og løse problemer.
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 eksempelstreaming,catching upogbackup).streamingbetyr at den aktivt mottar WAL-poster.sync_state: Angir om standby-serveren erasync(asynkron) ellersync(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 | asyncHvilke 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_replicationpå primærserveren. - Tolkning av
stateogsync_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!
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
- Verktøy for automatisk failover (Patroni)
- Overvåke replikeringens tilstand
- Strategier for katastrofegjenoppretting
- Tilkoblingsruting med PgBouncer og HAProxy