Oprava: Pomalý výkon při obnovení databáze, pokud existuje mnoho VLFs do protokolu transakcí v SQL Server 2005, SQL Server 2008 nebo SQL Server 2008 R2

Překlady článku Překlady článku
ID článku: 2455009 - Produkty, které se vztahují k tomuto článku.
Společnost Microsoft distribuuje Microsoft SQL Server 2005, 2008 a 2008 R2 opravy jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každá nová verze obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení zahrnuté předchozí SQL Server 2005, 2008 a 2008 R2 release.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Zvažte následující scénář:
  • V počítači nainstalujete Microsoft SQL Server 2005, Microsoft SQL Server 2008 nebo Microsoft SQL Server 2008 R2.
  • Jeden nebo více databází jsou v modelu obnovení celé nebo Hromadně zaevidované.
  • Počáteční velikost souboru protokolu transakcí databáze je malá. Soubor transakcí však roste velké.
  • Na Automatické zvětšování Přírůstek růst souboru protokolu transakcí je nakonfigurován pro malé velikosti. Například Automatické zvětšování přírůstek je nakonfigurován na 1 MB nebo na jedno procento. Nebo, můžete zvýšit pomocí malé ruční růst souboru protokolu transakcí.
  • Soubor protokolu transakcí se zvětší tak, že malý přírůstek. Po chvíli je velký soubor protokolu transakcí.

    Například soubor protokolu transakcí roste ze 100 MB na 10 GB. Soubor protokolu transakcí roste jeden megabajt krok každého růstu.
V této situaci se můžete setkat s následující problémy:
  • Obnovení databáze je pomalý, při spuštění databáze, pokud existuje velké množství práce pro obnovení.

    Například transakce čeká otevřené delší dobu. Nebo velký počet transakcí, které jsou malé velikosti nejsou potvrzena při vypnutí SQL Server restartován. V tomto případě obdržet chybovou zprávu po dobu dlouhých Odhadované využití analytickou fázi, fázi zpět nebo znovu fáze. Došlo k chybě podobná následující a je zaznamenána v souboru protokolu chyb serveru SQL Server 2005:
    Analýza databáze "databáze" (7) je dokončeno 0 % (přibližně 1234 sekund zůstat). Toto je pouze informační zpráva. Není nutná žádná akce uživatele.
  • Obnovení databáze je pomalý, při úplné záložní soubor a sekvenci protokolu další transakce budou obnoveny pokud databáze do režimu online.

    Poznámka: Během operace obnovení přenést databázi v režimu online, můžete S VYUŽITÍM Syntaxe nebo S ÚSPORNÉHO REŽIMU = <options></options> syntaxe.
  • Obnovení zrcadlení databáze je pomalý na partnerský server zrcadlení dvojice.
  • Průběh agent reader protokolu pro transakční replikace se pomalu pro následující operace:
    • Transakční protokol databáze aplikace publisher je analyzován.
    • Příkaz je přidán do distribuční databáze.
    • Transakce jsou replikovány.

    Poznámka: Další informace naleznete na následujícím webu Microsoft Developer Network (MSDN):
    949523 Latence transakční replikace je vysoká v SQL Server 2005, když hodnota vlastnosti "Původní velikost" a hodnotu vlastnosti Autogrowth jsou malé
  • Pomalu dochází, když je vytvořen snímek databáze, pokud jsou zaznamenány mnoho transakcí nebo protokolu transakce zůstat aktivní po dlouhou dobu. K tomuto problému dochází, protože má snímek spuštění obnovení a protokoly transakcí musí být vrácena zpět.
  • Snížení výkonu dochází při použití DBCC CHECKDB kontroluje syntaxi vytvořit skryté databáze snímek, který má plně Obnovit snímek databáze spustit konzistenci.

Příčina

K těmto problémům dochází, protože virtuální souborů protokolu (VLFs) v souboru protokolu transakcí může dojít ke snížení výkonu při SQL Server kontroluje prostřednictvím těchto VLFs během následujících operací:
  • Obnovení databáze
  • Zrcadlení databáze
  • Snímek databáze
  • Databáze transakční replikace protokolu reader aktivity
Pokud soubor protokolu transakcí databáze se pěstuje o malý kousek za podmínek extrémní růst, jsou k dispozici uvnitř jednu sadu souborů protokolu (ldf) transakcí statisíce až stovky tisíc VLFs. Nicméně velké protokolu růst s větším přírůstkem použijte vytvoří oproti pouze několik VLFs. Například několik může být menší než 100 VLFs.

Poznámka: VLFs jsou divize nebo segmenty, které jsou interně používány SQL Server do souboru protokolu transakce.

Řešení

Informace o kumulativní aktualizaci.

SQL Server 2008 R2

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizace 6. Další informace o možnostech získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2489376 Kumulativní aktualizace 6 pro SQL Server 2008 R2
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 R2 opravit vydáním. Doporučujeme zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte kliknutím na číslo článku znalostní báze Microsoft Knowledge Base:
981356 SQL Server 2008 R2 sestavení, které byly vydány po vydání SQL Server 2008 R2

SQL Server 2008 Service Pack 1

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 12 pro SQL Server 2008 Service Pack 1. Další informace o této kumulativní aktualizaci klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2467236 Balíček kumulativní aktualizace 12 pro SQL Server 2008 Service Pack 1
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 release. Společnost Microsoft doporučuje zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte kliknutím na číslo článku znalostní báze Microsoft Knowledge Base:
970365 Vytvoří SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 opravy hotfix jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. Opravy hotfix serveru SQL Server 2008 Service Pack 1 musí použít k instalaci aktualizace Service Pack 1 pro SQL Server 2008. Ve výchozím nastavení všechny opravy hotfix, která je součástí aktualizace service pack serveru SQL Server je součástí další aktualizaci service pack pro SQL Server.

SQL Server 2008 Service Pack 2

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 2 pro SQL Server 2008 Service Pack 2. Další informace o této kumulativní aktualizaci klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2467239 Balíček kumulativní aktualizace 2 pro SQL Server 2008 Service Pack 2
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 release. Společnost Microsoft doporučuje zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte kliknutím na číslo článku znalostní báze Microsoft Knowledge Base:
2402659 Vytvoří SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 2
Microsoft SQL Server 2008 opravy hotfix jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. SQL Server 2008 Service Pack 2 hotfix musí použít k instalaci serveru SQL Server 2008 Service Pack 2. Ve výchozím nastavení všechny opravy hotfix, která je součástí aktualizace service pack serveru SQL Server je součástí další aktualizaci service pack pro SQL Server.

SQL Server 2005 Service Pack 3

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizace 13 pro SQL Server 2005 Service Pack 3. Další informace o této kumulativní aktualizaci klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2438344 Balíček kumulativní aktualizace 13 pro SQL Server 2005 Service Pack 3
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2005 verzí oprav. Společnost Microsoft doporučuje zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte kliknutím na číslo článku znalostní báze Microsoft Knowledge Base:
960598 SQL Server 2005 vytvoří, které byly vydány po vydání SQL Server 2005 Service Pack 3
Opravy hotfix Microsoft SQL Server 2005 jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. Opravy hotfix serveru SQL Server 2005 Service Pack 3 musí použít k instalaci aplikace SQL Server 2005 Service Pack 3. Ve výchozím nastavení všechny opravy hotfix, která je součástí aktualizace service pack serveru SQL Server je součástí další aktualizaci service pack pro SQL Server.

SQL Server 2005 Service Pack 4

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 1 pro SQL Server 2005 Service Pack 4. Další informace o této kumulativní aktualizaci klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2464079 Balíček kumulativní aktualizace 1 pro SQL Server 2005 Service Pack 4
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2005 verzí oprav. Společnost Microsoft doporučuje zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte kliknutím na číslo článku znalostní báze Microsoft Knowledge Base:
2485757 SQL Server 2005 vytvoří, které byly vydány po vydání SQL Server 2005 Service Pack 4
Opravy hotfix Microsoft SQL Server 2005 jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. Opravy hotfix serveru SQL Server 2005 Service Pack 4 musí použít k instalaci serveru SQL Server 2005 Service Pack 4. Ve výchozím nastavení všechny opravy hotfix, která je součástí aktualizace service pack serveru SQL Server je součástí další aktualizaci service pack pro SQL Server.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části "Platí pro".

Jak potíže obejít

Instalaci této opravy hotfix a může zvýšit výkon pro obnovení, restartování serveru SQL Server. Výkon může být například lepší pro následující operace, po instalaci této opravy hotfix restartujte službu SQL Server:
  • Obnovení databáze
  • Zrcadlení databáze
  • Snímek databáze
  • Databáze transakční replikace protokolu reader aktivity

Pokud nemůžete nainstalovat tuto opravu hotfix, můžete provést následující zástupná řešení s cílem zmírnit existující problém a chcete-li zabránit budoucí výskyty.

Zmírnit stávající problém

  • Počkejte na dokončení operace obnovení nebo obnovení

    Pokud databáze není obnovena dochází ke snížení výkonu při obnovení nebo obnovení databáze, bude pravděpodobně čekat na dokončení operace obnovení nebo zotavení. Může například zobrazit v režimu offline nebo obnovení stavu v SQL Server Management Studio (SSMS)-obnovené databáze. Zastavení serveru SQL Server obvykle nabízí od dovozního cla pro pomalé zotavení a může trvat déle, opakovat stejnou fází analýzy využití, znovu fáze nebo vrácení fáze.
  • Zabránit obnovení sekvence protokolu transakce, která obsahuje tisíce VLFs

    Pokud se setkáte s pomalým výkonem při obnovení a obnovit databázi ze záložního souboru, se můžete vyhnout obnovení sekvence protokolu transakcí, které obsahují tisíce VLFs. K identifikaci záložního souboru, který má většině virtuální souborů protokolu zaznamenány, použijte následující příkaz sloupce FirstLSN a LastLSN v záložních souborech protokolu:
    OBNOVENÍ HEADERONLY z DISK='C:\folder\file.trn "

    Můžete rozhodnout, aby se zabránilo obnovení záložních souborů protokolu. Nebo můžete použít ZASTAVIT AT příkaz v OBNOVENÍ příkazy, aby se zabránilo velmi fragmentovaných částí protokoly transakcí. Pokud obnovu neprovádíte plně sekvencí protokolu do poslední chvíle během obnovení scénáře selhání, dojde ke ztrátě dat v databázi serveru SQL Server. Tato ztráta dat dochází, protože ne všechny transakce jsou uloženy. Je tedy kompromis obchodní rozhodnutí. Lze zcela obnovit velmi fragmentovaných transakčního protokolu. Tuto operaci však může trvat několik hodin. Nebo můžete použít ZASTAVIT AT příkaz obnovení Zastavit obnovení před velmi fragmentovaných částí protokolu. Jsou však ztraceny všechny chybějící transakce, které můžete vynechat.

    Poznámka: Bez instalace této opravy hotfix, je obvykle žádné bezpečné využití k urychlené obnovení po restartování serveru SQL Server. SQL Server má vyhledejte seznam VLFs analyzovat soubory protokolu, znovu dokončení transakce a vrácení neúplné transakce dokončete obnovení databáze v režimu online bezpečně přenést. Transakce nelze bezpečně přeskočit během zotavení.

Zabránit budoucí výskyty

  • Nastavit automatické zvětšování přírůstek databáze na odpovídající velikosti

    Pokud velikost přírůstku automatické zvětšování je příliš malá, bude mnoho virtuální souborů protokolu (VLFs) a můžete pozorovat nízký výkon serveru SQL Server. Pokud automatické zvětšování přírůstku je příliš velký, dotazy, které provést transakci, kterou automaticky růst protokolů pravděpodobně čekat dlouhou dobu na dokončení růst. Proto chybu vypršení časového limitu může dojít v SQL Server. Chcete-li vyřešit tyto potíže, můžete nastavit velikost přírůstku automatické zvětšování databáze na odpovídající velikost.
  • Odstranění velkého počtu VLFs a použít ruční růstu

    Mnoho VLFs jsou-li v transakčním logu, zmenšit velikost protokolu o transakcích a umožňují zvýšit před obchodní špičky k poptávce pomocí ruční růstu. Například transakční protokol zvyšuje zpět na přiměřené průměrné velikosti velké zvýšení nebo jeden ruční růstu. Proto velikost transakce protokolu dosáhne maximální kapacity a záložní soubory protokolu jsou naplánovány na základě časté a pravidelné. Navíc může dojít ke zkrácení transakční protokol a VLFs pro protokol o transakcích lze znovu použít v cyklu.
  • Jak zmenšit a zvětšit ručně do transakčního protokolu

    Chcete-li protokol, který má příliš mnoho VLFs, postupujte takto znovu ručně zvětšit a zmenšit velikost protokolu:
    1. Pokud je databáze v modelu obnovení celé nebo Hromadně zaevidované, je nutné zálohovat protokol o transakcích umožňující aktivní VLFs zkrácen a znovu použít.
      BACKUP LOG databasename TO DISK='C:\folder\log_backupfile.trn'

      Další informace o tom, jak zálohovat soubor protokolu transakcí pomocí SSMS naleznete na následujícím webu Microsoft Developer Network (MSDN):
      Jak zálohovat soubor protokolu transakcí pomocí SSMS
      Další informace o tom, jak zálohovat soubor protokolu transakcí pomocí příkazů jazyka Transact-SQL naleznete na následujícím webu MSDN:
      Jak zálohovat soubor protokolu transakcí pomocí příkazů jazyka Transact-SQL
    2. Chcete-li zjistit název logického souboru protokolu transakcí, spusťte jeden z následujících příkazů.
      Příkaz 1
      exec sp_helpfile 
      Prohlášení 2
      select * from sys.sysfiles 
      Chcete-li zmenšit soubor protokolu transakcí do požadované velikosti, použijte následující kód:
      DBCC SHRINKFILE(transactionloglogicalfilename, TRUNCATEONLY) 
    3. Můžete zvětšit velikost souboru protokolu transakcí na odpovídající velikost. Doporučujeme nechat zvětšit velikost Normální špička velikost souboru protokolu transakcí. Proto Automatické zvětšování vyhnout se přírůstek. Chcete-li nastavit velikost protokolu o transakcích, na stránce Vlastnosti databáze v SSMS nebo použijte následující ZMĚNĚ DATABÁZE Syntaxe:
      MODIFY FILE ( NAME = transactionloglogicalfilenae, SIZE=newtotalsize MB) 

      Další informace o tom, jak zvětšit velikost databáze v SSMS naleznete na následujícím webu MSDN:
      Jak zvětšit velikost databáze v SSMS
      Další informace týkající ALTER DATABÁZE UPRAVIT SOUBOR syntaxi naleznete na následujícím webu MSDN:
      Obecné informace o syntaxi vlastnosti upravit soubor databáze

Další informace

Počet segmentů VLF můžete zkontrolovat zobrazením souboru protokolu chyb SQL a potom hledání protokolu pořadové číslo (LSN) v každém souboru zálohy protokolu transakce. První číslice před symbol dvojtečka v LSNs odpovídají počtu LSN.

Například v první informační zpráva pro LSN první číslo je 1. První číslo v druhé informační zpráva pro LSN je však 100001. V tomto scénáři jsou 100 000 VLFs používané mezi první informační zpráva a druhý informační zpráva. Fragmentace transakce protokolu protokol, který má mnoho virtuální souborů protokolu (VLFs) tedy podobná následující:

{Protokolu zálohování. Databáze: mydbname, date(time) vytváření: 2010/07/08(12:36:46), první LSN: 1:5068:70 poslední LSN: 1:5108:1, číslo výpisu zařízení: 1, informace o zařízení: (soubor = 1, typ = disku: {C:\folder\logbackup1.trn}). Toto je pouze informační zpráva. Není nutná žádná akce uživatele.

Protokol zálohování. Databáze: mydbname, date(time) vytváření: 2010/07/08(15:36:46), první LSN: 100001:5108:1 poslední LSN: 100002:5108:1, číslo výpisu zařízení: 1, informace o zařízení: (soubor = 2, typ = disku: {C:\folder\logbackup2.trn}). Toto je pouze informační zpráva. Uživatel není vyžadována žádná akce.}

Následující tabulka obsahuje další informace o produktech nebo nástroje, které automaticky zkontrolovat podmínku, která je popsána v části "Příznaky" v instanci serveru SQL Server a ve verzích serveru SQL Server, proti které je vyhodnocena pravidlo.

Zmenšit tuto tabulkuRozšířit tuto tabulku
Pravidlo softwareNázev pravidlaPopis pravidlaVerze produktu, proti které je vyhodnocena pravidlo
Poradce pro System CenterZ důvodu velikosti protokolu transakcí nebo počet VLF dopadu serveru SQL pomocí transakční replikace protokolu Reader Agent výkonV této instanci serveru SQL Server Poradce pro zjištění přítomnosti transakční replikace s počtem VLFs nebo TLOG podstatně větší velikost. Výkon agenta protokolu Reader je negativně ovlivněny velikost transakční protokol nebo počet VLF. Zmenšete velikost protokolu o transakcích a počet VLF zlepšit výkon agenta protokolu Reader.SQL Server 2008

SQL Server 2008 R2

SQL Server 2012



Odkazy

Další informace o architektuře fyzické transakce protokolu naleznete na následujícím webu MSDN:
Obecné informace o architektuře fyzické transakce protokolu

Další informace o protokolu pořadových čísel (LSN) naleznete na následujícím webu MSDN:
Obecné informace o protokolu pořadových čísel

Další informace o chybě 1413 spuštěním zrcadlení databáze, naleznete na následujícím webu MSDN:
Obecné informace o chybě 1413 při spuštění zrcadlení databáze

Další informace o vlivu doby zotavení databáze struktury souborů protokolu naleznete na následujícím webu MSDN:
Vliv doby zotavení databáze struktury souborů protokolu

Další informace o protokolu transakcí VLFs naleznete na následujícím webu MSDN:
Obecné informace o souboru protokolu transakcí

Další informace o tom, jak vytvořit snímek databáze naleznete na následujícím webu MSDN:
Jak vytvořit snímek databáze
Další informace o přírůstkové Model servis pro SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
935897 Dílčí Model obsluhy je k dispozici z týmu SQL Server doručit opravy hotfix pro nahlášené potíže
Další informace o schéma názvů pro aktualizace serveru SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
822499Nové schéma přidělování názvů balíčkům aktualizací softwaru Microsoft SQL Server pro
Další informace o terminologii aktualizace softwaru najdete kliknutím na následující číslo článku znalostní báze Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Vlastnosti

ID článku: 2455009 - Poslední aktualizace: 6. ledna 2014 - Revize: 6.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Evaluation Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
Klíčová slova: 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2455009 KbMtcs
Strojově přeložený článek
DŮLEŽITÉ: Tento článek je přeložen pomocí softwaru na strojový překlad Microsoft. Nepřesný či chybný překlad lze opravit prostřednictvím technologie Community Translation Framework (CTF). Microsoft nabízí strojově přeložené, komunitou dodatečně upravované články, a články přeložené lidmi s cílem zajistit přístup ke všem článkům v naší znalostní bázi ve více jazycích. Strojově přeložené a dodatečně upravované články mohou obsahovat chyby ve slovníku, syntaxi a gramatice. Společnost Microsoft není odpovědná za jakékoliv nepřesnosti, chyby nebo škody způsobené nesprávným překladem obsahu nebo jeho použitím našimi zákazníky. Více o CTF naleznete na http://support.microsoft.com/gp/machine-translation-corrections/cs.
Projděte si také anglickou verzi článku: 2455009

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