Al momento sei offline in attesa che la connessione Internet venga ristabilita

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>

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
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.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 2700641 - Ultima revisione: 08/06/2012 16:25:00 - Revisione: 1.0

Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 Enterprise

  • kbsurveynew kbtshoot kbprb kbmt KB2700641 KbMtit
Feedback
ent.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">