Denníka transakcií rastie nečakane alebo zaplneniu v SQL Server

Preklady článku Preklady článku
ID článku: 317375 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

Súhrn

Ak je jeho voľba nastavená v Microsoft SQL Server 2005 a neskoršie verzie SQL Server 2000 a SQL Server 7.0, súbory denníka transakcií môžu automaticky rozšíriť, aby maximálna veľkosť súboru denníka z 2 terabajtov (TB) za súbor denníka.

Zvyčajne, veľkosť súboru denníka transakcií stabilizuje keď to môže mať maximálny počet transakcií, ktoré môžu nastať medzi transakcia denníka truncations, ktoré sú vyvolané kontrolné stanovište alebo zálohy denníka transakcií.

Však, v niektorých prípadoch transakcia denníka môže stať veľmi veľké a beží nedostatok miesta alebo stať sa plnohodnotnými. Zvyčajne dostanete nasledovné chybové hlásenie, keď súbor denníka transakcií používa voľné miesto na disku a nemôže rozbaliť dlhšie:
Chyba: 9002, závažnosť: 17, štát: 2
Súbor denníka pre databázu "%. * ls' je plný.
Ak používate SQL Server 2005, zobrazí chybové hlásenie, nasledovnému:
Chyba: 9002, závažnosť: 17, štát: 2
Denník transakcií databázy "%. * ls' je plný. Chcete zistiť, prečo miesto v denníku nemožno opätovne použiť, pozri log_reuse_wait_desc kolóny v sys.databases
Popri tomto chybovom hlásení servera SQL Server môže označiť databáz podozrivý z dôvodu nedostatku miesta pre transakciu denníka rozšírenia. Ďalšie informácie o tom, ako sa zotaviť sa z tejto situácie, "Nedostatok miesta na disku" téme v SQL Server Books Online.

Navyše transakcia denníka rozšírenia môžu vyskytnúť jeden z nasledujúcich dôvodov alebo v jednom z týchto scenárov:
  • Súbor denníka transakcií veľmi veľké.
  • Transakcie môžu zlyhať a môže začať vrátiť späť.
  • Transakcie môže trvať dlhú dobu na dokončenie.
  • Môžu nastať problémy s výkonom.
  • Blokovanie môže dôjsť.
  • Databáza sa zúčastňujú skupiny dostupnosti AlwaysOn.

Ďalšie informácie

Transakcia denníka expanzia môže dôjsť z jedného z nasledujúcich dôvodov alebo scenáre.


Poznámka V SQL Server 2005 a novšie verzie, môžete skontrolovať log_reuse_wait a log_reuse_wait_desc stĺpy z pohľadu sys.databases katalóg zistiť prečo priestor denníka transakcií, sa nesmú opätovne použiť a prečo nemôže byť skrátené denník transakcií.


Nezapojené transakcie

Veľmi veľké transakcie

Operácie: DBCC DBREINDEX a vytvorenie indexu

Pri obnovení zo zálohy denníka transakcií

Klientske aplikácie nemôže spracovať všetky výsledky

Dotazy time out pred denníka transakcií ukončí expanzia a dostanete falošné "Log plný" chybové hlásenia

Unreplicated transakcie

AlwaysOn "AVAILABILITY_REPLICA" použitie záznamy denníka transakcií na sekundárne databázy

Rozšírené informácie

Denník transakcií pre ľubovoľnú databázu spravuje ako množinu súborov virtuálnej denníka (VLFs). SQL Server určuje VLF súbor veľkosti interne na základe celkovej veľkosti súboru denníka a rastu prírastok, ktorý sa používa pri rozšírení log. Denník vždy rozširuje v jednotkách celý VLFs a komprimovať môžete iba VLF hranicu. VLF môže existovať v niektorom z troch štátov: aktívny a NEOPRAVITEĽNÁ OPAKOVANE.
  • Aktívny: Aktívna časť z denníka začína minimálne log poradové číslo (LSN) predstavujúci aktívne (nepotvrdené) transakcie. Aktívna časť z denníka končí posledný-písomné LSN. Akékoľvek VLFs, ktoré obsahujú akúkoľvek časť aktívneho denníka sú považované za aktívny VLFs. (nevyužitý priestor v denníku fyzickej nie je súčasťou akejkoľvek VLF.)
  • NEOPRAVITEĽNÁ: časť denníka, ktorý prichádza pred najstaršie aktívne transakcia je len potrebné zachovať postupnosť denníka zálohovanie pre obnovenie.
  • OPAKOVANE: Ak nie si zachovávajú transakciu denníka zálohy, alebo ak youalready zálohované log, SQL Server opätovné VLFs pred najstaršie activetransaction.
Keď SQL Server dosiahne koniec fyzického súboru denníka, začne opätovné použitie priestor v súbore fyzickej vydaním KRÚŽI späť fungovanie na začiatku súborov. V skutočnosti, recykluje SQL Server priestor v súbore denníka, ktoré už nie je potrebné pre obnovenie alebo zálohovanie účely. Ak denník zálohovania postupnosť je zachovaná, časť denníka pred minimálne LSN nemôže byť prepísané kým zálohovať alebo skrátiť tieto záznamy denníka. Po zálohovanie denníka, server SQL Server môže kruh späť na začiatok súboru. Po servera SQL Server kruhy späť na začať písať denník záznamov skôr v súbore denníka, opakovane súčasťou denníka je potom medzi koniec logického záznamu a aktívna časť z denníka.

Ďalšie informácie nájdete v téme "Transakcia denníka fyzickej architektúry" tému v zdroji SQL Server Books Online. Okrem toho môžete vidieť diagramu a diskusia o to na strane 190 "vnútri SQL Server 7.0" (Soukup, Ron. Vnútri Microsoft SQL Server 7.0, Microsoft Press, 1999), a tiež na stránkach 182 až 186 "vnútri SQL Server 2000" (Delaney, kalenie. Vnútri Microsoft SQL Server 2000, Microsoft Press, 2000). Databázy SQL Server 2000 a SQL Server 7.0 majú možnosti autogrow a autoshrink. Tieto možnosti môžete použiť na pomoc môžete komprimovať alebo vaše prihlásenie rozširovacej transakcie.

Ďalšie informácie o tom, ako tieto voľby môžu ovplyvniť server, po kliknutí na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:
315512 Úvahy o Autogrow a Autoshrink konfigurácie v SQL Server
Skracovanie na veľkosť súboru denníka transakcií sa líši od kompresie súboru denníka transakcií. Ak server SQL Server skráti súbor denníka transakcií, to znamená, že obsah tohto súboru (napríklad dopustil transakcií) sa vypúšťajú. Avšak, keď si prezeráte veľkosť súboru z hľadiska miesta na disku (napríklad v programe Windows Prieskumník alebo pomocou príkazu dir ), veľkosť zostáva nezmenený. Však priestor vo vnútri .ldf súbor môže teraz byť opätovne nových obchodov. Len keď SQL Server sa zmenšuje veľkosť súboru denníka transakcií si skutočne vidieť zmenu fyzickú veľkosť súboru denníka.

Ďalšie informácie o tom, ako zmenšiť denníky transakcií, kliknite na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:
256650 Ako zmenšiť SQL Server 7.0 denníka transakcií
272318 Zmenšuje protokol transakcií v SQL Server 2000 s DBCC SHRINKFILE
Ďalšie informácie o používaní SQL Server 6.5 transakcia denníka, kliknite na nasledovné číslo článku publikovaného v databáze Microsoft Knowledge Base:
110139 Príčiny transakcia denníka SQL zapĺňajú

Ako nájsť dotazy, ktoré konzumujú veľké množstvo priestor denníka SQL Server 2005 a novšie verzie

V SQL Server 2005 a novšie verzie, môžete použiť zobrazenie dynamická správa sys.dm_tran_database_transactions (DMV) vyhľadajte dotazy, ktoré konzumujú veľké množstvo priestor denníka. Nasledujúce stĺpce v sys.dm_tran_database_transactions DMV môže byť užitočné:
  • database_transaction_log_bytes_used
  • database_transaction_log_bytes_used_system
  • database_transaction_log_bytes_reserved
  • database_transaction_log_bytes_reserved_system
  • database_transaction_log_record_count
Môžete dotaz stĺpci sql_handle z sys.dm_exec_requests DMV získať text samotný výkaz, ktorý spotrebuje veľké množstvo priestor denníka. Môžete to urobiť spojením sys.dm_tran_database_transactions DMV a sys.dm_tran_session_transactions DMV v stĺpci transaction_id, a potom pridať ďalšie spojenie s sys.dm_exec_requests na session_id kolóne.

Ďalšie informácie o sys.dm_tran_database_transactions DMV, prejdite na SYS.dm_tran_database_transactions (Transact-SQL) webová lokalita Microsoft Developer Network (MSDN) webovej stránky.

Ďalšie informácie o sys.dm_tran_session_transactions DMV, prejdite na SYS.dm_tran_session_transactions (Transact-SQL) Webovej lokalite MSDN.

Ďalšie informácie o sys.dm_exec_requests DMV, prejdite na SYS.dm_exec_requests (Transact-SQL) Webovej lokalite MSDN.

Vlastnosti

ID článku: 317375 - Posledná kontrola: 15. januára 2014 - Revízia: 5.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Kľúčové slová: 
kbsqlsetup kbinfo kbmt KB317375 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok je preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft a možno ho opraviť prostredníctvom technológie Community Translation Framework (CTF). Microsoft ponúka strojovo preložené články, články upravené komunitou aj články preložené prekladateľmi, aby zabezpečil prístup ku všetkým článkom databázy Knowledge Base vo viacerých jazykoch. Strojovo preložené články aj upravené články môžu obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky. Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené neprávnym prekladom obsahu alebo jeho použitím zo strany našich zákazníkov. Ďalšie informácie o technológii CTF nájdete na lokalite http://support.microsoft.com/gp/machine-translation-corrections/sk.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 317375

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com