Fysisk replikering (strømming)
Lær å sette opp og konfigurere fysisk replikering med strømming for å opprette en skrivebeskyttet standby-server.
Fysisk replikering (strømming) 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.
Fysisk replikering: En byte-for-byte-kopi
Fysisk replikering i PostgreSQL oppretter en nøyaktig byte-for-byte-kopi av den primære databaseserveren. Tenk på det som en speiling av hele datakatalogen og alle endringene som skjer.
Denne metoden er svært robust for gjenoppretting etter katastrofer og gir en konsistent skrivebeskyttet kopi av dataene, kalt en standby-server. Hvis primærserveren svikter, kan du promotere standby-serveren slik at den blir den nye primærserveren.
Slik fungerer strømmebasert replikering
Strømmebasert replikering er en form for fysisk replikering der primærserveren kontinuerlig sender Write-Ahead Log (WAL)-postene sine til standby-serveren. Standby-serveren bruker deretter disse WAL-postene i sanntid.
Dette sikrer at standby-serveren alltid er oppdatert med primærserveren, og reduserer datatap ved en eventuell feil. Det kan sammenlignes med en konstant strøm av oppdateringer fra én database til en annen.
Primærkonfigurasjon: `wal_level`
For å aktivere strømmebasert replikering må primærserveren generere tilstrekkelig WAL-informasjon. Parameteren wal_level styrer dette.
Den må settes til replica (eller logical for mer avanserte funksjoner) i postgresql.conf. Standardnivået minimal er ikke tilstrekkelig for replikering.
La oss kontrollere gjeldende wal_level:
SHOW wal_level;Primærkonfigurasjon: `max_wal_senders`
Primærserveren trenger prosesser som kan sende WAL-data til standby-servere. Disse kalles WAL-senderprosesser.
Parameteren max_wal_senders bestemmer maksimalt antall samtidige tilkoblinger fra standby-servere. Sett denne til minst like mange som antallet standby-servere du planlegger å ha, og legg til noen ekstra for eventuelle kaskaderende standby-servere.
Kontroller gjeldende innstilling:
SHOW max_wal_senders;Opprette en replikeringsbruker
Det er anbefalt praksis å opprette en dedikert PostgreSQL-bruker for replikering. Denne brukeren trenger privilegiet REPLICATION, som gjør det mulig å koble til og strømme WAL-data.
Denne separasjonen styrker sikkerheten og gjør det tydelig hvilke tilkoblinger som brukes til replikering.
Slik kan du opprette en slik bruker (erstatt med et sterkt passord):
CREATE USER repl_user WITH REPLICATION ENCRYPTED PASSWORD 'your_secret_password';Tillate tilkoblinger fra standby (`pg_hba.conf`)
Primærserveren må tillate tilkoblinger fra standby-serveren. Dette konfigureres i filen pg_hba.conf, som styrer klientautentisering.
Du må legge til en oppføring for replikeringsbrukeren og angi IP-adressen eller området til standby-serveren(e). Dette forteller PostgreSQL at tilkoblinger fra disse standby-serverne skal tillates.
# Example pg_hba.conf entry:
host replication repl_user 192.168.1.100/32 md5Grunnsikkerhetskopi for standby
Før en standby-server kan begynne å strømme WAL, trenger den en første kopi av primærserverens datakatalog. Dette kalles en grunnsikkerhetskopi.
PostgreSQL har verktøyet pg_basebackup for å opprette dette øyeblikksbildet. Det kopierer alle datafiler fra primærserveren til standby-serveren, slik at de starter fra et konsistent punkt.
Denne kommandoen kjøres vanligvis fra standby-serveren:
# Example pg_basebackup command (run on standby):
pg_basebackup -h primary_ip -p 5432 -U repl_user -D /var/lib/postgresql/16/main -F p -Xs -P -RStandby-konfigurasjon: `standby.signal`
Når grunnsikkerhetskopien er på plass, må standby-serveren vite at den er en standby-server. I PostgreSQL 12 og nyere angis dette ved at det finnes en tom fil med navnet standby.signal i datakatalogen.
Denne filen forteller PostgreSQL at den skal starte i gjenopprettingsmodus og lete etter replikeringskonfigurasjon.
Standby-konfigurasjon: `primary_conninfo`
Standby-serveren må også vite hvordan den skal koble til primærserveren. Dette angis med parameteren primary_conninfo i filen postgresql.conf.
Det er en tilkoblingsstreng som ligner på den du bruker med psql, og som inneholder primærserverens vert, port, replikeringsbruker og passord.
Du kan angi dette med ALTER SYSTEM på standby-serveren:
ALTER SYSTEM SET primary_conninfo = 'host=primary_ip port=5432 user=repl_user password=your_secret_password application_name=my_standby';Kontroll av replikeringskonfigurasjonen
Du har lært om kjerneparametrene for å sette opp strømmebasert replikering. La oss teste kunnskapene dine!
Oppsummering: Fysisk strømmebasert replikering
I denne leksjonen utforsket vi fysisk strømmebasert replikering. Du lærte at den oppretter en byte-for-byte-kopi av primærdatabasen ved å sende WAL-poster kontinuerlig.
- Vi gikk gjennom konfigurasjon av primærserveren, blant annet
wal_levelogmax_wal_senders. - Du lærte også å opprette en dedikert replikeringsbruker og konfigurere
pg_hba.conf. - Til slutt så vi på hvordan standby-serveren klargjøres med en grunnsikkerhetskopi ved hjelp av
pg_basebackup, og hvordan tilkoblingen konfigureres medprimary_conninfo.
Deretter skal vi bruke disse konseptene i praksis ved å sette opp en standby-server!
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 «Fysisk replikering (strømming)» gratis?
Ja – hele teksten i «Fysisk replikering (strømming)» 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 «Fysisk replikering (strømming)»?
Lær å sette opp og konfigurere fysisk replikering med strømming for å opprette en skrivebeskyttet standby-server. 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 «Fysisk replikering (strømming)»?
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
- Forstå replikering
- Fysisk replikering (strømming)
- Sette opp en standby-server
- Synkron kontra asynkron replikering