Jurnalele de tranzacții în MS SQL sunt folosite pentru a crește, ceea ce poate duce uneori la sfârșitul spațiului pe disc. Pentru a împiedica acest lucru, există o operație de trunchiere în SQL Server (Truncate). Buștenii sunt tăiate automat, în funcție de modelul de recuperare:
• Într-un model simplu (Simplu) - după atingerea punctului de control;
• În modelul de recuperare completă (Full) - după crearea backup-ului, cu condiția ca punctul de control să fie atins din momentul copierii anterioare.
Dar există situații în care întreruperea automată din anumite motive nu este efectuată și jurnalele ocupă tot spațiul liber. Și acest lucru se întâmplă întotdeauna în mod neașteptat și este necesar să se elibereze de urgență locul. În acest caz, tăierea se poate face manual.
O situație similară apare de obicei cu modelul de recuperare completă, în care jurnalul nu poate fi trunchiat până când toate tranzacțiile nu au fost incluse în copie de rezervă. Acest lucru este necesar pentru a asigura disponibilitatea unei intrări succesive de numere (LSN) în jurnal. În consecință, pentru trunchiere, trebuie fie să faceți o copie de rezervă completă a bazei de date, fie (care este mai ușor și mai rapid) să o puneți temporar în modul Simplu.
Pentru a reduce jurnalul, deschideți Management Studio, selectați baza de date dorită, faceți clic dreapta pe el și selectați "Properties" din meniul contextual care se deschide. Accesați fila "Opțiuni" și modificați modelul de recuperare la Simplu.
Apoi, în același meniu contextual, accesați secțiunea Tasks -> Shrink -> Files. În câmpul Tip fișier, selectați Jurnal, în câmpul Nume fișier, specificați numele fișierului jurnal. În câmpul "Reduceți acțiunea", selectați "Reorganizați paginile înainte de a elibera spațiul neutilizat", setați dimensiunea dorită a fișierului și faceți clic pe OK.
După ce operația este finalizată, returnăm modul de restaurare a bazei de date înapoi la Full.
Același lucru se poate face și din Analizatorul interogărilor utilizând scriptul:
UTILIZARE "Numele bazei de date"
ALTER DATABASE "Numele bazei de date" SET RECOVERY SIMPLE
DBCC SHRINKFILE ("Nume fișier jurnal", "Dimensiune dorită");
ALTER DATABASE "Numele bazei de date" SET RECOVERY FULL
Aceasta este doar o modalitate de a reduce rapid dimensiunea jurnalelor. Nu este cel mai frumos 🙂 dar cel mai simplu și mai eficient.