Opisywanie rejestrowania zapisu z wyprzedzeniem

Ukończone

Po wprowadzeniu zmian w bazie danych, takich jak INSERTS lub DELETES, te zmiany są najpierw zapisywane w dzienniku, a następnie zapisywane w plikach danych na dysku. Ta operacja jest nazywana dziennikiem zapisu z wyprzedzeniem, ponieważ zmiany są zapisywane w dzienniku przed zatwierdzeniem w plikach danych. W przypadku problemu, takiego jak utrata zasilania, dziennik zawsze przechowuje najnowsze dane i może służyć do zapewnienia, że baza danych jest w stanie spójnym.

Drugą korzyścią jest to, że dzięki zapisaniu zmian w dzienniku najpierw zmiany w tabelach i indeksach mogą być zapisywane w partiach, a nie pojedynczo. Ten proces zmniejsza liczbę operacji zapisu na dysku wymaganych do aktualizowania tabel i indeksów. Zapisy w dzienniku są szybkie, ponieważ są wykonywane sekwencyjnie. Wolniejsze operacje zapisu w tabelach i indeksach można bezpiecznie wykonywać w partiach, ponieważ wszystkie dane można odzyskać z dziennika. W przypadku obciążeń, które zwykle obejmują wiele małych aktualizacji, wydajność jest większa.

Nota

W przypadku lokalnych implementacji bazy danych PostgreSQL plik dziennika jest przechowywany w katalogu pg_wal . Usługa Azure Database for PostgreSQL nie zapewnia dostępu do systemu plików, więc nie musisz martwić się o fizyczny magazyn pliku dziennika.

Istnieje kilka parametrów serwera, które umożliwiają sterowanie procesem rejestrowania z wyprzedzeniem i optymalizowanie go dla Twojego obciążenia roboczego.

  • commit_delay — opóźnienie między zatwierdzeniem transakcji i opróżnianie dziennika na dysku.
  • wal_buffers — liczba buforów stron dysku w pamięci udostępnionej na potrzeby rejestrowania z wyprzedzeniem zapisu (WAL).
  • max_wal_size — maksymalny rozmiar, do którego WAL może urosnąć przed wyzwoleniem automatycznego punktu kontrolnego.
  • wal_writer_delay — przedział czasu między opróżnieniami WAL wykonywanymi przez moduł zapisujący WAL.
  • wal_compression — czy w pliku WAL są kompresowane pełnostronicowe zapisy.
  • wal_level — określa, ile informacji jest zapisywanych w pliku WAL. Dozwolone wartości to REPLICA lub LOGICAL.

Przywracanie do punktu w czasie

Głównym celem dziennika zapisu (WAL) jest zapewnienie spójności i trwałości bazy danych w razie awarii. Lokalna wersja bazy danych PostgreSQL umożliwia używanie dziennika jako archiwum, co umożliwia przywracanie do punktu w czasie przy użyciu ustawień konfiguracji archive_mode i archive_command.

Azure Database for PostgreSQL to usługa zarządzana, która nie zezwala na dostęp do bazowego systemu plików. Obejmuje to jednak automatyczne pełne kopie zapasowe serwera, w tym wszystkie bazy danych. Ta kopia zapasowa umożliwia ponowne utworzenie danych do określonego momentu w czasie. Kopie zapasowe są zaplanowane automatycznie i są wykonywane raz dziennie. Jeśli chcesz przywrócić, możesz przywrócić maksymalnie liczbę dni, w których określono przechowywanie kopii zapasowych, maksymalnie 35 dni. Aby określić czas przechowywania kopii zapasowych:

  1. W witrynie Azure portal przejdź do elastycznego serwera Azure Database for PostgreSQL.
  2. W sekcji Przeglądwybierz konfigurację.
  3. W obszarze Kopie zapasowe znajdź pozycję Okres przechowywania kopii zapasowej (w dniach). Pasek suwaka umożliwia wybranie liczby dni przechowywania kopii zapasowych.
  4. Wybierz pozycję Zapisz , aby zachować zmiany.