Назад | Перейти на главную страницу

SQL Server - установка VMWare - репликация транзакций, вызывающая 100% ЦП

У меня серьезные проблемы с SQL Server - в частности, с репликацией транзакций.

Раньше у нас была физическая машина с Windows 2003 и SQL 2000. Мы называем это «WebDB». Сервер располагался в центре обработки данных, и мы подключались к нему через глобальную сеть.

Вернувшись в офис, у нас есть Windows 2008 с SQL 2008. Мы называем это «OfficeDB». Это публикация репликации транзакций с примерно 20 каталогами. Репликация на этот физический сервер прошла без проблем.

Недавно мы развернули новый сервер в среде, размещенной на виртуальной машине (Esxi). Эта среда также подключена к глобальной сети.

На этом сервере установлен SQL 2008 R2. Он имеет 12 ГБ памяти.

Мы сделали резервную копию исходной WebDB и восстановили ее на новом vWebDB. Я настроил его как подписчика на нашу публикацию из OfficeDB.

После инициализации все вроде работало нормально.

Мы переключили наше веб-приложение на использование нового сервера vWebDB.

Кажется, что ЦП постоянно колеблется около 100%. Ничего в веб-приложении не изменилось - запросы (хотя и несколько неэффективные - и я посмотрю на это в свое время) остались точно такими же.

Задержка репликации увеличилась в диапазоне от 10 минут до 2 часов (варьируется)

Если я отключу репликацию, сервер vWebDB, похоже, успокоится, а загрузка ЦП упадет примерно до 50-60%.

Однако при включенной репликации в конечном итоге БД начинает истекать тайм-аут, и пользователи получают ошибки и т. Д.

Примечания:

Я сделал прямое резервное копирование / восстановление исходной базы данных на новое виртуальное оборудование. Дело в том, что файлы MDF / LDF разделены на 2 виртуальных диска. Это хорошая практика в виртуальной среде?

Дистрибьютор был (и остается) на сервере OfficeDB. Агент распространения является дистрибьютором (push-подписка)

Меня озадачивает то, что эта установка отлично работала на старой машине. Я открыт для предложений по исправлению этого. Я отредактирую этот пост с ответами на вопросы, если это актуально.

Подписки настроены как push или pull? Если тянуть, я бы посоветовал, возможно, переместить их в толчок, чтобы вы уменьшили нагрузку на своего подписчика и посмотрели, поможет ли это. Кроме того, это странный способ инициализировать подписчика (из резервной копии другого подписчика). Вы видите какие-либо ошибки в мониторе репликации? Что профилировщик говорит о хранимых процедурах, отвечающих за доставку реплицированных команд? Если какой-то из них перегревается, как выглядит план запроса для него?