Select the product you need help with
Protokol transakcí neočekávaně roste nebo naplnění v počítači, který je spuštěn SQL ServerID článku: 317375 - Produkty, které se vztahují k tomuto článku. Na této stránceSouhrn Na serveru SQL Server 7.0, SQL Server 2000 a serveru SQL Server
2005, s nastavením automatické zvětšování souborů protokolu transakcí můžete rozšířit
automaticky. Obvykle se velikost souboru protokolu transakcí nestabilizuje při maximální počet transakcí, které se mohou vyskytnout může uchovávat mezi truncations protokolu transakcí, aby kontrolní body nebo transakce protokolu Spustit zálohování. Nicméně v některých situacích může protokolu transakcí velmi velké a spustit místo nebo zaplnění. Obvykle se zobrazí následující chybová zpráva v případě, že soubor protokolu transakcí zabírá k dispozici místo na disku a nelze rozšířit o: Chyba: 9002,
Závažnost: 17, stav: 2 V souboru protokolu databáze ' %. * ls' je plná. Chyba: 9002, závažnosti: 17,
Stav: 2 Transakčního protokolu databáze ' %. * ls' je plná. Chcete-li zjistit, proč místo v protokolu nelze znovu použít, viz sloupec log_reuse_wait_desc v sys.Databases Rozšíření protokolu transakcí může dále vést v následujících situacích:
PříčinyRozšíření protokolu transakcí může dojít z následujících důvodů z důvodů nebo scénářů:
Nepotvrzený transakceExplicitní transakce zůstat nepotvrzené, pokud není explicitní příkaz POTVRDIT nebo vrácení zpět. Tato situace často dochází, když ZRUŠENÍ nebo příkaz Transact SQL KILL bez problémy s aplikací odpovídající příkaz vrátit zpět. Zrušení transakce dojde, ale jeho nelze vrátit zpět; proto serveru SQL Server nelze zkrátit každé transakce dochází-li toto přerušení transakce je stále otevřen. Je možné Ověřte, zda je aktivní pomocí odkazu OPENTRAN DBCC Transact-SQL transakce v databázi v určitém čase. Další informace o této konkrétní situaci získáte naleznete v následujících článcích znalostní báze společnosti Microsoft:295108
(http://support.microsoft.com/kb/295108/
)
Neúplné transakce mohou držet velký počet zámků a blokování případu171224 Dále naleznete v tématu "dbcc opentran" v SQL
Server knihy Online.
(http://support.microsoft.com/kb/171224/
)
Principy fungování příkazu Transact-SQL KILLScénáře, které může mít za následek nesvěřené transakce:
Extrémně velké transakceZáznamy protokolu do souborů protokolu transakcí, které jsou zkráceny na základ podle jednotlivých transakcí. Pokud je velký, obor transakcí, po jeho nejsou odebrány z se spuštěna transakcí a transakcí transakce protokolu, pokud jej dokončí. To může mít za následek velké soubory protokolu. Pokud transakce je dostatečně velký, soubor protokolu, může využít dostupné místo na disku a způsobit typu "celé transakce protokolu" chybová zpráva typu Chyba 9002. Další informace, jak postupovat, když se zobrazí tento typ chyby zprávy je uveden v části "Další informace" v tomto článku. Navíc trvá hodně času a zatížení serveru SQL Server vrátit zpět velké transakce.Operace: DBCC DBREINDEX a vytvořit INDEXZ důvodu změn v modelu pro zotavení v systému SQL Server 2000 Při použití režimu úplné obnovení a spustit DBCC DBREINDEX, transakce protokolu mohou rozšířit podstatně více, SQL Server 7.0 v porovnání ekvivalentní obnovení režimu pomocí SELECT INTO nebo HROMADNÉ kopírování a s "USEKNOUT. Odhlásit na chkpt.".Ačkoli se velikost transakce protokolu Po DBREINDEX operace může být problém, tento přístup přináší lepší výkon obnovení protokolu. Při obnovení ze zálohy protokolu transakceTo je popsáno v následujících Microsoft Knowledge Base článek:232196
(http://support.microsoft.com/kb/232196/
)
Využité místo protokolu zobrazí růst po obnovení ze zálohyPokud nastavíte na serveru SQL Server 2000 pomocí Hromadně zaevidované režim a vydání HROMADNÉ kopírování nebo vyberte příkaz INTO, každé změně rozsahu je označen a zálohován při zálohování protokolu transakce. Přestože To umožňuje zálohovat protokoly transakcí a obnovení v případě selhání i Po provedení hromadné operace se tím zvětší velikost transakce protokoly. SQL Server 7.0 neobsahuje tuto funkci. Pouze záznamy pro SQL Server 7.0 rozsahy, které jsou změněny, ale nezaznamenává skutečné rozsahy. Proto protokolování zabere podstatně více místa na serveru SQL Server 2000 než SQL Server 7.0 v režimu hromadných protokolu, ale není tolik, jako je tomu v plné režim. Klientské aplikace zpracovat všechny výsledkyJestliže vydáváte dotazu serveru SQL Server a zpracovat výsledky okamžitě, můžete být zámky a snížení souběžnosti na vašem Server.Například Předpokládejme, že vydávání dotaz vyžadující řádků ze dvou stránek k naplnění sady výsledků. SQL Server analyzuje kompiluje, a Spustí dotaz. To znamená, že sdílené uzamčení jsou umístěny na dvě stránky, které obsahovat řádky, které jsou nutné k uspokojení dotazu. Navíc Předpokládejme, že ne všechny řádky nevejde se na jeden paket SQL Server TDS (metoda podle který server komunikuje s klientem). Jsou pakety TDS vyplnit a odeslat klientovi. Pokud všechny řádky z první stránky velikost paketu TDS SQL Server odemkne sdílené stránky, ale ponechá na sdílený zámek druhá stránka. SQL Server počká klientovi požadovat další údaje (můžete To lze provést pomocí DBNEXTROW/DBRESULTS SQLNextRow/SQLResults, nebo Například FetchLast/FetchFirst). To znamená, že sdílený zámek zadrženy, dokud klient požaduje zbývající data. Jiné procesy, které data požadavku na druhé stránce může být zablokován. Dotazy časový limit před protokolu transakce dokončí rozšíření a false "Protokolu plný" chybové zprávyV této situaci i když je dostatek místa na disku, stále Zobrazí se chybová zpráva "nedostatek místa".Tato situace se liší pro SQL Server 7.0 a SQL Server 2000. Dotaz může způsobit, že transakce přihlásit automaticky rozbalte protokol transakce je téměř plná. Může to zabere více času a dotaz může být zastavena nebo pravděpodobně překročí jeho vypršení časového limitu období, z tohoto důvodu. SQL Server 7.0 vrátí chybu 9002 v této situaci. Tento problém se nevztahuje na serveru SQL Server 2000. SQL Server 2000, máte-li Auto shrink zapnutá možnost pro databázi, je je velmi malý čas během které protokolu transakcí, které se pokusí automaticky rozbalovat, ale nemůže protože Auto shrink funkce je souběžně spuštěna. To může způsobit také false instance 9002 došlo k chybě. Soubory protokolu transakcí obvykle automatické rozšíření rychle dochází. Avšak v následujících situacích, může trvat déle než obvyklé:
Nereplikovaných transakceVelikost protokolu transakcí aplikace Publisher databáze můžete rozšířit, pokud používáte replikaci. Transakce které ovlivňují objekty, které jsou replikovány jsou označeny jako "Pro replikaci." Tyto transakce, například nesvěřené transakce, nejsou odstraněny po kontrolní bod nebo po protokolu transakcí do protokolu čtení úlohy zálohování transakce se zkopíruje do distribuční databáze a zruší jejich označení. Pokud problém s úkolem protokolu čtení zabrání čtení těchto transakcí v na aplikace Publisher databáze, velikost protokolu transakce může pokračovat v rozšiřování jako počet zvyšuje nereplikovaných transakce. Můžete použít DBCC OPENTRAN Transact-SQL reference k identifikaci nejstarší nereplikovaných transakce.Další informace o odstraňování potíží nereplikovaných transakce, naleznete v tématech "sp_replcounters" a "sp_repldone" serveru SQL Server Knihy Online. Další informace získáte klepnutím na tlačítko naleznete v následujících článcích znalostní báze společnosti Microsoft: 306769
(http://support.microsoft.com/kb/306769/
)
Oprava: Protokolu transakce snapshot publikované databáze nemůže být zkráceny240039
(http://support.microsoft.com/kb/240039/
)
Oprava: DBCC OPENTRAN podávat informace o replikaci198514
(http://support.microsoft.com/kb/198514/
)
Oprava: Obnovení na nový server způsobí transakce zůstat v protokoluDalší informace Protokol o transakcích databáze je spravována jako sada
virtuální soubory protokolu (VLFs) na základě velikosti serveru SQL Server určuje interně
Celková velikost souboru protokolu a přírůstek v použití protokolu
rozbalí. Protokol je vždy rozšiřuje v jednotkách celé VLFs a pouze lze komprimovat
VLF hranici. VLF může existovat v jednom ze tří stavů: aktivní, OBNOVITELNÉ
a znovu použitelné.
Pro Další informace naleznete v tématu "Architektura fyzické transakce protokolu" v SQL Server Online. Navíc uvidíte vynikající diagramu a Diskuse o této stránce 190 "Uvnitř SQL Server 7.0" (Soukup, Ron. Uvnitř Microsoft SQL Server 7.0, Microsoft Press, 1999) a také na stránkách 182 prostřednictvím 186 "Uvnitř SQL Server 2000" (Delaney, Kalen. Vnitřní Microsoft SQL Server 2000, Microsoft Press, 2000). Databáze serveru SQL Server 7.0 a SQL Server 2000 mají Možnosti automatické zvětšování a autoshrink. Tyto možnosti lze použít k pomoci Komprimovat nebo rozšířit svůj soubor protokolu transakcí. Další informace o způsobu těchto možnosti mohou ovlivnit váš server, klepněte na následující číslo článku databáze Microsoft Knowledge Base: 315512 Je rozdíl mezi zkrácení versus
komprese souborů protokolu transakcí. Když se zkrátí serveru SQL Server
soubor protokolu transakcí, to znamená, že obsah tohoto souboru (například
potvrzené transakce) se zrušují. Ale při zobrazení velikosti
souboru z hlediska místa na disku (například v programu Průzkumník Windows nebo
pomocí dir příkaz) velikost zůstane beze změny. Však prostor uvnitř
Soubor LDF může opětovně nyní nové transakce. Pouze v případě serveru SQL Server
Zmenší velikost souboru protokolu transakcí, se ve skutečnosti zobrazí změna
fyzická velikost souboru protokolu.
(http://support.microsoft.com/kb/315512/
)
Důležité informace pro automatické zvětšování a Autoshrink konfigurace serveru SQL ServerDalší informace o tom, jak zmenšit protokoly transakcí, klepněte na tlačítko naleznete v následujících článcích znalostní báze společnosti Microsoft: 256650
(http://support.microsoft.com/kb/256650/
)
Jak zmenšit transakčního protokolu SQL Server 7.0272318 Další informace o protokolu transakce SQL Server verze 6.5
použití, klepněte na následující číslo článku databáze Microsoft Knowledge Base:
(http://support.microsoft.com/kb/272318/
)
Zmenšením protokolu transakcí v SQL Server 2000 s DBCC SHRINKFILE110139
(http://support.microsoft.com/kb/110139/
)
Způsobí, že protokol transakce SQL zaplněníJak najít dotazů, které spotřebovávají velké množství prostoru protokolu SQL Server 2005SQL Server 2005 použijete k zobrazení dynamickou správu sys.dm_tran_database_transactions (DMV) vyhledejte dotazů, které spotřebovávají velké množství místa protokolu. Následující sloupce v sys.dm_tran_database_transactions DMV může být užitečné:
Další informace o sys.dm_tran_database_transactions DMV naleznete na webu Microsoft Developer Network (MSDN): http://msdn2.microsoft.com/en-us/library/ms186957.aspx Další informace o sys.dm_tran_session_transactions DMV naleznete na webu MSDN:
(http://msdn2.microsoft.com/en-us/library/ms186957.aspx)
http://msdn2.microsoft.com/en-us/library/ms188739.aspx Další informace o sys.dm_exec_requests DMV naleznete na webu MSDN:
(http://msdn2.microsoft.com/en-us/library/ms188739.aspx)
http://msdn2.microsoft.com/en-us/library/ms177648.aspx
(http://msdn2.microsoft.com/en-us/library/ms177648.aspx)
VlastnostiID článku: 317375 - Poslední aktualizace: 19. května 2011 - Revize: 8.0 Informace v tomto článku jsou určeny pro produkt:
Strojově přeložený článek Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum. Projděte si také anglickou verzi článku:317375
(http://support.microsoft.com/kb/317375/en-us/
)
| Překlady článku
|




Zpět nahoru








