Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Spoločnosť Microsoft distribuuje opravy balíkov Microsoft SQL Server 2005, 2008 a 2008 R2 ako jeden súbor na stiahnutie. Keďže opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchle opravy a všetky opravy zabezpečenia, ktoré boli súčasťou vydania opravy predchádzajúcich SQL Server 2005, 2008 a 2008 R2.

Príznaky

Zvážte nasledujúci scenár:

  • Do počítača nainštalujete microsoft SQL Server 2005, Microsoft SQL Server 2008 alebo Microsoft SQL Server 2008 R2.

  • Najmenej jedna databáza sa nachádza v úplnom alebo hromadne zaznamenanom modeli obnovenia.

  • Počiatočná veľkosť súboru denníka transakcií pre databázu je malá. Súbor transakcie však narastá.

  • Prírastok automatického rastu súboru denníka transakcií je nakonfigurovaný na malú veľkosť. Napríklad rastový prírastok automatického rastu je nakonfigurovaný na jeden megabajt alebo na jedno percento. Alebo môžete zvýšiť súbor denníka transakcií pomocou malého manuálneho rastu.

  • Súbor denníka transakcií narastá o malý prírastok. Po chvíli je súbor denníka transakcií veľký.

    Súbor denníka transakcií napríklad narastie zo sto megabajtov na desať gigabajtov. Súbor denníka transakcií rastie o jeden megabajt prírastok v každom raste.

V tomto scenári sa môžu vyskytnúť nasledujúce problémy:

  • Obnovenie databázy je pomalé, keď sa databáza spustí, ak je na obnovenie veľký objem práce.

    Transakcia napríklad dlho čaká na otvorenie. Alebo veľa transakcií, ktoré majú malú veľkosť, nie sú potvrdené, keď sa SQL Server vypne alebo reštartuje. V tomto prípade sa môže zobraziť chyba dlhého odhadovaného času obnovenia vo fáze analýzy, vo fáze vrátenia späť alebo vo fáze opätovného obnovenia. Chyba sa podobá na nasledujúcu chybu a je prihlásený do súboru denníka chýb SQL Server 2005:

    Analýza databázy mydatabase (7) je dokončená na 0 % (zostáva približne 1 234 sekúnd). Toto je len informačná správa. Nevyžaduje sa žiadna akcia používateľa.

  • Obnovenie databázy je pomalé, keď sa obnoví celý záložný súbor databázy a ak sa databáza prepne online, obnoví sa ďalšia sekvencia denníka transakcií.

    Poznámka: Ak chcete preniesť databázu online počas operácie obnovenia, použite syntax WITH RECOVERY alebo WITH STANDBY = <možnosti> syntaxe.

  • Obnovenie zrkadlenia databázy je na partnerskom serveri v zrkadlovom páre pomalé.

  • Priebeh agenta čítačky denníka pre transakčnú replikáciu je pomalý pre nasledujúce operácie:

    • Denník transakcií databázy vydavateľa sa analyzuje.

    • Príkaz sa pridá do distribučnej databázy.

    • Transakcie sa replikujú.

  • Pomalý výkon sa vyskytuje pri vytvorení snímky databázy, ak sa zaznamená veľa transakcií alebo ak denníky transakcií zostanú aktívne po dlhú dobu. Tento problém sa vyskytuje, pretože snímka musí spustiť obnovenie a denníky transakcií musia byť vrátená späť.

  • Pomalý výkon sa vyskytuje pri použití syntaxe DBCC CHECKDB na vytvorenie skrytej snímky databázy, ktorá musí úplne obnoviť snímku databázy na spustenie kontroly konzistencie.

Príčina

Tieto problémy sa vyskytujú, pretože virtuálne súbory denníka (VLFs) v súbore denníka transakcií môžu spôsobiť pomalý výkon pri SQL Server skenovanie prostredníctvom týchto VLFs počas nasledujúcich operácií:

  • Obnovenie databázy

  • Zrkadlenie databázy

  • Snímka databázy

  • Aktivity čítačky denníka replikácie databázových transakcií

Keď sa súbor denníka transakcií pre databázu rozrastá o malé prírastky počas extrémnych rastových podmienok, v rámci jednej množiny súborov denníka transakcií (.ldf) sa nachádzajú tisíce až státisíce VLF. Veľký rast denníka po veľkých prírastkoch však na porovnanie vytvára len niekoľko VLF. Niekoľko môže byť napríklad menej ako 100 VLF.

Poznámka: VLFs sú divízie alebo segmenty, ktoré používajú interne SQL Server v súbore denníka transakcií.
 

Riešenie

Informácie o kumulatívnej aktualizácii

SQL Server 2008 R2


Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 6. Ďalšie informácie o tom, ako získať tento balík kumulatívnej aktualizácie pre SQL Server 2008 R2, kliknutím na toto číslo článku zobrazíte článok v databáze Microsoft Knowledge Base:

2489376 Kumulatívna aktualizácia balík 6 pre SQL Server 2008 R2 Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a všetky opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opravy SQL Server 2008 R2. Odporúčame, aby ste zvážili použitie najnovšieho vydania opravy, ktoré obsahuje túto rýchlu opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

981356 Zostavy R2 SQL Server 2008, ktoré boli vydané po vydaní SQL Server 2008 R2

SQL Server 2008 Service Pack 1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 12 pre SQL Server 2008 Service Pack 1.

Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opravy SQL Server 2008. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšieho vydania opravy, ktoré obsahuje túto rýchlu opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

970365 Zostavy SQL Server 2008, ktoré boli vydané po vydaní balíka Service Pack 1 SQL Server 2008, boli vytvorené pre konkrétne SQL Server balíky Service Pack SQL Server 2008. Musíte použiť rýchlu opravu balíka SQL Server 2008 Service Pack 1 na inštaláciu balíka SQL Server 2008 Service Pack 1. Predvolene je každá rýchla oprava, ktorá je k dispozícii v balíku SQL Server Service Pack, súčasťou nasledujúceho balíka SQL Server Service Pack.

SQL Server 2008 Service Pack 2


Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 2 pre SQL Server 2008 Service Pack 2.

Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opravy SQL Server 2008. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšieho vydania opravy, ktoré obsahuje túto rýchlu opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

2402659 Zostavy SQL Server 2008, ktoré boli vydané po vydaní balíka Service Pack 2 SQL Server 2008, boli vytvorené pre konkrétne SQL Server balíky Service Pack SQL Server 2008. Musíte použiť rýchlu opravu balíka SQL Server 2008 Service Pack 2 na inštaláciu balíka SQL Server 2008 Service Pack 2. Predvolene je každá rýchla oprava, ktorá je k dispozícii v balíku SQL Server Service Pack, súčasťou nasledujúceho balíka SQL Server Service Pack.

SQL Server 2005 Service Pack 3

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 13 pre SQL Server 2005 Service Pack 3.

Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opravy SQL Server 2005. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšieho vydania opravy, ktoré obsahuje túto rýchlu opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

960598 Zostavy SQL Server 2005, ktoré boli vydané po vydaní balíka Service Pack 3 SQL Server 2005, boli vytvorené pre konkrétne SQL Server balíky Service Pack SQL Server 2005. Musíte použiť rýchlu opravu balíka SQL Server 2005 Service Pack 3 na inštaláciu balíka SQL Server 2005 Service Pack 3. Predvolene je každá rýchla oprava, ktorá je k dispozícii v balíku SQL Server Service Pack, súčasťou nasledujúceho balíka SQL Server Service Pack.
 

SQL Server 2005 Service Pack 4

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 1 pre SQL Server 2005 Service Pack 4.

Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opravy SQL Server 2005. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšieho vydania opravy, ktoré obsahuje túto rýchlu opravu.

Musíte použiť rýchlu opravu balíka SQL Server 2005 Service Pack 4 na inštaláciu balíka SQL Server 2005 Service Pack 4. Predvolene je každá rýchla oprava, ktorá je k dispozícii v balíku SQL Server Service Pack, súčasťou nasledujúceho balíka SQL Server Service Pack.

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.

Alternatívne riešenie

Nainštalovať túto rýchlu opravu a reštartovať SQL Server môže zlepšiť výkon obnovenia. Po nainštalovaní tejto rýchlej opravy a reštartovaní SQL Server sa môže napríklad zlepšiť výkon pre nasledujúce operácie:

  • Obnovenie databázy

  • Zrkadlenie databázy

  • Snímka databázy

  • Aktivity čítačky denníka replikácie databázových transakcií


Ak sa táto rýchla oprava nedá nainštalovať, môžete vykonať nasledujúce alternatívne riešenia na zmiernenie existujúceho problému a zabránenie budúcemu výskytu.

Zmiernenie existujúceho problému

  • Čakanie na dokončenie

    operácie obnovenia alebo obnovenia Ak máte neobnovenú databázu s pomalým výkonom pri obnovovaní alebo obnovení databázy, možno bude potrebné počkať na dokončenie operácie obnovenia alebo obnovenia. V aplikácii SQL Server Management Studio (SSMS) pre neobnovenú databázu sa napríklad môže zobraziť stav offline alebo stav obnovenia. Zastavenie SQL Server zvyčajne neponúka žiadnu úľavu pre pomalé obnovenie a môže trvať dlhšie, kým zopakuje rovnakú fázu analýzy obnovenia, znova alebo vráti fázu späť.

  • Vyhnite sa obnoveniu sekvencie denníka transakcií, ktorá obsahuje tisíce VLF

    Ak sa počas obnovy a obnovenia databázy vyskytne pomalý výkon pomocou záložného súboru, môžete sa vyhnúť obnoveniu sekvencií denníka transakcií, ktoré obsahujú tisíce VLFs. Ak chcete identifikovať záložný súbor, ktorý obsahuje najviac zaznamenaných virtuálnych súborov denníka, použite nasledujúci príkaz na zobrazenie stĺpcov FirstLSN a LastLSN v súboroch zálohovania denníka:
    OBNOVIŤ HEADERONLY Z DISKU = 'C:\folder\file.trn'

    Môžete sa rozhodnúť, že nebudete obnovovať záložné súbory denníka. Alebo môžete použiť príkaz STOP AT v príkazoch RESTORE, aby ste sa vyhli vysoko fragmentovaným častiam denníkov transakcií. Ak počas scenára obnovenia zlyhania úplne neobnovíte postupnosť denníkov až do posledného časového bodu, v databáze sa SQL Server vyskytne strata údajov. Táto strata údajov nastane, pretože sa neuchovajú všetky transakcie. Preto existuje obchodné kompromis rozhodnutie. Môžete úplne obnoviť vysoko fragmentovaný denník transakcií. Táto operácia však môže trvať mnoho hodín. Alebo môžete použiť príkaz STOP AT v zotavenie zastaviť obnovenie pred vysoko fragmentované časti denníka. Všetky chýbajúce transakcie, ktoré vynecháte, sa však stratia.

    Poznámka: Bez inštalácie tejto rýchlej opravy, tam je zvyčajne žiadny bezpečný použitie pre zrýchlené obnovenie po reštarte SQL Server. SQL Server je potrebné vyhľadať zoznam VLF na analýzu súborov denníka, zopakovanie dokončených transakcií a následné vrátenie neúplných transakcií na dokončenie obnovenia, aby bola databáza bezpečne online. Počas obnovenia nemôžete bezpečne vynechať transakcie.

Zabránenie budúcemu výskytu

  • Nastavenie automatického prírastku databázy na príslušnú veľkosť

    Ak je prírastok automatického riadka príliš malý, bude existovať veľa súborov virtuálnych denníkov (VLFs) a v SQL Server sa môže vyskytnúť pomalý výkon. Ak je veľkosť prírastku automatického riadka príliš veľká, dotazy, pri ktorých sa denníky transakcií automaticky zväčšujú, budú musieť dlho čakať na dokončenie rastu. Preto sa v SQL Server môže vyskytnúť chyba časového výkazu. Ak chcete tieto problémy obísť, môžete nastaviť veľkosť prírastku automatického riadka databázy na príslušnú veľkosť.

  • Eliminujte veľký počet VLF a použite manuálny rast

    Ak sa v denníku transakcií nachádza veľa VLF, znížte veľkosť denníka transakcií a zvýšte ho pred vrcholom podnikania, aby ste uspokojili dopyt pomocou manuálneho rastu. Denník transakcií sa napríklad vráti späť na primeranú priemernú veľkosť vo veľkom prírastku alebo v jednom manuálnom raste. Veľkosť denníka transakcií preto dosahuje maximálnu kapacitu a záložné súbory denníka sú naplánované často a pravidelne. Okrem toho sa denník transakcií môže skrátiť a VLF pre denník transakcií je možné opakovane použiť v rámci cyklu.

  • Ako zmenšiť a zvýšiť denník transakcií manuálne

    Ak chcete opraviť denník, ktorý obsahuje príliš veľa VLF, zmenšíte denník podľa týchto krokov a znova ho zväčnete manuálne:

    1. Ak sa databáza nachádza v úplnom alebo hromadne zaznamenanom modeli obnovenia, je potrebné zálohovať denník transakcií, aby bolo možné skrátiť aktívne VLFs a opätovne ich použiť. NÁZOV DATABÁZY DENNÍKA ZÁLOHY NA DISK='C:\folder\log_backupfile.trn'
      Ďalšie informácie o zálohovaní súboru denníka transakcií pomocou nástroja SSMS nájdete na nasledujúcej webovej lokalite služby Microsoft Developer Network (MSDN):

      Ako zálohovať súbor denníka transakcií pomocou SSMSĎalšie informácie o zálohovaní súboru denníka transakcií pomocou príkazov Transact-SQL nájdete na nasledujúcej webovej lokalite MSDN:

      Ako zálohovať súbor denníka transakcií pomocou príkazov Transact-SQL

    2. Ak chcete určiť logický názov súboru denníka transakcií, spustite jeden z nasledujúcich príkazov.
      Príkaz 1
      exec sp_helpfile statement 2
      select * from sys.sysfiles Ak chcete zmenšiť veľkosť súboru denníka transakcií na požadovanú veľkosť, použite nasledujúci kód:DBCC SHRINKFILE(transactionloglogicalfilename, TRUNCATEONLY)

    3. Veľkosť súboru denníka transakcií môžete zväčšiť na príslušnú veľkosť. Odporúčame, aby ste veľkosť súboru denníka transakcií zväčšili na maximálnu bežnú veľkosť. Preto sa vyhnete automatickému prírastku. Ak chcete nastaviť veľkosť denníka transakcií, použite stránku Vlastnosti databázy v nástroji SSMS alebo použite nasledujúcu syntax ALTER DATABASE:MODIFY FILE ( NAME = transactionloglogicalfilenae, SIZE=newtotalsize MB)
      Ďalšie informácie o tom, ako zväčšiť veľkosť databázy v SSMS, nájdete na nasledujúcej webovej lokalite MSDN:

      Zväčšenie veľkosti databázy v nástroji SSMSĎalšie informácie o syntaxi ALTER DATABASE MODIFY FILE nájdete na nasledujúcej webovej lokalite MSDN:

      Všeobecné informácie o syntaxi ALTER DATABASE MODIFY FILE

Ďalšie informácie

Počet segmentov VLF môžete skontrolovať tak, že skontrolujete súbor denníka chýb SQL a potom nájdete poradové číslo denníka (LSN) v každom súbore zálohy denníka transakcií. Prvé číslice pred symbolom dvojbodky v LSN zodpovedajú číslu LSN.

Napríklad prvé číslo v prvej informačnej správe pre LSN je 1. Prvé číslo v druhej informačnej správe pre LSN je však 100001. V tomto scenári existuje 100 000 VLF, ktoré sa používajú medzi časom prvej informačnej správy a druhou informačnou správou. Preto denník fragmentovaných transakcií, ktorý obsahuje veľa virtuálnych súborov denníka (VLFs), sa podobá na nasledujúce:
 

{Denník bol zálohovaný. Databáza: mydbname, creation date(time): 2010/07/08(12:36:46), first LSN: 1:5068:70, last LSN: 1:5108:1, number of dump devices: 1, device information: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}). Toto je len informačná správa. Nevyžaduje sa žiadna akcia používateľa.

Denník bol zálohovaný. Databáza: mydbname, creation date(time): 2010/07/08(15:36:46), first LSN: 100001:5108:1, last LSN: 100002:5108:1, number of dump devices: 1, device information: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}). Toto je len informačná správa. Nevyžaduje sa žiadna akcia používateľa.}

Nasledujúca tabuľka obsahuje ďalšie informácie o produktoch alebo nástrojoch, ktoré automaticky kontroluujú stav popísaný v časti Príznaky vo vašej inštancii SQL Server a vo verziách SQL Server, pre ktoré sa pravidlo vyhodnocuje.
 

Softvér pravidiel

Názov pravidla

Popis pravidla

Verzie produktov, proti ktorým sa pravidlo hodnotí

Poradca pre systémové centrum

SQL Server s replikáciou transakcií môže byť výkon agenta čítačky denníka ovplyvnený z dôvodu veľkosti denníka transakcií alebo počtu funkcií VLF.

V tejto inštancii SQL Server poradca zistil replikáciu transakcií prítomnosti s počtom VLFs alebo veľkosťou TLOG podstatne väčšou. Výkon agenta čítačky denníka je negatívne ovplyvnený veľkosťou denníka transakcií alebo počtom VLF. Znížte veľkosť denníka transakcií a počet VLF na zlepšenie výkonu agenta čítačky denníka.

SQL Server 2008

SQL Server 2008 R2

SQL Server 2012



 

Odkazy

Ďalšie informácie o fyzickej architektúre denníka transakcií nájdete na nasledujúcej webovej lokalite MSDN:

Všeobecné informácie o fyzickej architektúre denníka

transakcií Ďalšie informácie o poradových číslach denníka (LSN) nájdete na nasledujúcej webovej lokalite MSDN:

Všeobecné informácie o poradových číslach

denníka Ďalšie informácie o chybe 1413 pri spustení zrkadlenia databázy nájdete na nasledujúcej webovej lokalite MSDN:

Všeobecné informácie o chybe 1413 pri spustení

zrkadlenia databázy Ďalšie informácie o tom, ako môže štruktúra súboru denníka ovplyvniť čas obnovenia databázy, nájdete na nasledujúcej webovej lokalite MSDN:

Ako môže štruktúra súboru denníka ovplyvniť čas

obnovenia databázy Ďalšie informácie o VLFs denníka transakcií nájdete na nasledujúcej webovej lokalite MSDN:

Všeobecné informácie o súbore

denníka transakcií Ďalšie informácie o vytvorení snímky databázy nájdete na nasledujúcej webovej lokalite MSDN:

Vytvorenie snímky databázyĎalšie informácie o modeli prírastkovej údržby pre SQL Server zobrazíte kliknutím na číslo nasledujúceho článku v databáze Microsoft Knowledge Base:

935897 Tím SQL Server má k dispozícii model prírastkovej údržby na poskytovanie rýchlych opráv hlásených problémov. Ďalšie informácie o schéme pomenovania pre aktualizácie SQL Server zobrazíte kliknutím na číslo nasledujúceho článku v databáze Microsoft Knowledge Base:

822499Nová schéma pomenovania pre balíky aktualizácií softvéru Microsoft SQL Server Ďalšie informácie o terminológii aktualizácií softvéru zobrazíte kliknutím na nasledujúce číslo článku v databáze Microsoft Knowledge Base:

824684 Popis štandardnej terminológie, ktorá sa používa na popis aktualizácií softvéru spoločnosti Microsoft

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×