症状
使用 Microsoft SQL Server 2012 中的 " AlwaysOn 可用性组 " 功能时,辅助副本上出现声明失败。 此外,SQL Server 错误日志中还会生成一个转储文件,类似于以下内容:* BEGIN STACK DUMP:* date time spid 101** Location: IAMPageRangeCache.cpp:515* Expression: !m_needRefreshntdll!ZwWaitForSingleObject+0xaKERNELBASE!WaitForSingleObjectEx+0x94sqlservr!CDmpDump::DumpInternal+0x20fsqlservr!`CDmpDump::Dump'::`1'::filt$0+0x60msvcr100!__C_specific_handler+0x97sqlservr!__GSHandlerCheck_SEH+0x75ntdll!RtlpExecuteHandlerForException+0xdntdll!RtlDispatchException+0x197ntdll!RtlRaiseException+0x18dKERNELBASE!RaiseException+0x68sqlservr!CDmpDump::Dump+0x65sqllang!SQLDumperLibraryInvoke+0x1e4sqllang!SQLLangDumperLibraryInvoke+0x15esqllang!CImageHelper::DoMiniDump+0x426sqllang!stackTrace+0x9d5sqllang!utassert_fail_imp+0x5d0sqldk!utassert_fail+0x2a5sqlmin!IAMPageRangeCache::FindMatchingIAMPageId+0x73sqlmin!AutoIAMPageRangeCache::FindMatchingIAMPageId+0x25sqlmin!AutoAllocationCaches::FindMatchingIAMPageId+0x455sqlmin!GetIAMPage+0x238sqlmin!CheckPageAllocStatus+0x32esqlmin!IsPageInAllocUnit+0x3fsqlmin!IndexPageManager::ReacquireAccess+0x259sqlmin!PageContext::ReacquireAccess+0x29sqlmin!BTreeRow::ValidateAccessOnRowLong+0xc8sqlmin!BTreeRow::ValidateAccessOnRow+0x21sqlmin!BTreeRow::Reposition+0x21sqlmin!BTreeRow::GetVersion+0xe4sqlmin!BTreeRow::GetRecord+0x19afsqlmin!IndexDataSetSession::OutputColumnData+0x19d8sqlmin!IndexDataSetSession::GetDataInternal+0x93sqlmin!DatasetSession::GetData+0x123sqlmin!RowsetNewSS::GetData+0x171sqlmin!CValSSTable::GetDataX+0x48sqltses!CallEsFn+0x13sqltses!CEsExec::GeneralEval4+0xe7sqltses!CallEsFn+0x9sqltses!CEsExec::GeneralEval+0x1a9sqlmin!CEsRuntime::Eval+0xcsqlmin!CQScanSortNew::PushRow+0x2bsqlmin!CQScanSortNew::BuildSortTable+0x22fsqlmin!CQScanSortNew::OpenHelper+0xc0sqlmin!CQueryScan::StartupQuery+0x23csqllang!CXStmtQuery::SetupQueryScanAndExpression+0x2e5sqllang!CXStmtQuery::InitForExecute+0x34sqllang!CXStmtQuery::ErsqExecuteQuery+0x36dsqllang!CXStmtSelect::XretDoExecute+0xffffffffffc59219sqllang!CXStmtSelect::XretExecute+0x2e7sqllang!CExecStmtLoopVars::ExecuteXStmtAndSetXretReturn+0xfsqllang!CMsqlExecContext::ExecuteStmts<1,1>+0x427sqllang!CMsqlExecContext::FExecute+0xa43sqllang!CSQLSource::Execute+0x86csqllang!process_request+0xa57sqllang!process_commands+0x4a3sqldk!SOS_Task::Param::Execute+0x21esqldk!SOS_Scheduler::RunTask+0xabsqldk!SOS_Scheduler::ProcessTasks+0x279sqldk!SchedulerManager::WorkerEntryPoint+0x24csqldk!SystemThread::RunWorker+0x8fsqldk!SystemThreadDispatcher::ProcessWorker+0x366sqldk!SchedulerManager::ThreadEntryPoint+0x226kernel32!BaseThreadInitThunk+0x22ntdll!RtlUserThreadStart+0x34
解决方案
累积更新信息
以下更新修复了此问题:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。