Разберем два кейса причины падения SQL server.
Симптомы довольно распространенные : работает , работает и бац, дамп, и служба остановлена.
Вообще, из практики , если служба остановилась полностью, есть несколько основных причина падения:
- ошибка с оборудования, особенно SQL Server чувствителен к памяти. Недавно случай был, служба остановилась и все , ни ошибок нет, ни дампа, Но в этот момент была ошибка с памятью зафиксирована в System журнале ОС, - в итоге замена планки памяти вендором.
- вторая распространённая причина внезапной остановки SQL Server - это внешние компоненты загруженные в память SQL server, такие как библиотеки поставщиков для Linked Servers, объекты созданные череp sp_oaCreate
Приведу пример второго случая:
SQL Server падает с ошибкой:
* BEGIN STACK DUMP:
* 05/26/21 17:58:01 spid 362
*
* ex_handle_except encountered exception C0000005 - Server terminating
нехорошая ситуация, особенно если учесть. что сервер упал в рабочее время и повлиял на работу известного алкогольного магазина в России.
В этот момент в логах SQL Server будет примерно такая информация:
Прочитав файлы дампа , было выявлено, что в момент аварии было обращение ко внешним библиотекам -mso40uiwin32client+0x1718ce
Простой поиск в Интернете , говорит что это библиотеки MS Office16
Которые так же видны в загружаемых библиотеках SQL Server:
Смотрим свойства драйверов:
Как и ожидаемо, стоит параметр Allow InProcess- что и как описано в другой моей статье.
В общем случае, ошибка в Office приводит к ошибке работы головного процесса SQL Server. Для промышленных систем данный параметр должен быть выключен, и сторонние процессы должны работать вне процесса SQL Server в операционной системе.
После снятия данного параметра, падение SQL Server прекратилось.
Проверьте еще раз свои настройки провайдеров для ваших критичных серверов SQL Server.
Если нужна помощь, обращайтесь, не бесплатно конечно.
Полезные ссылки:
https://dbasimple.blogspot.com/2012/12/oracle-linked-server-allow-in-process.html
https://blog.pythian.com/analyze-sql-server-stack-dumps/
https://mssqlwiki.com/2012/10/16/sql-server-exception_access_violation-and-sql-server-assertion/
https://www.sqlservercentral.com/articles/setting-up-linked-servers-with-an-out-of-process-oledb-provider
https://mssqlwiki.com/2012/08/17/how-to-analyze-non-yielding-scheduler-dumps/
Комментариев нет :
Отправить комментарий