Beskriva loggning före skrivning

Slutförd

När ändringar görs i databasen, till exempel INSERTS eller DELETES, skrivs ändringarna först till en logg och skrivs först till datafiler på disken. Den här åtgärden kallas loggen write-ahead eftersom ändringar skrivs till loggen innan de skickas till datafiler. Om ett problem, till exempel strömavbrott, innehåller loggen alltid de senaste data och kan användas för att säkerställa att databasen är i ett konsekvent tillstånd.

En annan fördel är att genom att skriva ändringar i loggen först kan ändringar i tabeller och index skrivas i batchar snarare än individuellt. Den här processen minskar antalet diskskrivningar som krävs för att hålla tabeller och index uppdaterade. Skrivningar till loggen är snabba eftersom de görs sekventiellt. Långsammare skrivningar till tabeller och index kan på ett säkert sätt göras i batchar, eftersom alla data kan återställas från loggen. För arbetsbelastningar som vanligtvis omfattar många små uppdateringar förbättras prestandan.

Kommentar

För lokala implementeringar av PostgreSQL lagras loggfilen i katalogen pg_wal . Azure Database for PostgreSQL ger inte åtkomst till filsystemet, så du behöver inte bekymra dig om loggfilens fysiska lagring.

Det finns flera serverparametrar som gör att du kan styra hur loggning före skrivning fungerar och optimera den för din arbetsbelastning:

  • commit_delay – fördröjningen mellan transaktionsincheckning och tömning av loggen till disk.
  • wal_buffers – antalet disksidebuffertar i delat minne för loggning före skrivning (WAL).
  • max_wal_size – maximal storlek för att låta WAL växa innan automatisk kontrollpunkt utlöses.
  • wal_writer_delay – tidsintervall mellan WAL-tömningar som utförs av WAL-skrivaren.
  • wal_compression – om helsidesskrivningar i WAL-filen komprimeras.
  • wal_level – avgör hur mycket information som skrivs till WAL. De tillåtna värdena är REPLIK eller LOGisk.

Återställning till tidpunkt

Det primära syftet med loggen för framåtskrivning (WAL) är att säkerställa databaskonsekvens och hållbarhet om det uppstår en krasch. Den lokala versionen av PostgreSQL gör att loggen kan användas som ett arkiv, så att du kan återställa till en tidpunkt med hjälp av konfigurationsinställningarna archive_mode och archive_command.

Azure Database for PostgreSQL är en hanterad tjänst som inte tillåter åtkomst till det underliggande filsystemet. Den innehåller dock automatiska fullständiga säkerhetskopior av servern, inklusive alla databaser. Med den här säkerhetskopian kan du återskapa dina data till en viss tidpunkt. Säkerhetskopieringar schemaläggs automatiskt och görs en gång om dagen. Om du behöver återställa kan du återställa upp till det antal dagar som du har angett för att behålla säkerhetskopior, upp till högst 35 dagar. Så här anger du hur länge säkerhetskopior ska behållas för:

  1. I Azure-portalen går du till din flexibla Azure Database for PostgreSQL-server.
  2. I avsnittet Översikt väljer du din konfiguration.
  3. Under Säkerhetskopior letar du upp kvarhållningsperioden för säkerhetskopior (i dagar).. Med skjutreglaget kan du välja hur många dagar du vill att säkerhetskopior ska behållas.
  4. Välj Spara för att behålla ändringarna.