Зеркальное отображение, доставка журналов SQL Server 2005
Мне поручено настроить аварийное восстановление для одной из наших систем. Основной сервер находится в FL, а дополнительный находится в Германии. Приложение является глобальным приложением в моей компании.
Я не уверен, стоит ли мне использовать доставку журналов или зеркалирование. Я прочитал, что зеркалирование отрицательно скажется на производительности моего приложения. Это правда? Означает ли это, что каждый раз, когда пользователь изменяет или сохраняет запись, получение положительного ответа займет больше времени?
Спасибо
3 ответа
Зеркальное отображение может оказывать различное влияние на производительность в зависимости от выбранного вами режима работы. Если вы зеркалируете, у вас может быть три режима работы: высокая защита (с автоматическим переключением при сбое и без него) и высокая производительность.
В основном это равносильно синхронному и асинхронному зеркалированию. С высокой защитой ваше приложение будет ожидать завершения зеркалирования, прежде чем считать транзакцию завершенной. В режиме высокой производительности ваше приложение не будет ожидать фиксации зеркалирования. На самом деле, в любой момент времени не гарантируется, что все самые последние транзакции будут сохранены в журнале транзакций зеркала.
Одним из основных факторов, которые следует учитывать при зеркалировании, будет время прохождения сигнала в вашей сети. Более высокая задержка в большей степени повлияет на вашу производительность. Вам нужно будет сопоставить стоимость производительности с вашими конкретными требованиями к восстановлению (и восстановлению после отказа).
Если вы еще этого не сделали, вам следует прочитать " Зеркальное отображение базы данных в SQL Server 2005" и " Рекомендации по зеркалированию базы данных и вопросы производительности".
Зеркальное отображение работает синхронно (подождите, пока журнал не будет зафиксирован в БД), обычно развертывается при хорошем сетевом соединении (LAN)
Доставка журналов выполняется асинхронно (не будет ждать, когда журнал будет передан в БД), обычно развертывается по MPLS / VPN или медленной сети
так что для вашей цели, вы должны использовать Log Shipping
Зеркалирование будет поддерживать синхронизацию как основной среды, так и среды DR в течение 100% времени, что исключает возможность потери данных. Однако, как вы заметили, это отрицательно сказывается на производительности, но может быть необходимо в ситуациях, которые не могут допустить потери данных (например, финансовые приложения). Доставка журналов и их применение в резервной базе данных на сайте аварийного восстановления не оказывает такого же влияния на время отклика пользователя, но открывает небольшой период, в течение которого потенциально может произойти потеря данных.