Simptomi
Pieņemsim, ka izmantojat Microsoft SQL Server 2012 vai SQL Server 2014. Ja ir strupceļš, kas rodas SQL Server, tiek parādīts šāds piekļuves pārkāpums, ko izraisa bloķēšanas monitors:
sqldk! CSlotGroup::P shReleasesqldk! CSlotPageMgr:: Releasesqllang! commondeletesqllang! DELETE [] sqllang! CTraceDataSTVF::InternalReleaseResourcessqllang! TTableBase<CTraceDataSTVFInfo>:: ReleaseResourcessqllang! CTraceDataSTVF::{dtor}sqllang! CTraceDataSTVF:: "skalārs dzēšot destructor'sqlmin! CSTVFInternal::Releasesqlmin! CQueryExecContext:: ~ CQueryExecContextsqlmin! CQueryInstance::ShutdownQueryExecContextsqlmin! CQueryScan::ShutdownQueryExecContextsqlmin! CQueryScan::D estroyQueryOnExceptionsqllang! CXStmtQuery::ShutdownOnExceptionsqllang! CXStmtQuery::FinishOnExceptionImpsqllang! GetInterruptTickssqllang! InterruptTicks<neparakstīts __int64>:: LoadTickssqllang! SOS_Ticks<InterruptTicks<neparakstīts __int64>,-3>:: LoadTickssqllang! "CMsqlExecContext:: FExecute":: "1":: catch $3msvcr100! _CallSettingFramemsvcr100! __CxxCallCatchBlockntdll! RcFrameConsolidationsqllang! CMsqlExecContext::FExecutesqllang! CSQLSource::Executesqllang! CStmtExecProc::XretLocalExecsqllang! CStmtExecProc::XretExecExecutesqllang! CXStmtExecProc::XretExecutesqllang! CExecStmtLoopVars::ExecuteXStmtAndSetXretReturnsqllang! CMsqlExecContext:: ExecuteStmts<1,0>sqllang! CMsqlExecContext::FExecutesqllang! CSQLSource::Executesqllang! ExecuteSqlsqllang! CSpecProc::ExecuteSpecialsqllang! CSpecProc:: Executesqllang! process_requestsqllang! process_commandssqldk! SOS_Task::P Aram:: Executesqldk! SOS_Scheduler:: RunTasksqldk! SOS_Scheduler::P rocessTaskssqldk! SchedulerManager::WorkerEntryPointsqldk! SystemThread::RunWorkersqldk! SystemThreadDispatcher::P rocessWorkersqldk! SchedulerManager::ThreadEntryPointkernel32! BaseThreadInitThunkntdll! RtlUserThreadStart
Kad piekļuves pārkāpums ir saņemts, SQL Server kļūdu žurnālfailā tiek parādīts šāds kļūdas ziņojums:
<datuma> <laika> SPID<ID>, izmantojot dbghelp. dll ' versija ' 4.0.5 ' <datuma> <laika> SPID> <0 id> * * Dump thread-SPID = <ID>, EC = 0X0000007F8608E160> <4 datuma> <laiks> SPID> <8 ID> * * *. txt> <4 datums> <laiks> SPID> <8 ID> Dump FileName * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <datums> <laiku> SPID> <4 ID> * <datuma> <laiks> SPID<ID> * sākt kaudzes: <datums> <laiks> spid<ID> * <datums> <laiks> SPID <ID><datums> <laiks> SPID> <8ID> * <datuma> <laiks> SPID> <4 ID> * atrašanās vieta: qxcntxt. cpp: 1143> <6 datuma> <laiku>. : !" Šis kods nerada izņēmumus "<datums> <laiku> SPID> <6 ID> * spid: <ID><datuma> <laika> SPID> <4 id> * procesa ID: 3556> <6 datums> <laiku> SPID><0 ID> * <datuma> <laiks> SPID><6 id> * Input Buffer 37 bytes-<datums> <laiks> SPID ID> <02 * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00> datuma> <04 laiku> <SPID> id> <08 * ÿÿ> 01 00 00 00 ff FF 0c 00 00 00 00 00 26 04 04 05 00 00 & datums> <laiks> SPID> <5 ID> * 00> <7 datuma> <laiku> SPID> <1 ID> * <datuma> <laiks> SPID> <7 ID> *.. Time . <datuma> <laiku> SPID> <3 ID>> <9 ID> [info] identitātes sākuma beigām | Stāvokļa rezultāta kļūda spekulācija sagatavotā LazyCommit ir tikai lasāma | Transakciju datu bāzes ThreadId | ReadSet WriteSet ScanSet saglabāšanas _ LogSizeRq | CommitDep TotalComm Dependent 0 Dependent 1 Dependent 2 apgādājamie 3 atkarībā no 4 atkarīgās 5 atkarībā no 6 | Apgabala atrašanās vieta |> <41 datums> <laiks> SPID> <45 ID> taimauts gaida ārējo dump procesu 11800. <datums> <> SPID> <1 ID> kļūda: 17066, smaguma pakāpe: 16, štats: 1. <datuma> <laiks> spid> <7 ID> SQL Server apgalvojums: fails: <qxcntxt. CPP>, Line = 1143 failed = "!" Šis kods nav jāierosina. Šī kļūda var būt saistīta ar hronometrāžu. Ja kļūda joprojām pastāv pēc priekšraksta atkārtotas palaišanas, izmantojiet DBCC CHECKDB, lai pārbaudītu datu bāzi strukturālai integritātei, vai restartējiet serveri, lai nodrošinātu, ka atmiņas datu struktūras nav bojātas.
Risinājums
Kumulatīvās atjaunināšanas informācija
Šī problēma pirmo reizi tika izlabota tālāk sniegtajā SQL Server kumulatīvajā atjauninājumā.
Katrā jaunajā kumulatīvajā SQL Server atjauninājumā ir iekļauti visi labojumfaili un visi drošības labojumi, kas bija iekļauti iepriekšējā kumulatīvajā atjauninājumā. Iesakām lejupielādēt un instalēt jaunākos SQL Server kumulatīvos atjauninājumus:
Statusa
Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir norādīti sadaļā "attiecas uz".