Övervaka replikeringens hälsa
Lär er att effektivt övervaka status och hälsa i er replikeringskonfiguration för att proaktivt identifiera och lösa problem.
Övervaka replikeringens hälsa är en gratis lektion i Avancerad PostgreSQL: indexering, partitionering och replikering på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Avancerad PostgreSQL: indexering, partitionering och replikering, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Avancerad PostgreSQL: indexering, partitionering och replikering innehåller totalt 4 lektioner.
Varför övervaka replikering?
PostgreSQL-replikering är viktig för hög tillgänglighet och skalning av läsningar. Men hur vet du om den fungerar korrekt?
Det är avgörande att övervaka replikeringens hälsa för att säkerställa att standbyservrarna är uppdaterade och redo att ta över om primärservern slutar fungera. Utan övervakning kanske du upptäcker problemen först när det är för sent!
Viktiga replikeringsmått
Vid övervakning av replikering bör du hålla koll på några viktiga mått:
- Replikeringsstatus: Är standbyservern ansluten och tar den aktivt emot data?
- Replikeringsfördröjning: Hur långt efter ligger standbyservern jämfört med primärservern?
- WAL-aktivitet: Överförs och tillämpas Write-Ahead Log-filer (WAL) korrekt?
Vyn `pg_stat_replication`
PostgreSQL tillhandahåller en kraftfull systemvy som heter pg_stat_replication. Denna vy innehåller detaljerad information om varje aktiv standbyserver som är ansluten till primärservern.
Det är din främsta källa till replikeringsstatus och förlopp i realtid.
`pg_stat_replication` i realtid
Låt oss se vilken information pg_stat_replication tillhandahåller. Kör denna fråga på primärservern:
SELECT
client_addr,
state,
sync_state,
sync_priority
FROM pg_stat_replication;Förstå `state` och `sync_state`
Kolumnerna state och sync_state är viktiga:
state: Visar standbyserverns aktuella aktivitet (t.ex.streaming,catching up,backup).streaminginnebär att den aktivt tar emot WAL-poster.sync_state: Anger om standbyservern ärasync(asynkron) ellersync(synkron). Synkrona standbyservrar garanterar att data är beständiga på flera servrar.
Förstå replikeringsfördröjning
Replikeringsfördröjning är fördröjningen mellan att en transaktion bekräftas på primärservern och att den tillämpas på standbyservern.
En stor fördröjning innebär att standbyservern inte är uppdaterad. Vid en failover kan detta leda till dataförlust. Vi vill att fördröjningen ska vara så liten som möjligt, helst noll.
Beräkna replikeringsfördröjning
Du kan beräkna replikeringsfördröjningen i byte med pg_wal_lsn_diff(). Funktionen mäter skillnaden mellan två logiska sekvensnummer (LSN).
Ett vanligt sätt att se fördröjningen är att jämföra primärserverns aktuella LSN med standbyserverns replay_lsn från pg_stat_replication.
SELECT
client_addr,
pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) AS lag_bytes
FROM pg_stat_replication;Standbyserverns återställningsstatus
Hur kontrollerar man själva standbyservern? Du kan använda funktionen pg_is_in_recovery() för att bekräfta om en server för närvarande fungerar som standbyserver och tillämpar WAL-poster.
Den returnerar true om servern är i återställningsläge (det vill säga en standbyserver) och false om den är en primärserver.
SELECT pg_is_in_recovery();WAL-förlopp och LSN:er
Utöver enkel fördröjning kan du följa förloppet för tillämpningen av WAL mer detaljerat. Funktionen pg_wal_lsn_diff() är också användbar för att jämföra två valfria LSN:er.
Du kan till exempel jämföra write_lsn, flush_lsn och replay_lsn från pg_stat_replication för att fastställa var fördröjningar uppstår (vid skrivning till disk, tömning eller uppspelning).
Snabb kontroll: Replikeringsstatus
Du kör SELECT client_addr, state, sync_state FROM pg_stat_replication; på din primära server och ser följande utdata för en standby:
client_addr | state | sync_state
------------+----------+-----------
192.168.1.5 | streaming | asyncVilka av följande påståenden om denna standby är sanna?
Sammanfattning och nästa steg
Ni har lärt er att övervaka hälsan hos PostgreSQL-replikering! Vi har gått igenom:
- Varför det är viktigt att övervaka fördröjning och status.
- Att använda vyn
pg_stat_replicationpå den primära servern. - Att tolka
stateochsync_state. - Att beräkna replikeringsfördröjning med
pg_wal_lsn_diff(). - Att kontrollera en standbys återställningsstatus med
pg_is_in_recovery().
Genom att regelbundet kontrollera dessa mätvärden kan ni säkerställa att er lösning för hög tillgänglighet är robust och tillförlitlig!
Lär dig Avancerad PostgreSQL: indexering, partitionering och replikering med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 11
- Lektioner
- 44
Vanliga frågor
Är lektionen ”Övervaka replikeringens hälsa” gratis?
Ja – hela texten till ”Övervaka replikeringens hälsa” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Avancerad PostgreSQL: indexering, partitionering och replikering, kan Ni uppgradera till CoddyKit PRO. Kursen i Avancerad PostgreSQL: indexering, partitionering och replikering innehåller totalt 4 lektioner.
Vad lär jag mig i ”Övervaka replikeringens hälsa”?
Lär er att effektivt övervaka status och hälsa i er replikeringskonfiguration för att proaktivt identifiera och lösa problem. Ni övar på Avancerad PostgreSQL: indexering, partitionering och replikering med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Avancerad PostgreSQL: indexering, partitionering och replikering?
Du behöver inga förkunskaper. Utbildningen i Avancerad PostgreSQL: indexering, partitionering och replikering på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Övervaka replikeringens hälsa”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Avancerad PostgreSQL: indexering, partitionering och replikering-lektionen?
Ja. Varje Avancerad PostgreSQL: indexering, partitionering och replikering-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Verktyg för automatisk failover (Patroni)
- Övervaka replikeringens hälsa
- Strategier för katastrofåterställning
- Anslutningsdirigering med PgBouncer och HAProxy