ID článku: 873235 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

ÚVOD

Tento článek popisuje kroky, které je třeba provést, pokud se protokoly transakcí příliš zvětší. Zaplněné protokoly transakcí mohou způsobit, že nebude možné používat databázi serveru Microsoft SQL Server. Tento článek popisuje, jak zkrátit a zmenšit protokoly transakcí a také jak zabránit neočekávanému nárůstu velikosti protokolů transakcí.

Další informace

Omezení velikosti protokolu transakcí

Chcete-li se zotavit ze situace, kdy jsou protokoly transakcí zaplněny, je třeba omezit velikost protokolů transakcí. V takovém případě je třeba zkrátit neaktivní transakce v protokolu transakcí a zmenšit velikost protokolu transakcí.

Poznámka: Protokoly transakcí jsou velmi důležité pro zachování transakční integrity databáze. Proto nelze soubory protokolů transakcí odstranit ani poté, co vytvoříte zálohu databáze a protokolů transakcí.


Další informace týkající se zmenšení velikosti protokolu transakcí naleznete na následujícím webu společnosti Microsoft:
Zmenšení protokolu transakcí pro SQL Server 2000
Zmenšení protokolu transakcí pro SQL Server 2005

Zkrácení neaktivních transakcí v protokolu transakcí

Jsou-li protokoly transakcí zaplněny, je třeba okamžitě vytvořit zálohu souboru protokolu transakcí. Při vytváření zálohy souborů protokolů transakcí SQL Server automaticky zkrátí neaktivní část protokolu transakcí. Neaktivní část souboru protokolu transakcí obsahuje dokončené transakce, a proto soubor protokolu transakcí již není serverem SQL Server v průběhu procesu obnovení používán. SQL Server využije toto zkrácené neaktivní místo v protokolu transakcí místo toho, aby umožnil další nárůst velikosti protokolu transakcí a využití více místa.

Další informace o aspektech, které je třeba vzít v úvahu při vytváření zálohy protokolů transakcí a obnovení záloh protokolů transakcí, naleznete v následujících tématech na webu SQL Server Books Online:
  • Zálohy protokolů transakcí
  • Zálohování a obnovení protokolů transakcí
Neaktivní transakce lze ze souboru protokolu transakcí rovněž odstranit pomocí metody Zkrátit. Další informace o zkrácení protokolů transakcí naleznete v tématu věnovaném zkrácení protokolu transakcí na webu SQL Server Books Online.

Důležité: Jakmile ručně zkrátíte soubory protokolů transakcí, je třeba vytvořit úplnou zálohu databáze. Teprve pak je možné vytvořit zálohu protokolu transakcí.

Další informace o potížích, k nimž může dojít při zkrácení souborů protokolů transakcí, naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
62866 Důvody, proč protokol transakcí SQL není zkrácen

Zmenšení souboru protokolu transakcí

Operace zálohování ani metoda Zkrátit nezmenšují velikost souboru protokolu. Chcete-li snížit velikost souboru protokolu transakcí, je třeba soubor protokolu transakcí zmenšit. Chcete-li zmenšit velikost souboru protokolu transakcí na požadovanou velikost a odebrat nepoužité stránky, je třeba použít operaci DBCC SHRINKFILE. Příkaz DBCC SHRINKFILE jazyka Transact-SQL může zmenšit pouze neaktivní část souboru protokolu.

Poznámka: Příkaz DBCC SHRINKFILE jazyka Transact-SQL nemůže zkrátit protokol a zmenšit použité místo uvnitř souboru protokolu samostatně.

Další informace o zmenšení souborů protokolů transakcí naleznete v následujících tématech na webu SQL Server Books Online:
  • Zmenšení protokolu transakcí
  • DBCC SHRINKFILE
Další informace o postupu při zmenšení souborů protokolů transakcí v prostředí SQL Server 2000 naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
272318 Zmenšení protokolu transakcí v prostředí SQL Server 2000 pomocí příkazu DBCC SHRINKFILE
Další informace o potížích, k nimž může dojít při zmenšení souborů protokolů transakcí, naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
814574 PRB: Chybová zpráva: Soubor protokolu nelze zmenšit se zobrazí při zmenšení souboru protokolu transakcí
324432 PRB: Příkazy DBCC SHRINKFILE a SHRINKDATABASE nefungují vzhledem k řídce zaplněným sloupcům typu text, ntext nebo image

Jak zabránit neočekávanému nárůstu velikosti protokolů transakcí

Chcete-li zabránit neočekávanému nárůstu velikosti protokolů transakcí, zvažte použití jedné z následujících metod:
  • Nastavte velikost souborů protokolů transakcí na velkou hodnotu a vyhněte se tak automatickému rozšíření souborů protokolů transakcí.
  • Poté, do důkladně vyhodnotíte optimální velikost paměti, nakonfigurujte automatické rozšíření souborů protokolů transakcí s využitím paměťových jednotek, a nikoli procent.

    Další informace o aspektech, které je třeba vzít v úvahu při konfiguraci možnosti Autogrow, naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
    315512 Důležité informace pro konfiguraci možností Autogrow a Autoshrink
  • Změňte model obnovení. Dojde-li k havárii nebo poškození dat, je třeba obnovit databázi, aby byla zachována konzistence dat a transakční integrita databáze. Na základě toho, do jaké míry jsou data v databázi důležitá, můžete použít jeden z následujících modelů obnovení a určit, jak jsou data zálohována a jak jste vystaveni možné ztrátě dat:
    • Jednoduchý model obnovení
    • Úplný model obnovení
    • Model hromadně protokolovaného obnovení
    Při použití jednoduchého modelu obnovení můžete databázi obnovit do stavu odpovídajícího poslední vytvořené záloze databáze. Při použití úplného modelu obnovení nebo modelu hromadně protokolovaného obnovení můžete databázi obnovit do bodu, kdy došlo k chybě, a to díky obnovení databáze pomocí záloh souborů protokolů transakcí.

    Ve výchozím nastavení je na serveru SQL Server 2000 a SQL Server 2005 jako model obnovení pro databázi serveru SQL Server nastaven úplný model obnovení. Při použití úplného modelu obnovení jsou pravidelné zálohy protokolu transakcí použity k tomu, aby velikost souboru protokolu transakcí nenarostla neúměrně vzhledem k velikosti databáze. Pokud však nejsou prováděny pravidelné zálohy protokolu transakcí, soubor protokolu transakcí naroste, zaplní disk a nebude možné provádět žádné úpravy dat v databázi serveru SQL Server.

    Pokud nechcete v průběhu operace zotavení po havárii využívat soubory protokolu transakcí, můžete změnit model obnovení z úplného na jednoduchý.
  • Pravidelně zálohujte soubory protokolů transakcí. Z protokolu transakcí tak budou odstraněny neaktivní transakce.
  • Navrhujte transakce tak, aby byly malé.
  • Zajistěte, aby žádné nepotvrzené transakce nepokračovaly v běhu po neomezenou dobu.
  • Naplánujte každodenní zpracování aktualizační statistiky.
  • K defragmentaci indexů s cílem zlepšit výkon v provozním prostředí, použijte místo příkazu DBCC DBREINDEX jazyka Transact-SQL příkaz DBCC INDEXDEFRAG jazyka Transact-SQL. Pokud spustíte příkaz DBCC DBREINDEX a databáze serveru SQL Server je v režimu úplného obnovení, může dojít k výraznému nárůstu protokolu transakcí. Příkaz DBCC INDEXDEGRAG navíc na rozdíl od příkazu DBCC DBREINDEX nezamyká na dlouhou dobu.

    Další informace o defragmentaci indexů serveru SQL Server 2000 naleznete na následujícím webu společnosti Microsoft:
    Doporučené postupy pro defragmentaci indexů serveru Microsoft SQL Server 2000
    Pokud je v rámci plánu údržby databáze třeba spustit příkaz DBCC DBREINDEX, je nutné rozdělit tuto úlohu do několika dílčích úloh. Dále je třeba mezi spuštěním jednotlivých úloh často vytvářet zálohy protokolů transakcí.

Další informace o souborech protokolů transakcí

V prostředí SQL Server 2000 a SQL Server 2005 obsahuje každá databáze nejméně jeden datový soubor a jeden soubor protokolu transakcí. SQL Server ukládá data fyzicky v datovém souboru. V souboru protokolu transakcí jsou uloženy podrobné informace o úpravách, které jste provedli v databázi serveru SQL Server, a o transakcí, jejichž prostřednictvím byly jednotlivé úpravy provedeny. Vzhledem k tomu, že transakční integrita je považována za základní vnitřní charakteristiku serveru SQL Server, nelze v prostředí SQL Server vypnout protokolování podrobných údajů o jednotlivých transakcích.

Soubor protokolu transakcí je logicky rozdělen do menších segmentů, pro něž je používáno označení virtuální soubory protokolu. V prostředí SQL Server 2000 můžete soubor protokolu transakcí nakonfigurovat tak, aby se zvětšoval podle potřeby. Zvětšení souboru protokolu transakcí může být řízeno uživatelem nebo může být nakonfigurováno tak, že bude využito veškeré dostupné místo na disku. Všechny úpravy, které SQL Server provádí s velikostí souboru protokolu transakcí, jako je například zkrácení souborů protokolů transakcí nebo nárůst velikosti souborů protokolů transakcí, jsou prováděny v jednotkách virtuálních souborů protokolu.

Je-li soubor protokolu transakcí odpovídající databázi serveru SQL Server zaplněn a nastavili jste možnost automatického nárůstu velikosti souborů protokolů transakcí, velikost soubor protokolu transakcí naroste v jednotkách virtuálních souborů protokolu. Může se stát, že se soubor protokolu transakcí velmi zvětší a již není k dispozici volné místo na disku. Pokud soubor protokolu transakcí naroste, dokud nevyužije veškeré volné místo na disku a již se nadále nemůže zvětšovat, nebude v databázi možné provádět žádné operace úpravy dat. SQL Server navíc může databázi označit jako podezřelou, protože nebude k dispozici dostatek místa pro expanzi protokolu transakcí.

Další informace o situacích, které mohou způsobit neočekávaný nárůst velikosti souboru protokolu transakcí, naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
317375 Protokol transakcí na serveru SQL Server neočekávaným způsobem narůstá nebo je zaplněn

Odkazy

Další informace týkající se řešení potíží s dodatečnými požadavky na místo na disku během procesu obnovení, naleznete v tématu věnovaném nedostatku místa na disku na webu SQL Server Books Online. Další informace o architektuře protokolů transakcí naleznete v následujících tématech na webu SQL Server Books Online:
  • Architektura protokolů transakcí
  • Logická architektura protokolů transakcí
  • Fyzická architektura protokolů transakcí
Další informace týkající se modelů obnovení v prostředí SQL Server 2000 naleznete v následujících tématech na webu SQL Server Books Online:
  • Výběr modelu obnovení
  • Jednoduché obnovení
  • Úplné obnovení
  • Hromadně protokolované obnovení
  • Přepínání modelů obnovení

Vlastnosti

ID článku: 873235 - Poslední aktualizace: 29. února 2012 - Revize: 5.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbsqlsetup kbdiskmemory kbdisasterrec kbhowto kbconfig kbinfo kbcip KB873235

Dejte nám zpětnou vazbu

 

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