Společnost Microsoft distribuuje Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) nebo Microsoft SQL Server 2008 nebo Microsoft SQL Server 2012 v jednom souboru ke stažení. Vzhledem k tomu, že jsou opravy kumulativní, každá nová verze obsahuje všechny opravy hotfix a všechny aktualizace zabezpečení, které byly součástí předchozích verzí systému SQL Server 2008 R2 Service Pack 1 (SP1) nebo SQL Server 2008 nebo Microsoft SQL Server 2012 Update.
Příznaky
Obnovení databáze v Microsoft SQL serveru 2008 R2 nebo Microsoft SQL serveru 2008 nebo Microsoft SQL serveru 2012 může nějakou dobu trvat.
Příčina
K tomuto problému dochází, protože když je v databázi hodně VLFs, sestavte seznam virtuálních protokolů (VLF) příliš dlouho.
Řešení
Informace o kumulativní aktualizaci
SQL Server 2012
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 1 pro SQL Server 2012. Další informace o tomto kumulativním balíčku aktualizací najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2679368 Kumulativní aktualizace 1 pro SQL Server 2012Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2012 Oprava. Společnost Microsoft doporučuje zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2692828 Buildy SQL Server 2012, které byly vydány po vydání SQL Server 2012 Na instalaci SQL serveru 2012 musíte použít opravu hotfix systému SQL Server 2012.
SQL Server 2008 Service Pack 2
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 8 pro SQL Server 2008 Service Pack 2. Další informace o tomto kumulativním balíčku aktualizací najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2648096 Kumulativní aktualizace 8 pro SQL Server 2008 Service Pack 2Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 Oprava. Společnost Microsoft doporučuje zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2402659 Buildy SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 2 Pro určité aktualizace SQL serveru jsou vytvořené opravy hotfix Microsoft SQL serveru 2008. Na instalaci SQL serveru 2008 Service Pack 2 musíte použít opravu hotfix systému SQL Server 2008 Service Pack 2. Ve výchozím nastavení je každá oprava hotfix, která je součástí aktualizace Service Pack systému SQL Server, součástí další aktualizace Service Pack systému SQL Server.
SQL Server 2008 Service Pack 3
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 3 pro SQL Server 2008 Service Pack 3. Další informace o tomto kumulativním balíčku aktualizací najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2648098 Kumulativní balíček aktualizací 3 pro SQL Server 2008 Service Pack 3Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 Oprava. Společnost Microsoft doporučuje zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2629969 Buildy SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 3 Pro určité aktualizace SQL serveru jsou vytvořené opravy hotfix Microsoft SQL serveru 2008. Na instalaci SQL serveru 2008 Service Pack 3 musíte použít opravu hotfix systému SQL Server 2008 Service Pack 3. Ve výchozím nastavení je každá oprava hotfix, která je součástí aktualizace Service Pack systému SQL Server, součástí další aktualizace Service Pack systému SQL Server.
Kumulativní aktualizace 11 pro SQL Server 2008 R2
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 11. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2008 R2, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2633145 Kumulativní aktualizace 11 pro SQL Server 2008 R2Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 R2 fix release. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
981356 Buildy SQL Server 2008 R2 vydaná po vydání SQL serveru 2008 R2
Kumulativní aktualizace 4 pro SQL Server 2008 R2 SP1
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 4. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2008 R2 SP1, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2633146 Kumulativní aktualizace 4 pro SQL Server 2008 R2 SP1Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze systému SQL Server 2008 R2 s aktualizací SP1. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2567616 Buildy SQL Server 2008 R2 vydaná po vydání SQL serveru 2008 R2 SP1
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Další informace
Počet VLF segmentů můžete zkontrolovat v souboru protokolu chyb SQL a pak najít pořadové číslo položky (LSN) v každém záložním souboru protokolu transakcí. První číslice před symbolem dvojtečky v LSNs odpovídají číslu položky LSN. První číslo první informační zprávy pro hodnotu LSN je třeba 1. První číslo druhé informační zprávy pro hodnotu LSN je však 100001. V tomto scénáři jsou 100 000 VLFs, které se používají mezi časem první informační zprávy a druhé informační zprávy. Proto bude protokol protokolovaných fragmentovaných transakcí, který má mnoho virtuálních souborů protokolu (VLFs), vypadat takto:
Byl zálohován {log. Databáze: mydbname, datum vytvoření (čas): 2010/07/8 (12:36:46), první hodnota LSN: 1:5068:70, poslední hodnota LSN: 1:5108:1, počet zařízení se zápisem: 1, informace o zařízení: (FILE = 1, TYPE = DISK: {' C:\folder\logbackup1.trn '}). Tato zpráva je jenom informační. Není třeba žádné akce uživatele. Protokol byl zálohován. Databáze: mydbname, datum vytvoření (čas): 2010/07/8 (15:36:46), první hodnota LSN: 100001:5108:1, poslední hodnota LSN: 100002:5108:1, počet vykládacích zařízení: 1, informace o zařízení: (FILE = 2; TYPE = DISK: {' C:\folder\logbackup2.trn '}). Tato zpráva je jenom informační. Není třeba žádné akce uživatele.}
Odkazy
Další informace o pořadových číslech (LSN) najdete na následujícím webu MSDN:
Obecné informace o pořadových číslech protokolů
Další informace o tom, jak může struktura souborů protokolu ovlivnit dobu obnovení databáze, najdete na následujícím webu MSDN:
Vliv struktury souborů protokolu na dobu obnovení databázeDalší informace o VLFs transakčního protokolu najdete na následujícím webu MSDN:
Alternativní řešení
-
Počkejte na dokončení operace obnovení nebo obnovení.Pokud máte Neobnovenou databázi, která má při obnovení nebo obnovení databáze pomalý výkon, možná budete muset počkat na dokončení operace obnovení nebo obnovení. Ve službě SQL Server Management Studio (SSMS) se může například zobrazit stav offline nebo obnovení stavu databáze, která není obnovená. Zastavení SQL serveru obvykle neposkytuje žádné úlevy pro pomalé obnovení a může to trvat déle, než se opakuje stejná fáze analýzy obnovení, fáze znovu nebo zpět.
-
Neobnovujte sekvenci protokolu transakcí, která obsahuje tisíce VLFsPokud se při obnovení a obnovení databáze pomocí záložního souboru setkáte pomalu, můžete se vyhnout obnovení sekvencí transakčního protokolu, které obsahují tisíce VLFs. Pokud chcete identifikovat záložní soubor s nejvyšším zaznamenaným virtuálním souborem protokolu, použijte následující příkaz k zobrazení sloupců FirstLSN a LastLSN v souboru protokolu zálohování: obnovení HEADERONLY z disku = ' C:\folder\file.trn '. můžete se rozhodnout neobnovit záložní soubory protokolu. Nebo můžete použít příkaz STOP AT v příkazech obnovit, abyste předešli nefragmentovaným částem protokolů transakcí. Pokud neprovedete úplné obnovení sekvencí protokolů až do posledního bodu v čase při zotavení po selhání, dojde ke ztrátě dat v databázovém serveru SQL. Tato ztráta dat nastane, protože se neuchovávají všechny transakce. Proto existuje rozhodnutí o kompromisech firmy. Můžete úplně obnovit vysoce fragmentovaný transakční protokol. Tato operace však nemusí spoustu hodin trvat. Nebo můžete pomocí příkazu STOP AT v obnovení zastavit obnovení před vysoce fragmentován částí protokolu. Všechny chybějící transakce, které vynecháte, však ztratí.Poznámka Bez instalace této opravy hotfix se obvykle nepoužívá pro urychlené obnovení žádné bezpečné, po restartování SQL serveru. SQL Server musí vyhledat seznam VLFs, abyste mohli analyzovat soubory protokolu, opakovat dokončené transakce a pak vrátit nedokončené transakce, abyste mohli dokončit obnovení databáze online. Během obnovení nelze transakce bezpečně přeskočit.