Система Windows Server 2003 x64 SQL Server 2005 x64
Проблемы:
1) Невозможно подключиться через SSMS - Пробовал как учетную запись sa, так и учетную запись домена (то есть в группе sysadmin) - Если я ввел неправильный пароль, то SQL Server ответит, что у меня недействительные учетные данные. - Если я ввел правильный пароль / использовал встроенную безопасность, я получаю следующее сообщение об ошибке: «Произошла серьезная ошибка в текущей команде. Результаты, если таковые имеются, следует отбросить. (Поставщик данных .Net SqlClient)
2) Агент SQL Server не запускается - Пытался запустить службу с разными учетными записями (с привилегиями системного администратора) - Нет ошибок в пользовательском интерфейсе - SQLAGENT.OUT
2014-03-06 15:48:26 - ? [393] Waiting for SQL Server to recover databases...
2014-03-06 15:48:36 - ! [165] ODBC Error: 0, Unspecified error occurred on SQL Server. Connection may have been terminated by the server. [SQLSTATE HY000]
2014-03-06 15:48:36 - ! [000] Unable to connect to server '(local)'; SQLServerAgent cannot start
2014-03-06 15:48:36 - ! [165] ODBC Error: 0, Unspecified error occurred on SQL Server. Connection may have been terminated by the server. [SQLSTATE HY000]
2014-03-06 15:48:36 - ! [382] Logon to server '(local)' failed (DisableAgentXPs)
2014-03-06 15:48:36 - ? [098] SQLServerAgent terminated (normally)
3) SQL Server (кажется) постоянно дает сбой. - Служба запущена без ошибок из пользовательского интерфейса - Каждую минуту создается новый журнал ошибок / мини-дамп - Я пробовал запустить службу с другой учетной записью - В файле журнала отображается:
2014-03-02 20:11:15.92 Server Error: 17310, Severity: 20, State: 1.
2014-03-02 20:11:15.92 Server A user request from the session with SPID 51 generated a fatal exception. SQL Server is terminating this session. Contact Product Support Services with the dump produced in the log directory.
2014-03-02 20:11:29.90 spid51 Using 'dbghelp.dll' version '4.0.5'
2014-03-02 20:11:29.90 spid51 ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\SQLDump0052.txt
2014-03-02 20:11:29.90 spid51 SqlDumpExceptionHandler: Process 51 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
2014-03-02 20:11:29.90 spid51 * *******************************************************************************
2014-03-02 20:11:29.90 spid51 *
2014-03-02 20:11:29.90 spid51 * BEGIN STACK DUMP:
2014-03-02 20:11:29.90 spid51 * 03/02/14 20:11:29 spid 51
2014-03-02 20:11:29.90 spid51 *
2014-03-02 20:11:29.90 spid51 *
2014-03-02 20:11:29.90 spid51 * Exception Address = 000000007814E250 Module(MSVCR80+000000000001E250)
2014-03-02 20:11:29.90 spid51 * Exception Code = c0000005 EXCEPTION_ACCESS_VIOLATION
2014-03-02 20:11:29.90 spid51 * Access Violation occurred reading address 000000180BAE6B40
2014-03-02 20:11:29.90 spid51 * Input Buffer 48 bytes -
2014-03-02 20:11:29.90 spid51 * exec sp_oledb_ro_usrname
Я открыл аварийный дамп и обнаружил следующее
0:000> kc 51
Call Site
ntdll!ZwWaitForSingleObject
kernel32!WaitForSingleObjectEx
sqlservr!CDmpDump::DumpInternal
sqlservr!CDmpDump::Dump
sqlservr!CImageHelper::DoMiniDump
sqlservr!ContextDumpNoStackOverflow
sqlservr!ContextDump
sqlservr!stackTraceExceptionFilter
sqlservr!ex_trans_cexcept
sqlservr!SOS_SEHTranslator
msvcr80!CallSETranslator
msvcr80!_CxxExceptionFilter
msvcr80!_CxxExceptionFilter
msvcr80!_InternalCxxFrameHandler
msvcr80!_CxxFrameHandler
ntdll!RtlpExecuteHandlerForException
ntdll!RtlDispatchException
ntdll!KiUserExceptionDispatcher
msvcr80!memcpy
sqlservr!yyparse
sqlservr!sqlpars
sqlservr!CSQLSource::FParse
sqlservr!CSQLSource::FCompWrapper
sqlservr!CSQLSource::Transform
sqlservr!CSQLSource::Execute
sqlservr!process_request
sqlservr!process_commands
sqlservr!SOS_Task::Param::Execute
sqlservr!SOS_Scheduler::RunTask
sqlservr!SOS_Scheduler::ProcessTasks
sqlservr!SchedulerManager::WorkerEntryPoint
sqlservr!SystemThread::RunWorker
sqlservr!SystemThreadDispatcher::ProcessWorker
sqlservr!SchedulerManager::ThreadEntryPoint
msvcr80!endthreadex
msvcr80!endthreadex
kernel32!BaseThreadStart
Я думаю, что проблема №1 и №2 вызвана №3. Я понятия не имею, что такое SPID51, поскольку я даже не могу войти в систему с помощью SSMS.
К счастью, у нас есть резервная копия сервера, и она работала нормально.
Что я пробовал
отключил все службы SQL, кроме основной
-f -T3608
запустить службу SQL с администратором домена и локальной системой
запустить сервер в режиме минимальной конфигурации
отключил сетевой адаптер на случай, если к нему подключается какая-то неизвестная вещь
отключил все остальные службы на сервере
ничего из вышеперечисленного не решило проблему