Avancerad PostgreSQL: indexering, partitionering och replikering · Lektion

Grunderna i logisk replikering

Förstå skillnaderna och fördelarna med logisk replikering jämfört med fysisk replikering.

Lektion 1 av 411 steg

Grunderna i logisk replikering är en gratis lektion i Avancerad PostgreSQL: indexering, partitionering och replikering på CoddyKit. Detta är lektion 1 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.

Vad är logisk replikering?

Välkommen till logisk replikering! Denna kraftfulla PostgreSQL-funktion gör att du kan replikera data utifrån faktiska dataändringar, inte bara fysiska block.

Till skillnad från fysisk replikering, som kopierar hela databasfiler eller block, fokuserar logisk replikering på själva datan och ger dig mycket större flexibilitet.

Fysisk kontra logisk replikering: den grundläggande skillnaden

Den viktigaste skillnaden ligger i vad som replikeras:

  • Fysisk replikering: Kopierar rådatablock och interna datastrukturer i databasen. Det är som att ta en fullständig ögonblicksbild av databasen på byte-nivå.
  • Logisk replikering: Replikerar enskilda dataändringar (INSERT, UPDATE, DELETE) som logiska operationer. Den förstår att ”en rad infogades” i stället för att ”det här blocket ändrades”.

Tänk på det som att kopiera en hel bok (fysiskt) jämfört med att bara kopiera de nya meningarna som lagts till i specifika kapitel (logiskt).

Så fungerar logisk replikering

Logisk replikering använder PostgreSQL:s Write-Ahead Log (WAL).

  • När data ändras skrivs poster till WAL.
  • En särskild process som kallas logisk avkodning läser dessa WAL-poster.
  • Den översätter dem till en ström av logiska ändringar, till exempel SQL-satser (t.ex. INSERT INTO users VALUES (...)).
  • Dessa logiska ändringar skickas sedan till andra databaser.

Viktig komponent: Utgivaren

Vid logisk replikering finns det två huvudroller:

  • Utgivaren är källdatabasen som genererar och skickar dataändringarna.
  • Den definierar publikationer, som är specifika uppsättningar av tabeller och/eller typer av operationer (INSERT, UPDATE, DELETE) som den vill göra tillgängliga för replikering.

Föreställ er utgivaren som en nyhetsbyrå som sänder specifika nyhetskanaler.

Viktig komponent: Prenumeranten

Den andra huvudrollen är prenumeranten:

  • Prenumeranten är måldatabasen som tar emot och tillämpar dataändringarna.
  • Den skapar prenumerationer på specifika publikationer som erbjuds av en utgivare.
  • Prenumerantens tabeller måste ha ett kompatibelt schema (samma tabell- och kolumnnamn/-typer) som utgivarens tabeller som replikeras.

Prenumeranten fungerar som en TV-mottagare som tar emot de specifika nyhetskanalerna.

Dataflödets väg

Vi följer en dataändring genom logisk replikering:

  1. En transaktion verkställs på utgivaren.
  2. Ändringarna registreras i WAL.
  3. Logisk avkodning extraherar dessa ändringar till en ström.
  4. Strömmen skickas över nätverket till prenumeranten.
  5. Prenumeranten tillämpar ändringarna på sina lokala tabeller, vilket i praktiken replikerar data.

Fördelar: flexibilitet och selektivitet

Logisk replikering ger betydande fördelar:

  • Selektiv replikering: Ni kan välja att endast replikera specifika tabeller, inte hela databasen.
  • Kompatibilitet mellan versioner: Det går ofta att replikera mellan olika större PostgreSQL-versioner (t.ex. 13 till 15).
  • Heterogena mål: Även om den främst används för PostgreSQL kan den fungera som källa för andra databaser med hjälp av externa verktyg.
  • Minskad nätverkstrafik: Endast ändrade data skickas, inte hela block.

Praktiska användningsområden

Logisk replikering är mycket mångsidig:

  • Uppgraderingar utan driftstopp: Replikera till en nyare PostgreSQL-version och växla sedan över.
  • Datadistribution: Skicka specifika datamängder till analysdatabaser eller mikrotjänster.
  • Konsolidering av data: Kombinera data från flera källor i en central rapportdatabas.
  • Selektiva läsreplikor: Skapa skrivskyddade kopior av endast de tabeller som efterfrågas oftast.

Begränsningar och överväganden

Även om logisk replikering är kraftfull har den vissa begränsningar:

  • DDL (schemaändringar): Schemaändringar (som ALTER TABLE) replikeras INTE automatiskt. Ni måste tillämpa dem manuellt på både utgivaren och prenumeranten.
  • Replikering av sekvenser: Sekvenser replikeras inte; deras värden måste hanteras separat.
  • Ingen inbyggd redundansväxling: Logisk replikering tillhandahåller inte i sig funktioner för automatisk redundansväxling, till skillnad från vissa konfigurationer med fysisk replikering (t.ex. med Patroni).
  • Stora objekt: Stora objekt (bytea) replikeras inte direkt och kräver särskild hantering.

Frågor: logisk kontra fysisk replikering

Nu testar vi er förståelse av de viktigaste skillnaderna och fördelarna.

Sammanfattning: logisk replikering

Ni har lärt er grunderna i logisk replikering!

  • Data replikeras utifrån logiska radändringar, vilket ger stor flexibilitet.
  • Det fungerar genom att utgivare definierar publikationer och att prenumeranter skapar prenumerationer.
  • Viktiga fördelar är selektiv replikering och kompatibilitet mellan versioner.
  • Kom ihåg att DDL och sekvenser inte replikeras automatiskt och måste hanteras manuellt.

Härnäst går vi igenom hur ni konfigurerar publikationer och prenumerationer för att starta detta kraftfulla system!

Gratis att börja

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 ”Grunderna i logisk replikering” gratis?

Ja – hela texten till ”Grunderna i logisk replikering” 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 ”Grunderna i logisk replikering”?

Förstå skillnaderna och fördelarna med logisk replikering jämfört med fysisk replikering. 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 1 av 4.

Hur lång tid tar lektionen ”Grunderna i logisk replikering”?

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

  1. Grunderna i logisk replikering
  2. Konfigurera publikationer
  3. Hantera prenumerationer
  4. Konflikthantering i logisk replikering
← Tillbaka till Avancerad PostgreSQL: indexering, partitionering och replikering