Errore di asserzione SQL Server quando si tenta di eseguire un'istruzione Bulk Insert o BCP: "<loglock.cpp>, riga = 807 asserzione non riuscita = ' risultato = = LCK_OK'"</loglock.cpp>

Traduzione articoli Traduzione articoli
Identificativo articolo: 2700641 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sintomi

Si consideri il seguente scenario:
  • Server a e B Server eseguono 2008 di Microsoft SQL Server o SQL Server 2008 R2.
  • Si imposta il mirroring del database tra Server A e Server B.
  • ╚ possibile eseguire un'istruzione BULK INSERT o BCP sul database principale.

    Nota Per impostazione predefinita, l'opzione CHECK_CONSTRAINTS Ŕ impostata su off quando si esegue un'istruzione di BCP o BULK INSERT.
  • Il mirroring del database Ŕ interrotto e la sessione di mirroring del database entra nello stato sospeso.
In questo scenario, un'asserzione viene generato sul server mirror. Di conseguenza, viene creato un file di minidump nella cartella di registro SQL Server. Vedere inoltre seguente errore nel log degli errori di SQL Server sul server mirror:

Data ora spid Utilizza 'dbghelp. dll' versione '4.0.5'
Data ora spid ** Dump thread - spid = 31, CE = 0x00000007F9B1C1A0
Data ora spid *** Dump dello stack inviati in C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\LOG\SQLDump0001.txt

Data ora spid * *******************************************************************************

Data ora spid *
Data ora spid * INIZIO DUMP DELLO STACK:
Data ora spid * 01/04/12 16: 46: 21 spid 12100
Data ora spid *
Data ora spid * Percorso: loglock.cpp:807
Data ora spid * Espressione: risultato = = LCK_OK
Data ora spid * SPID: 31
Data ora spid * ID processo: 2228

Data ora spid Errore: 17066, gravitÓ: 16, stato: 1.

Data ora spid Asserzione di SQL Server: File: <loglock.cpp>, riga = 807 asserzione non riuscita = ' risultato = = LCK_OK'. Questo errore pu˛ essere correlati a intervalli. Se l'errore persiste dopo rieseguirla, utilizzare DBCC CHECKDB per verificare il database per l'integritÓ struttura o riavviare il server per garantire che le strutture di dati in memoria non siano danneggiate.

</loglock.cpp>Data ora spid Errore: 3624, gravitÓ: 20, stato: 1.

Data ora spid Un controllo di sistema asserzione non riuscita. Controllare il log degli errori di SQL Server per i dettagli. In genere, un'asserzione non riuscita Ŕ causata da un danneggiamento di dati o bug del software. Per controllare il danneggiamento del database, considerare l'esecuzione di DBCC CHECKDB. Se hai accettato di inviare immagini a Microsoft durante l'installazione, verrÓ inviato un dump mini a Microsoft. Un aggiornamento potrebbe essere disponibile nel Service Pack pi¨ recente o in un QFE dal supporto tecnico di Microsoft.

Data ora spid Errore: 1454, gravitÓ: 16, stato: 1.

Data ora spid Il mirroring del database verrÓ sospesa. '<Instance name="">' Istanza del server ha rilevato 3624, stato di errore 1, gravitÓ 20 quando era funge da partner di mirroring per il database '<database name="">'. I partner di mirroring del database potrebbe tentare di risolvere automaticamente l'errore e riprendere la sessione di mirroring. Per ulteriori informazioni, visualizzare il log degli errori per i messaggi di errore. </database></Instance>


Nota ╚ necessario reinizializzare il mirroring del database per risolvere il problema.

Cause

Questo problema si verifica perchÚ le informazioni sulla compatibilitÓ del blocco nel log delle transazioni del database principale non viene trasferiti al server mirror.

Workaround

Per aggirare questo problema, eseguire l'istruzione BULK INSERT o BCP sul database principale utilizzando l'opzione CHECK_CONSTRAINTS ON.

Nota L'opzione CHECK_CONSTRAINTS ON provoca un rallentamento delle prestazioni. Tuttavia, il blocco di asserzione sul mirror server non si verifica.

Informazioni

Durante un'operazione di inserimento di massa o BCP, una transazione figlio viene disattivata l'opzione CHECK_CONSTRAINTS. Questa transazione figlio utilizza un blocco che Ŕ compatibile con i blocchi di transazione padre. Le informazioni di compatibilitÓ vengono memorizzate nel registro delle transazioni del database principale. Pertanto, la richiesta di blocco delle transazioni figlio viene concesso al database principale.

Tuttavia, queste informazioni di compatibilitÓ non viene trasferite al server mirror. Pertanto, la richiesta di blocco delle transazioni secondario non Ŕ compatibile con i blocchi delle transazioni principale sul server mirror. Questa situazione provoca l'asserzione sul server mirror.

ProprietÓ

Identificativo articolo: 2700641 - Ultima modifica: lunedý 6 agosto 2012 - Revisione: 1.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 Enterprise
Chiavi:á
kbsurveynew kbtshoot kbprb kbmt KB2700641 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 2700641
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com