Ошибки взаимоблокировки IIS 6.0 SQL 2000

Ошибки взаимоблокировки IIS 6.0 SQL 2000

Недавно я начал новую работу, и у них есть веб-сервер, который общается с отдельным сервером базы данных. Недавно это стало вызывать ошибки взаимоблокировок при запуске страниц ASP, такие как:

ОШИБКА: MSSQL 2kTransaction (Process ID 103) был заблокирован на ресурсах блокировки с другим процессом и был выбран в качестве жертвы блокировки. Повторно запустите транзакцию.

Указанная выше ошибка возникает, когда страница asp пытается получить доступ к базе данных MSSQL 2k.

Они думают, что это проблема сервера, поэтому меня попросили разобраться с этим. Любая помощь будет высоко оценена.

решение1

Обычно взаимоблокировки являются проблемой либо с дизайном базы данных, либо с несоответствиями в том, как приложение получает доступ к ресурсам базы данных. Часто бывает так, что вы найдете решения проблем, внеся изменения в нее, а не в инфраструктуру. Взаимоблокировки часто не обнаруживаются во время функционального тестирования, но, как правило, обнаруживаются при тестировании производительности и масштабируемости.

Вы можете помочь команде разработчиков в этом, используя трассировки, которые позволяют записывать более подробную информацию в журнал SQL.

например: DBCC TRACEON (3605,1205,-1) — обязательно отключите его (DBCC TRACEOFF), когда закончите собирать сообщения журнала!

Далее проверьте типичные вещи для любой установки SQL:

  • убедитесь, что это вСП4
  • имеет правильную настройку оборудования - файлы журналов на диске RAID 1, файлы данных на диске RAID 5, tempdb на диске RAID 1 и резервные копии на диске RAID 5 - я бы назвал это минимумом для любого реального сервера.
  • имеет настроенный план обслуживания (резервное копирование, перестроение индексов, проверки целостности, обновление статистики). Я думаю, что в SQL 2000 есть мастер плана обслуживания для этого.

Наконец, начните планировать миграцию на SQL 2008 R2 — основная поддержка SQL 2000 в настоящее время заканчивается, а расширенная поддержка завершится в 2013 году.

решение2

Вам нужно понятьпочемупроисходят взаимоблокировки. Следуйте указаниям документации по продукту наОбнаружение и устранение тупиковых ситуацийиУстранение неполадок с взаимоблокировками.

Как решить тупиковую ситуацию, невозможно сказать заранее, без информации о тупиковой ситуации. Обычно решение заключается в изменении модели данных (например, добавлении отсутствующего индекса) и/или исправлении дизайна приложения (изменении шаблонов доступа и запросов).

Связанный контент