Descrieți înregistrarea în jurnal pentru scriere în avans

Finalizat

Atunci când se efectuează modificări în baza de date, cum ar fi INSERTS sau DELETES, acele modificări sunt scrise mai întâi într-un jurnal, apoi scrise în fișierele de date de pe disc. Această operațiune se numește jurnal de scriere înainte, deoarece modificările sunt scrise în jurnal, înainte de a le comite în fișierele de date. Dacă o problemă, cum ar fi pierderea de energie, jurnalul conține întotdeauna cele mai recente date și poate fi utilizat pentru a vă asigura că baza de date este într-o stare unitară.

Un al doilea beneficiu este că prin scrierea modificărilor în jurnal primul, modificările la tabele și indexuri pot fi scrise în loturi, mai degrabă decât individual. Acest proces reduce numărul de scrieri de disc necesare pentru a menține tabelele și indexurile actualizate. Scrie în jurnal sunt rapide, deoarece au terminat secvențial. Scrie mai lent în tabele și indexuri se poate face în siguranță în loturi, deoarece toate datele pot fi recuperate din jurnal. Pentru volumele de lucru care implică de obicei multe actualizări mici, performanța este îmbunătățită.

Notă

Pentru implementările locale ale PostgreSQL, fișierul jurnal este stocat în directorul pg_wal. Baza de date Azure pentru PostgreSQL nu oferă acces la sistemul de fișiere, deci nu trebuie să vă faceți griji în legătură cu stocarea fizică a fișierului jurnal.

Există mai mulți parametri de server care vă permit să controlați modul în care funcționează înregistrarea în jurnal la scriere și să o optimizați pentru volumul de lucru:

  • commit_delay - întârzierea între comiterea tranzacției și golirea jurnalului pe disc.
  • wal_buffers - numărul de tamponuri de pagină de disc din memoria partajată pentru înregistrarea în jurnal cu scriere în avans (WAL).
  • max_wal_size - dimensiunea maximă pentru a permite ca WAL să crească înainte de a declanșa punctul de control automat.
  • wal_writer_delay - intervalul de timp dintre wal goliri efectuate de scriitorul WAL.
  • wal_compression - dacă se comprimă scrierea în pagină completă a fișierului WAL.
  • wal_level - determină cât de multe informații sunt scrise pentru WAL. Valorile permise sunt REPLICA sau LOGIC.

Restaurare punct în timp

Scopul principal al jurnalului de scriere înainte (WAL) este de a asigura consistența și durabilitatea bazei de date dacă există o cădere. Versiunea locală de PostgreSQL permite utilizarea jurnalului ca arhivă, permițându-vă să restaurați la un moment dat utilizând setările de configurare archive_mode și archive_command.

Baza de date Azure pentru PostgreSQL este un serviciu gestionat, care nu permite accesul la sistemul de fișiere subiacent. Totuși, include copii backup complete automate ale serverului, inclusiv toate bazele de date. Această copie backup vă permite să creați din nou datele la un moment dat. Copiile backup sunt planificate automat și se efectuează o dată pe zi. Dacă trebuie să restaurați, puteți restaura până la numărul de zile specificat pentru păstrarea copiilor backup, până la maximum 35 de zile. Pentru a specifica cât timp trebuie reținut copiile de rezervă pentru:

  1. În portalul Azure, navigați la baza de date Azure pentru serverul flexibil PostgreSQL.
  2. Din secțiunea Prezentare generală, selectați configurare.
  3. Sub Copii backup, găsiți perioadă de retenție backup (în zile). Bara glisorului vă permite să selectați numărul de zile în care doriți să fie reținute copiile backup.
  4. Selectați Salvați pentru a păstra modificările.