Microsoft distribuisce le correzioni di Microsoft SQL Server 2008 R2 in un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix.

Sintomi

Considerare lo scenario descritto di seguito:

  • Si dispone di un database che contiene un filegroup FileStream in Microsoft sql Server 2008 R2 o sql Server 2008.

  • Una transazione di database viene aperta e scritta in un file FileStream . La transazione usa la lucidatura per eseguire queste operazioni.

  • Si chiude il file FileStream prima di eseguire il commit della transazione del database. Di conseguenza, Windows può conservare parti del file nella cache del file System.

  • Un comando di SQL Server usa un percorso di accesso non buffered per accedere al file FileStream . Ad esempio, il comando SQL Server viene usato in un'operazione di backup o in una scansione antivirus.

In questo scenario, il comando SQL Server smette di rispondere.Note Quando si verifica questo problema, potrebbe essere necessario riavviare SQL Server per recuperare il problema oppure riavviare il computer per risolvere il problema.

Causa

Questo problema si verifica a causa di un errore nel driver di FileStream RsFx . Quando un'operazione che non usa l'opzione di buffering richiede un percorso di Access non memorizzato nella cache, il file system NTFS individua il segmento Dirty $Data nella cache e quindi il file system NTFS richiede la chiusura delle parti memorizzate nella cache. Il driver RsFx FILESTREAM rileva la richiesta di chiusura del file. Tuttavia, il driver rileva che la prima transazione di database non è stata completata. Di conseguenza, il driver di FileStream RsFx tenta di svuotare i dati e si verifica un deadlock in System. exe.

Risoluzione

Informazioni sul Service Pack 3 per SQL Server 2008

Per risolvere il problema, ottenere il Service Pack 3 per SQL Server 2008. Per altre informazioni, vedere l' elenco dei problemi corretti da SQL server 2008 Service Pack 3 e come ottenere il Service Pack più recente per SQL Server 2008.

Informazioni sull'aggiornamento cumulativo

SQL Server 2008 R2 Service Pack 1

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 1 per SQL Server 2008 R2 Service Pack 1. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2544793 Pacchetto di aggiornamento cumulativo 1 per SQL Server 2008 R2 Service Pack 1Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2567616 Le build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 8. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 R2, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

2534352 Pacchetto di aggiornamento cumulativo 8 per SQL Server 2008 R2 Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

981356 Build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Soluzione alternativa

Per risolvere il problema, non usare il buffering quando si scrive in file FileStream .

Ulteriori informazioni

Per altre informazioni sui dati FileStream , visitare il sito Web MSDN seguente:

Informazioni generali sui dati FILESTREAM

Informazioni sullo stack delle chiamate

fffff880`01fa1760 fffff800`01489992 : fffffa80`090eb680 fffffa80`090eb680 00000000`00000000 fffffa80`00000008 : nt!KiSwapContext+0x7afffff880`01fa18a0 fffff800`0148c1af : fffffa80`090eb680 fffff800`015f6e80 fffff880`000000ca fffff880`014542c3 : nt!KiCommitThreadWait+0x1d2fffff880`01fa1930 fffff800`014651de : 00000000`00000000 fffffa80`0000001b 00000000`00000000 fffff800`015f6e00 : nt!KeWaitForSingleObject+0x19f fffff880`01fa19d0 fffff800`0148a5cc : ffffffff`fd9da600 fffffa80`09dba410 fffffa80`0a4a2f98 fffffa80`093cc180 : nt!ExpWaitForResource+0xaefffff880`01fa1a40 fffff880`014c8ca1 : fffff8a0`023fcb40 fffffa80`0a61bf20 fffff880`01fa1c40 fffff880`00000002 : nt!ExAcquireResourceExclusiveLite+0x14ffffff880`01fa1ab0 fffff880`014c96b4 : fffffa80`0a8684e0 fffffa80`091c1190 fffffa80`0a61bf20 00000000`00000000 : Ntfs!NtfsCommonFlushBuffers+0x14dfffff880`01fa1b90 fffff880`01253bcf : fffffa80`091c1530 fffffa80`091c1190 fffffa80`0a8684e0 fffff880`01fa2c30 : Ntfs!NtfsFsdFlushBuffers+0x104fffff880`01fa1c00 fffff880`01256aea : 00000000`00000000 00000000`00000000 fffffa80`0a269000 fffffa80`0a273b90 : fltmgr!FltpLegacyProcessingAfterPreCallbacksCompleted+0x24f fffff880`01fa1c90 fffff880`0128c1fd : fffffa80`093ca8f8 fffffa80`0941bf00 fffffa80`093ca800 fffffa80`0941bf00 : fltmgr!FltPerformSynchronousIo+0x2cafffff880`01fa1d30 fffff880`0163b2ba : fffffa80`0941bf00 ffffffff`ffffff01 fffffa80`0a273c40 fffffa80`093c000f : fltmgr!FltFlushBuffers+0x2dfffff880`01fa1df0 fffff880`0164bf0c : fffffa80`0b907de8 fffff880`01fa2048 fffff880`01fa1f18 00000000`00000000 : RsFx0150!RsFxFltrPreCloseLogical+0x2ea fffff880`01fa1ed0 fffff880`01253067 : fffffa80`0941be60 fffff880`01fa2048 fffff880`01fa2020 fffffa80`090dc040 : RsFx0150!RsFxFltrPreMainDispatchCallback+0x58c fffff880`01fa1fd0 fffff880`01254329 : fffff880`01fa2100 00000000`00000002 fffffa80`00960500 fffffa80`0b453c00 : fltmgr!FltpPerformPreCallbacks+0x2f7fffff880`01fa20d0 fffff880`012526c7 : fffffa80`0aefe620 fffffa80`093c72d0 fffffa80`092c87c0 00000000`00000000 : fltmgr!FltpPassThrough+0x2d9 fffff880`01fa2150 fffff800`0178088e : fffffa80`0a61bf20 fffffa80`093c5380 fffff8a0`09c90840 fffffa80`093c72d0 : fltmgr!FltpDispatch+0xb7fffff880`01fa21b0 fffff800`0148e514 : 00000000`00000001 00000000`00000000 fffffa80`090f0080 fffffa80`0b453cf8 : nt!IopDeleteFile+0x11e fffff880`01fa2240 fffff800`01725f61 : 00000000`00000000 00000000`0008c081 fffffa80`0b453cb0 fffffa80`0b453cb0 : nt!ObfDereferenceObject+0xd4fffff880`01fa22a0 fffff800`0145271b : fffffa80`0b453d30 00000000`00000000 fffffa80`0b453d30 fffffa80`0b453d30 : nt!MiSegmentDelete+0xa1fffff880`01fa22e0 fffff800`01452e42 : 00000000`00000000 00000000`00000711 fffffa80`09eb6348 fffff8a0`023fcc00 : nt!MmPurgeSection+0x71bfffff880`01fa23d0 fffff880`014c19ef : fffffa80`0a4a2f68 fffffa80`09eb6300 00000000`00000000 fffffa80`00000000 : nt!CcPurgeCacheSection+0x172fffff880`01fa2440 fffff880`014ef84e : fffffa80`09eb6300 fffff8a0`023fcc70 00000000`00000000 fffff8a0`023fcc01 : Ntfs!NtfsFlushAndPurgeScb+0x1bdfffff880`01fa24d0 fffff880`014ddfe5 : fffffa80`09eb6300 fffffa80`0a95ef20 fffffa80`093cc180 fffff8a0`023fced8 : Ntfs!NtfsOpenAttribute+0x80efffff880`01fa25e0 fffff880`014d9e3b : fffff880`0785d4a0 fffffa80`09eb6300 fffff8a0`023fced8 fffff8a0`00000152 : Ntfs!NtfsOpenExistingAttr+0x145fffff880`01fa26a0 fffff880`014dd09f : fffffa80`09eb6300 fffffa80`0a95ec10 fffff8a0`023fced8 fffff880`00000152 : Ntfs!NtfsOpenAttributeInExistingFile+0x5abfffff880`01fa2830 fffff880`014ed166 : fffffa80`09eb6300 fffffa80`0a95ec10 fffff8a0`023fced8 00000000`00000701 : Ntfs!NtfsOpenExistingPrefixFcb+0x1ef fffff880`01fa2920 fffff880`014ea911 : fffffa80`09eb6300 fffffa80`0a95ec10 fffff880`01fa2af0 fffff880`01fa2b40 : Ntfs!NtfsFindStartingNode+0x5e6 fffff880`01fa29f0 fffff880`01448945 : fffffa80`09eb6300 fffffa80`0a95ec10 fffff880`0785d4a0 fffff800`0148c900 : Ntfs!NtfsCommonCreate+0x3e1 fffff880`01fa2bd0 fffff800`0148ea21 : fffff800`01736800 fffff800`01621600 fffffa80`090eb600 8b48fffd`00000000 : Ntfs!NtfsFspDispatch+0x26d fffff880`01fa2cb0 fffff800`01721cce : 0f26e818`4b8d586e fffffa80`090eb680 00000000`00000080 fffffa80`090969e0 : nt!ExpWorkerThread+0x111 fffff880`01fa2d40 fffff800`01475fe6 : fffff800`015f6e80 fffffa80`090eb680 fffffa80`090ebb60 000008bf`12ebc000 : nt!PspSystemThreadStartup+0x5a 

Nella tabella seguente sono disponibili ulteriori informazioni sui prodotti o sugli strumenti che controllano automaticamente questa condizione nell'istanza di SQL Server e sulle versioni di SQL Server in base alla quale viene valutata la regola.

Software per le regole

Titolo della regola

Descrizione della regola

Versioni del prodotto con cui viene valutata la regola

System Center Advisor

SQL Server Missing Update 2550552 per evitare deadlock che coinvolgono il filesystem e il driver FILESTREAM

System Center Advisor determina se l'istanza di SQL Server è una build che non include questa correzione. Se la build corrente di SQL Server è precedente alla build fissa, System Center Advisor genera un avviso per questa istanza di SQL Server. Se si riceve questo avviso da System Center Advisor, rivedere i dettagli della correzione in questo articolo e applicare l'aggiornamento applicabile per questa istanza.

SQL Server 2008SQL Server 2008 R2

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×