Write Ahead-logboekregistratie beschrijven

Voltooid

Wanneer wijzigingen worden aangebracht in de database, zoals INSERTS of DELETES, worden deze wijzigingen eerst naar een logboek geschreven en worden ze alleen naar gegevensbestanden op schijf geschreven. Deze bewerking wordt het write-ahead-logboek genoemd, omdat wijzigingen naar het logboek worden geschreven, voordat ze worden doorgevoerd in gegevensbestanden. Als een probleem, zoals stroomverlies, het logboek altijd de meest recente gegevens bevat en kan worden gebruikt om ervoor te zorgen dat de database een consistente status heeft.

Een tweede voordeel is dat door eerst wijzigingen in het logboek te schrijven, wijzigingen in tabellen en indexen in batches kunnen worden geschreven in plaats van afzonderlijk. Dit proces vermindert het aantal schrijfbewerkingen dat nodig is om tabellen en indexen up-to-date te houden. Schrijfbewerkingen naar het logboek zijn snel omdat ze opeenvolgend worden uitgevoerd. Tragere schrijfbewerkingen naar tabellen en indexen kunnen veilig worden uitgevoerd in batches, omdat alle gegevens uit het logboek kunnen worden hersteld. Voor workloads waarbij doorgaans veel kleine updates zijn betrokken, worden de prestaties verbeterd.

Notitie

Voor on-premises implementaties van PostgreSQL wordt het logboekbestand opgeslagen in de map pg_wal . Azure Database for PostgreSQL biedt geen toegang tot het bestandssysteem, dus u hoeft zich geen zorgen te maken over de fysieke opslag van het logboekbestand.

Er zijn verschillende serverparameters waarmee u kunt bepalen hoe write-ahead-logboekregistratie werkt en deze optimaliseren voor uw workload:

  • commit_delay: de vertraging tussen het doorvoeren van transacties en het leegmaken van het logboek naar schijf.
  • wal_buffers: het aantal schijfpaginabuffers in het gedeelde geheugen voor write-ahead-logboekregistratie (WAL).
  • max_wal_size : maximale grootte om de WAL te laten groeien voordat het automatische controlepunt wordt geactiveerd.
  • wal_writer_delay - tijdsinterval tussen WAL flushes uitgevoerd door de WAL writer.
  • wal_compression: of schrijfbewerkingen op volledige pagina's in het WAL-bestand zijn gecomprimeerd.
  • wal_level - bepaalt hoeveel informatie naar de WAL wordt geschreven. De toegestane waarden zijn REPLICA of LOGISCH.

Herstel naar een bepaald tijdstip

Het primaire doel van het write-ahead-logboek (WAL) is om databaseconsistentie en duurzaamheid te garanderen als er een crash optreedt. Met de on-premises versie van PostgreSQL kan het logboek worden gebruikt als archief, zodat u naar een bepaald tijdstip kunt herstellen met behulp van de configuratie-instellingen archive_mode en archive_command.

Azure Database for PostgreSQL is een beheerde service, die geen toegang toestaat tot het onderliggende bestandssysteem. Het bevat echter automatische volledige back-ups van de server, inclusief alle databases. Met deze back-up kunt u uw gegevens opnieuw maken naar een bepaald tijdstip. Back-ups worden automatisch gepland en worden eenmaal per dag uitgevoerd. Als u wilt herstellen, kunt u tot het aantal dagen dat u hebt opgegeven voor het bewaren van back-ups, tot maximaal 35 dagen herstellen. Opgeven hoe lang back-ups moeten worden bewaard voor:

  1. Navigeer in Azure Portal naar uw flexibele Azure Database for PostgreSQL-server.
  2. Selecteer uw configuratie in de sectie Overzicht.
  3. Zoek onder Back-ups de bewaarperiode voor back-ups (in dagen). Met de schuifregelaar kunt u het aantal dagen selecteren dat back-ups moeten worden bewaard.
  4. Selecteer Opslaan om uw wijzigingen te behouden.