У меня есть несколько баз данных Tb в Windows Server 2008. Я хотел бы, чтобы служба работала, когда сервер выходит из строя или рейды нужно восстанавливать.
Какую модель выбрать репликацию или зеркалирование? А как настроить, что живой сервер заменяет мертвый?
Танс Арман.
А теперь это главный вопрос! Без сомнения, вы получите 101 ответ, но если ваш вопрос действительно спрашивает, какая из этих технологий, вероятно, лучше всего подходит для предоставления доступа к базе данных, я бы использовал зеркалирование каждый раз. Репликация отлично подходит для масштабирования данных и повышения доступности подмножеств данных.
Если ваш вопрос заключается в том, какую инфраструктуру я могу создать, чтобы достичь 5 девяток или более высокой доступности, я бы начал говорить о кластеризации, виртуализации и одноранговой репликации (последнее, что я бы выбрал только в SQL 2008 R2).
Возвращаясь к зеркалированию, для автоматического переключения при отказе вам понадобится следящий сервер, и необходимо будет решить проблему разрешения имени сервера (одно из решений состоит в том, что вы можете использовать партнера по отработке отказа в строке подключения).
Зеркальное отображение, настроенное в режиме высокой безопасности с присутствием свидетеля, может позволить переключение активного экземпляра базы данных без проблем с приложением. Загвоздка в том, что это синхронная операция каждый раз, когда происходит транзакция ... то есть она должна быть зафиксирована на обоих узлах до завершения транзакции. Следовательно, увеличивается задержка.
При репликации приложение должно знать и быть готовым выполнить переключение, если обнаружит, что узел не работает. Это не происходит автоматически и определенно не работает с приложением. Однако у вас нет задержки транзакции, потому что она не синхронна (изменения реплицируются как можно скорее, но не подтверждаются на всех узлах до фиксации транзакции).