Microsoft distribuuje opravy 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 opravy jsou kumulativní, každá nová verze obsahuje všechny opravy hotfix a všechny aktualizace zabezpečení, které byly součástí předchozí aktualizace SQL Server 2008 R2 Service Pack 1 (SP1) nebo SQL Server 2008 nebo Microsoft SQL Server 2012.
Příznaky
Obnovení databáze v Microsoft SQL Server 2008 R2, Microsoft SQL Server 2008 nebo Microsoft SQL Server 2012 může trvat dlouho.
Příčina
K tomuto problému dochází, protože sestavení seznamu virtuálních souborů protokolu (VLF) trvá dlouhou dobu, když je v databázi mnoho virtuálních souborů.
Řešení
Informace o kumulativní aktualizaci
SQL Server 2012
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 1 pro SQL Server 2012. Další informace o tomto balíčku kumulativní aktualizace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2679368 Balíček kumulativní aktualizace 1 pro SQL Server 2012Note Vzhledem k tomu, že sestavení jsou kumulativní, obsahuje každá nová verze oprav všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze SQL Server 2012. Společnost Microsoft doporučuje zvážit použití nejnovější verze 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í verze SQL Server 2012. Na instalaci SQL Server 2012 musíte použít opravu hotfix SQL Server 2012.
SQL Server 2008 Service Pack 2
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 8 pro SQL Server 2008 Service Pack 2. Další informace o tomto balíčku kumulativní aktualizace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2648096 Balíček kumulativní aktualizace 8 pro SQL Server 2008 Service Pack 2Note Protože sestavení jsou kumulativní, každá nová verze oprav obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2008 opravy. Společnost Microsoft doporučuje zvážit použití nejnovější verze 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í aktualizace Service Pack 2 SQL Server 2008 Microsoft SQL Server 2008, jsou vytvořeny pro konkrétní SQL Server aktualizace Service Pack. Musíte použít opravu hotfix SQL Server 2008 Service Pack 2 instalace SQL Server 2008 Service Pack 2. Ve výchozím nastavení jsou všechny opravy hotfix, které jsou poskytovány v SQL Server service pack, součástí další SQL Server service pack.
SQL Server 2008 Service Pack 3
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 3 pro SQL Server 2008 Service Pack 3. Další informace o tomto balíčku kumulativní aktualizace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2648098 Balíček kumulativní aktualizace 3 pro SQL Server 2008 Service Pack 3Note Protože sestavení jsou kumulativní, každá nová verze oprav obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze SQL Server 2008. Společnost Microsoft doporučuje zvážit použití nejnovější verze 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 vydané po vydání aktualizace Service Pack 3 SQL Server 2008 Microsoft SQL Server 2008 jsou vytvořeny pro konkrétní SQL Server aktualizace Service Pack. Musíte použít SQL Server 2008 Service Pack 3 opravy hotfix instalace SQL Server 2008 Service Pack 3. Ve výchozím nastavení jsou všechny opravy hotfix, které jsou poskytovány v SQL Server service pack, součástí další SQL Server service pack.
Balíček kumulativní aktualizace 11 pro SQL Server 2008 R2
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 11. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2633145 Balíček kumulativní aktualizace 11 pro SQL Server 2008 R2Note Vzhledem k tomu, že sestavení jsou kumulativní, obsahuje každá nová verze oprav všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze SQL Server 2008 R2. Doporučujeme zvážit použití nejnovější verze 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í verze SQL Server 2008 R2
Balíček kumulativní aktualizace 4 pro SQL Server 2008 R2 SP1
Oprava tohoto problému byla poprvé vydána v kumulativní aktualizaci 4. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 SP1 naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2633146 Balíček kumulativní aktualizace 4 pro SQL Server 2008 R2 SP1Note Protože sestavení jsou kumulativní, každá nová verze oprav obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze SQL Server 2008 R2 SP1. Doporučujeme zvážit použití nejnovější verze 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 SQL Server 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 segmentů VLF můžete zkontrolovat tak, že si projdete soubor protokolu chyb SQL a pak vyhledáte pořadové číslo protokolu (LSN) v každém záložním souboru transakčního protokolu. První číslice před symbolem dvojtečky v sítích LSN odpovídají číslu LSN.Například první číslo v první informační zprávě pro LSN je 1. První číslo ve druhé informační zprávě pro LSN je však 100001. V tomto scénáři existuje 100 000 virtuálních souborů, které se používají mezi časem první informační zprávy a druhé informační zprávy. Proto protokolovaný fragmentovaný transakční protokol, který obsahuje mnoho virtuálních Files protokolů (VDF), se podobá následujícímu:
{Protokol byl zálohován. Databáze: mydbname, datum vytvoření (čas): 2010/07/08(12:36:46), první LSN: 1:5068:70, poslední LSN: 1:5108:1, počet zařízení s výpisem paměti: 1, informace o zařízení: (FILE=1, TYPE=DISK: {'C:\folder\logbackup1.trn'}). Toto je pouze informační zpráva. Nevyžaduje se žádná akce uživatele.Protokol se zálohoval. Databáze: mydbname, datum vytvoření(čas): 2010/07/08(15:36:46), první LSN: 100001:5108:1, poslední LSN: 100002:5108:1, počet zařízení s výpisem paměti: 1, informace o zařízení: (FILE=2, TYPE=DISK: {'C:\folder\logbackup2.trn'}). Toto je pouze informační zpráva. Nevyžaduje se žádná akce uživatele.}
Odkazy
Další informace o pořadových číslech protokolů (LSN) naleznete 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, naleznete na následujícím webu MSDN:
Vliv struktury souboru protokolu na dobu obnovení databázeDalší informace o virtuálních lef transakčních protokolů naleznete na následujícím webu MSDN:
Řešení
-
Počkejte na dokončeníoperace obnovení. Pokud máte neobnovenou databázi, u které při obnovení nebo obnovení databáze dochází ke snížení výkonu, bude pravděpodobně nutné počkat na dokončení operace obnovení nebo obnovení. Můžete například vidět stav offline nebo stav obnovení v SQL Server Management Studio (SSMS) pro neobnovenou databázi. Zastavení SQL Server obvykle nenabízí žádnou úlevu při pomalém zotavení a může trvat déle, než se stejná fáze analýzy obnovení, fáze opakování nebo fáze vrácení zpět.
-
Vyhněte se obnovování sekvence transakčních protokolů, která obsahuje tisíce virtuálníchsouborů. Pokud při obnovování a obnovení databáze pomocí záložního souboru dochází k nízkému výkonu, můžete se vyhnout obnovení sekvencí transakčních protokolů, které obsahují tisíce virtuálních souborů. Pokud chcete identifikovat záložní soubor, který obsahuje nejvíce zaznamenaných virtuálních souborů protokolu, pomocí následujícího příkazu zobrazte sloupce FirstLSN a LastLSN v záložních souborech protokolu: RESTORE HEADERONLY FROM DISK='C:\folder\file.trn'Můžete se rozhodnout, že se chcete vyhnout obnovení záložních souborů protokolu. Nebo můžete použít příkaz STOP AT v příkazech RESTORE, abyste se vyhnuli vysoce fragmentovaným částem transakčních protokolů. Pokud během scénáře neúspěšného obnovení plně neobnovíte sekvence protokolů až k poslednímu bodu v čase, dojde ke ztrátě dat v SQL Server databáze. K této ztrátě dat dochází, protože se neuchovávají všechny transakce. Proto existuje obchodní kompromis. Můžete plně obnovit vysoce fragmentovaný transakční protokol. Tato operace však může trvat mnoho hodin. Nebo můžete pomocí příkazu STOP AT v obnovení zastavit obnovení před vysoce fragmentovanou částí protokolu. Všechny chybějící transakce, které vynecháte, jsou však ztraceny.Poznámka: Bez instalace této opravy hotfix obvykle neexistuje bezpečné řešení pro urychlené obnovení po restartování SQL Server. SQL Server musí vyhledat seznam virtuálních souborů, analyzovat soubory protokolu, znovu dokončit dokončené transakce a pak vrátit zpět neúplné transakce, aby bylo možné dokončit obnovení, aby byla databáze bezpečně online. Během obnovení nelze bezpečně přeskočit transakce.