Momentan sunteți offline, așteptați să vă reconectați la internet

Recuperarea dintr-un jurnal de tranzacţii plin într-o bază de date SQL Server

INTRODUCERE
Acest articol descrie paşii pe care trebuie să îi urmaţi atunci când jurnalele de tranzacţii devin prea mari. Jurnalele de tranzacţii complete pot face inutilizabilă baza de date Microsoft SQL Server. Acest articol descrie cum se trunchiază şi se micşorează jurnalele de tranzacţii şi cum se împiedică mărirea neaşteptată a jurnalelor de tranzacţii.

INFORMAŢII SUPLIMENTARE

Micşorarea dimensiunii jurnalelor de tranzacţii

Pentru recuperarea dintr-o situaţie în care jurnalele de tranzacţii sunt pline, trebuie să micşoraţi dimensiunea jurnalelor de tranzacţii. Pentru aceasta, trebuie să trunchiaţi tranzacţiile inactive din jurnalul de tranzacţii şi să micşoraţi fişierul jurnalului de tranzacţii.

Notă Jurnalele de tranzacţii sunt foarte importante pentru a menține integritatea tranzacţională a bazei de date. Prin urmare, nu trebuie să ştergeţi fişierele jurnalelor de tranzacţii nici chiar după copierea de rezervă a bazei de date şi a jurnalelor de tranzacţii.


Pentru mai multe informaţii despre micşorarea dimensiunii jurnalului de tranzacţii, vizitaţi următorul site Web Microsoft:

Trunchierea tranzacţiilor inactive în jurnalul de tranzacţii

Dacă jurnalele de tranzacţii sunt pline, trebuie să efectuaţi imediat copia jurnalului de tranzacţii. Când se creează copia de rezervă a fişierelor jurnalului de tranzacţii, serverul SQL trunchiază automat partea inactivă a jurnalului de tranzacţii. Partea inactivă a fişierului jurnalului de tranzacţii conţine tranzacţiile finalizate şi, prin urmare, fişierul jurnalului de tranzacţii nu mai este utilizat de serverul SQL în timpul procesului de recuperare. Serverul SQL reutilizează acest spaţiu trunchiat şi inactiv din jurnalul de tranzacţii în loc să permită jurnalului de tranzacţii să se mărească în continuare şi să utilizeze mai mult spaţiu.

Pentru informaţii suplimentare despre problema de care trebuie să ţineţi cont la efectuarea copiei de rezervă a jurnalelor de tranzacţii şi despre problema de care trebuie să ţineţi cont la restaurarea copiilor de rezervă ale jurnalelor de tranzacţii, vizitaţi subiectele următoare din SQL Server Books Online:
  • Copii de rezervă ale jurnalelor de tranzacţii
  • Copierea de rezervă şi restaurarea jurnalelor de tranzacţii
De asemenea, puteţi şterge tranzacţiile inactive dintr-un fişier al jurnalului de tranzacţii utilizând metoda Trunchiere. Pentru informaţii suplimentare despre trunchierea jurnalelor de tranzacţii, consultaţi subiectul „Trunchierea jurnalului de tranzacţii” în SQL Server Books Online.

Important După trunchierea manuală a fişierelor jurnalelor de tranzacţii, trebuie să creaţi o copie de rezervă a întregii baze de date înainte de a crea o copie de rezervă a jurnalului de tranzacţii.

Pentru informaţii suplimentare despre problemele ce pot apărea la trunchierea fişierelor jurnalelor de tranzacţii, faceţi clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoştinţe Microsoft:
62866 Motive pentru care jurnalul de tranzacţii SQL nu este trunchiat (Poate fi în engleză)

Micşorarea fişierului jurnalului de tranzacţii

Operaţiunea copierii de rezervă sau metoda Trunchiere nu micşorează dimensiunea fişierului jurnalului. Pentru a micşora dimensiunea fişierului jurnalului de tranzacţii, trebuie să micşoraţi fişierul jurnalului de tranzacţii. Pentru a micşora fişierul jurnalului de tranzacţii la dimensiunea necesară şi pentru a elimina paginile neutilizate, trebuie să utilizaţi operaţiunea DBCC SHRINKFILE. Instrucţiunea DBCC SHRINKFILE Transact-SQL poate micşora doar partea inactivă în interiorul fişierului jurnalului.

Notă Numai instrucţiunea DBCC SHRINKFILE Transact-SQL nu poate trunchia jurnalul şi micşora spaţiul utilizat în interiorul fişierului jurnalului.

Pentru mai multe informaţii despre micşorarea fişierelor jurnalelor de tranzacţii, consultaţi subiectele următoare în SQL Server Books Online:
  • Micşorarea jurnalului de tranzacţii
  • DBCC SHRINKFILE
Pentru informații suplimentare despre cum se micşorează fişierele jurnalelor de tranzacţii în SQL Server 2000, faceți clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoștințe Microsoft:
272318 Micșorarea jurnalului de tranzacții în SQL Server 2000 cu DBCC SHRINKFILE (Poate fi în engleză)
Pentru informaţii suplimentare despre problemele ce pot apărea la micşorarea fişierelor jurnalelor de tranzacţii, faceţi clic pe următoarele numere de articole pentru a vedea articolele în Baza de cunoştinţe Microsoft:
814574 PRB: Mesaj de eroare: „Imposibil de micşorat fişierul jurnalului..." apare atunci când micşoraţi fişierul jurnalului de tranzacţii (Poate fi în engleză)
324432 PRB: Comenzile DBCC SHRINKFILE şi SHRINKDATABASE pot să nu funcţioneze din cauza textului populat extins, a tipului de text ntext sau a coloanelor imagine (Poate fi în engleză)

Prevenirea măririi neaşteptate a fişierelor jurnalelor de tranzacţii

Pentru a preveni mărirea neaşteptată a fişierelor jurnalelor de tranzacţii, luaţi în considerare utilizarea uneia dintre metodele următoare:
  • Setaţi dimensiunea fişierelor jurnalelor de tranzacţii la o valoarea mai mare pentru a evita extinderea automată a fişierelor jurnalelor de tranzacţii.
  • Configuraţi extinderea automată a fişierelor jurnalelor de tranzacţii utilizând unităţile de memorie în locul unui procentaj după evaluarea dimensiunii optime a memoriei.

    Pentru informaţii suplimentare despre problemele de luat în considerare la configurarea opţiunii de mărire automată, faceţi clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoştinţe Microsoft:
    315512 Consideraţii pentru configurarea măririi automate şi micşorării automate
  • Modificaţi modelul de recuperare. Dacă are loc un dezastru sau deteriorarea datelor, trebuie să recuperaţi baza de date astfel încât să se menţină consistenţa datelor şi integritatea tranzacţională. În funcţie de cât de importante sunt datele din baza de date, puteţi utiliza unul dintre modelele de recuperare următoare pentru a stabili modul în care se efectuează copierea de rezervă a datelor şi câte date s-au pierdut:
    • Modelul de recuperare simplă
    • Modelul de recuperare completă
    • Modelul de recuperare masivă cu înregistrare în jurnal
    Utilizând modelul de recuperare simplă, puteţi recupera baza de date din cea mai recentă copie de rezervă a bazei de date. Utilizând modelul de recuperare completă sau modelul de recuperare masivă cu înregistrare în jurnal, puteţi recupera baza de date de la momentul apariţiei erorii prin restaurarea bazei de date cu copiile de rezervă ale fişierelor jurnalelor de tranzacţii.

    În mod implicit, în SQL Server 2000 şi SQL Server 2005, modelul de recuperare pentru baza de date a serverului SQL este setat la Model de recuperare completă. Cu modelul de recuperare completă, copierile de rezervă regulate ale jurnalului de tranzacţii se utilizează pentru a preveni mărirea peste limite a fişierelor jurnalelor de tranzacţii în bazele de date. Totuşi, dacă nu se efectuează copieri de rezervă regulate ale jurnalului de tranzacţii, fişierul jurnalului de tranzacţii se măreşte până la umplerea discului şi nu veţi mai putea efectua nicio operaţiune de modificare a datelor în baza de date a serverului SQL.

    Puteţi schimba modelul de recuperare de la completă la simplă dacă nu doriţi să utilizaţi fişierele jurnalului de tranzacţii în timpul unei operaţiuni de recuperare în urma unui dezastru.
  • Efectuaţi regulat copierea de rezervă a fişierelor jurnalelor de tranzacţii pentru a şterge tranzacțiile inactive din jurnalul de tranzacţii.
  • Concepeţi tranzacțiile la o dimensiune mică.
  • Asiguraţi-vă că nu există tranzacții nevalidate care se execută în continuare pe o durată nedeterminată.
  • Planificaţi efectuarea zilnică a opţiunii Actualizare statistici.
  • Pentru a defragmenta indexurile cu scopul de a obţine performanţa de încărcare în mediul dvs. de lucru, utilizaţi instrucţiunea DBCC INDEXDEFRAG Transact-SQL în locul instrucţiunii DBCC DBREINDEX Transact-SQL. Dacă executaţi instrucţiunea DBCC DBREINDEX, jurnalul de tranzacţii se poate extinde semnificativ atunci când baza de date a serverului SQL este în modul Recuperare completă. În plus, instrucţiunea DBCC INDEXDEGRAG nu menţine blocările pentru o durată lungă, spre deosebire de instrucţiunea DBCC DBREINDEX.

    Pentru informaţii suplimentare despre defragmentarea indexurilor în SQL Server 2000, consultaţi următorul site Web Microsoft: Dacă trebuie să executaţi instrucţiunea DBCC DBREINDEX ca operaţiune care face parte din planul de întreţinere a bazei de date, trebuie să împărţiţi operaţiunea în mai multe operaţiuni. În plus, trebuie să efectuaţi copierile de rezervă frecvente ale jurnalelor de tranzacţii între executarea operaţiunilor.

Mai multe informaţii despre fişierele jurnalelor de tranzacţii

În SQL Server 2000 şi SQL Server 2005, fiecare bază de date conţine cel puţin un fişier de date şi un fişier al jurnalului de tranzacţii. Serverul SQL stochează datele fizic în fişierul de date. Fişierul jurnalului de tranzacţii stochează detaliile tuturor modificărilor efectuate în baza de date a serverului SQL şi detaliile tranzacţiilor care au efectuat fiecare modificare. Deoarece integritatea tranzacţională este considerată o caracteristică fundamentală şi intrinsecă a serverului SQL, înregistrarea în jurnal a detaliilor tranzacţiilor nu se poate dezactiva pe serverul SQL.

Fişierul jurnalului de tranzacţii este împărțit logic în segmente mai mici, care sunt denumite fişierele de jurnal virtuale. În SQL Server 2000, aveţi posibilitatea să configuraţi fişierul jurnalului de tranzacţii pentru a se extinde după necesităţi. Extinderea jurnalului de tranzacţii poate fi decisă de utilizator sau se poate configura pentru a utiliza întregul spaţiu disponibil pe disc. Orice modificare adusă de serverul SQL dimensiunii fişierului jurnalului de tranzacţii, cum ar fi trunchierea sau mărirea fişierelor jurnalelor de tranzacţii, se efectuează în unităţi ale fişierelor jurnalelor virtuale.

Dacă fişierul jurnalului de tranzacţii care corespunde unui baze de date a serverului SQL este plin şi aţi setat opţiunea de creştere automată a fişierului jurnalului de tranzacţii, acesta se măreşte în unităţi ale fişierelor jurnalelor virtuale. Uneori, fişierul jurnalului de tranzacţii poate deveni foarte mare şi este posibil să rămâneţi fără spaţiu pe disc. Dacă fişierul jurnalului de tranzacţii creşte până când utilizează întregul spaţiu disponibil pe disc şi nu-l puteţi extinde mai mult, nu mai puteţi efectua nicio operaţiune de modificare a datelor în baza de date. În plus, serverul SQL poate marca baza de date ca fiind suspectă din lipsa spaţiului pentru extinderea jurnalului de tranzacţii.

Pentru informaţii suplimentare despre situaţiile care pot duce la mărirea neaşteptată a fişierului jurnalului de tranzacţii, faceţi clic pe următorul număr de articol pentru a vedea articolul în Baza de cunoştinţe Microsoft:
317375 Jurnalul de tranzacţii se măreşte în mod neaşteptat sau devine plin pe serverul SQL (Poate fi în engleză)

REFERINŢE
Pentru informaţii suplimentare despre depanarea cerinţei de spaţiu suplimentar pe disc în timpul procesului de recuperare, consultaţi subiectul „Spațiu de disc insuficient” în SQL Server Books Online. Pentru informaţii suplimentare despre arhitectura jurnalului de tranzacţii, consultaţi următoarele subiecte în SQL Server Books Online:
  • Arhitectura jurnalului de tranzacţii
  • Arhitectura logică a jurnalului de tranzacţii
  • Arhitectura fizică a jurnalului de tranzacții
Pentru informaţii suplimentare despre modelele de recuperare în SQL Server 2000, consultaţi subiectele următoare în SQL Server Books Online:
  • Selectaţi un model de recuperare
  • Recuperare simplă
  • Recuperare completă
  • Recuperare masivă cu înregistrare în jurnal
  • Comutare între modelele de recuperare

TLOG T-log filesize becomes full run out of space fills
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.
Proprietăți

ID articol: 873235 - Ultima examinare: 02/29/2012 14:48:00 - Revizie: 1.0

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235
Feedback