Spoločnosť Microsoft distribuuje Microsoft SQL Server 2008 Service Pack 3 (SP3) alebo Microsoft SQL Server 2008 R2 opravy ako jeden súbor na stiahnutie. Keďže opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchlych opráv a všetky aktualizácie zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 SP3 alebo SQL Server 2008 R2 Update Release.
Príznaky
Zoberme si nasledujúcu situáciu:
-
Môžete vytvoriť oblasti tabuľky v SQL Server 2008 alebo SQL Server 2008 R2.
-
Na všetky oblasti neaktivujete kompresiu.
-
Pokúšate sa vložiť záznam do novej prázdnej oblasti.
V tomto scenári sa vyskytne porušenie prístupu a v denníku chýb servera SQL Server sa zaznamená nasledujúca chyba:
<Date> <Time> spid## ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt<Date> <Time> spid## SqlDumpExceptionHandler: Process 66 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.<Date> <Time> spid## * BEGIN STACK DUMP:<Date> <Time> spid## * Exception Address = 0000000000C37D22 Module(sqlservr+0000000000137D22)<Date> <Time> spid## * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION<Date> <Time> spid## * Access Violation occurred reading address 0000000000000020
Poznámka: Tento problém sa vyskytuje aj v Microsoft SQL Server 2008 R2.
Riešenie
Kumulatívna aktualizácia informácií
SQL Server 2008 Service Pack 2
Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 8 pre SQL Server 2008 Service Pack 2. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:
2648096 Kumulatívna aktualizácia balíka 8 pre SQL Server 2008 Service Pack 2Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 opraviť uvoľnenia. Spoločnosť Microsoft odporúča, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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 servera 2008, ktoré boli vydané po vydaní SQL servera 2008 Service Pack 2 Microsoft SQL Server 2008 rýchlych opráv sú vytvorené pre konkrétne SQL Server Service Pack. Ak chcete nainštalovať SQL Server 2008 Service Pack 2, musíte použiť rýchlu opravu SQL servera 2008 Service Pack 2. Na základe predvoleného nastavenia je každá rýchla oprava, ktorá je k dispozícii v balíku SQL Server Service Pack, zahrnutá v ďalšej službe SQL Server Service Pack.
SQL Server 2008 R2
Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 11. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií pre SQL Server 2008 R2 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:
2633145 Kumulatívna aktualizácia balíka 11 pre SQL Server 2008 R2 Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 R2 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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 SQL servera 2008 R2, ktoré boli vydané po vydaní SQL servera 2008 R2
SQL Server 2008 R2 Service Pack 1
Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 4 pre SQL Server 2008 R2 Service Pack 1. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:
2633146 Kumulatívna aktualizácia balíka 4 pre SQL Server 2008 R2 Service Pack 1Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 R2 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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:
2567616 Zostavy SQL servera 2008 R2, ktoré boli vydané po vydaní SQL servera 2008 R2 Service Pack 1
SQL Server 2008 Service Pack 3
Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii balíka 2 pre SQL Server 2008 Service Pack 3. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií pre SQL Server 2008 Service Pack 3 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:
2633143 Kumulatívna aktualizácia balíka 2 pre SQL Server 2008 Service Pack 3Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie aktualizácie obsahuje všetky rýchle opravy a všetky aktualizácie zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania aktualizácie SQL servera 2008 Service Pack 3. Odporúčame, aby ste zvážili použitie najnovších aktualizácií, ktoré túto rýchlu opravu obsahujú. Ď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:
2629969 Zostavy SQL servera 2008, ktoré boli vydané po vydaní SQL servera 2008 Service Pack 3
Ďalšie informácie
Ak chcete overiť, či sa vyskytol problém popísaný v tomto článku vedomostnej databázy Knowledge Base, postupujte podľa týchto krokov:
-
Otvorte pripojenie DAC k serveru SQL Server a spustite nasledujúci dotaz:
Use <your_db_name>select * from sys.sysrscols rsc where rsc.rsid in ( select sau.container_idfrom sys.system_internals_allocation_units sau join sys.partitions pt on sau.container_id = pt.partition_idand pt.object_id = object_id(<YourPartitionedTable>) and pt.index_id = 1)
Poznámka: V tomto dotaze je <YourPartitionedTable> zástupný symbol pre názov tabuľky oblastí.
-
Vo výstupe dotazu Skontrolujte, či stĺpec rscolid obsahuje veľkú hodnotu. Toto je príklad takej veľkej hodnoty:
rsid
rscolid
hbcolid
rcmodified
TVB
CID
ordkey m
72057594380091392
0
1
614911578
56
0
4
72057594380091392
11
13
614911578
12967
53265
0
72057594380091392
12
14
614911578
32999
53265
0
72057594380091392
13
15
614911578
32999
53265
0
72057594380091392
14
16
614911578
59
0
0
72057594380091392
15
17
614911578
59
0
0
72057594380091392
17
18
614911578
1834
0
0
72057594380091392
67108865
19
614911578
19627
53625
0
72057594380091392
22
23
614911578
56
0
0
72057594380091392
23
24
614911578
10407
53625
0
72057594380091392
24
25
614911578
662636
0
0
V tomto príklade je hodnota 67108865 výrazne väčšia než ostatné. Znamená to, že sa vyskytol problém popísaný v tomto článku vedomostnej databázy Knowledge Base.
Ak chcete tento problém obísť, prebudovaním príslušných oblastí. Obráťte sa na oddelenie technickej podpory spoločnosti Microsoft a zistite, ktoré oblasti sú súčasťou. Prípadne môžete obnoviť všetky oblasti pomocou nasledujúceho dotazu:
ALTER INDEX <your_table_index>ON <your_table_name>REBUILD Partition = allGO
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.