Каковы сценарии использования зеркального отображения, доставки журналов, репликации и кластеризации в SQL Server?

Насколько мне известно, SQL Server предоставляет 4 метода повышения доступности.

Я думаю, что это основные сценарии использования, вкратце: -

1) Репликация в первую очередь подходит для сценариев онлайн-офлайн-синхронизации данных (ноутбук, мобильные устройства, удаленные серверы).

2) Доставка журналов может использоваться для резервного сервера с ручным переключением, тогда как

3) Зеркальное отображение базы данных - это метод автоматического переключения при отказе

4) Отказоустойчивая кластеризация - это расширенный тип зеркального отображения базы данных.

Я прав ?

Спасибо.


person Chakra    schedule 08.02.2009    source источник
comment
Отличный ответ. Еще кое-что хочу добавить .. сейчас почти 2013 год. Мисс советует не использовать зеркалирование. В конце концов, это уйдет. Кроме того, зеркалирование ограничено только одним партнером.   -  person sam yi    schedule 23.12.2012


Ответы (3)


Отказоустойчивая кластеризация - это технология доступности, которая обеспечивает избыточность на аппаратном уровне и построена на основе технологии кластеризации Windows, то есть не является специфической для SQL Server.

Например, процессор выходит из строя на сервере A. К счастью, сервер A является частью кластера SQL Server, поэтому сервер B берет на себя работу по предоставлению службы SQL Server в течение нескольких секунд. Все это происходит автоматически и прозрачно для пользователей базы данных и / или приложения, обслуживаемого кластером.

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

По следующей ссылке приводится сравнение этих двух технологий, которые могут вам пригодиться.

http://msdn.microsoft.com/en-us/library/ms191309(SQL.90).aspx

Доставка журналов считается скорее технологией резервирования.

Например, его можно использовать для предоставления полной копии вашей основной среды, обычно используемой в качестве горячего резерва, которую можно вручную перевести в оперативный режим. Это можно использовать для обеспечения дополнительной избыточности вашей стратегии резервного копирования. Доставка журналов также может использоваться для разгрузки отчетов с основного сервера путем создания копии производственной базы данных только для чтения в альтернативном расположении / сервере.

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

Например, репликация слиянием может использоваться для поддержки распределенной обработки путем распределения рабочей нагрузки приложения по нескольким серверам, то есть архитектурам распределенной обработки.

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

Репликацию транзакций можно использовать аналогично доставке журналов, однако вы можете ограничить количество конкретных объектов, которые реплицируются подписчику. Это может быть полезно, если для целей отчетности требуется только подмножество таблиц.

Надеюсь, это немного проясняет вам ситуацию. Вы можете найти множество документации по каждой из этих технологий в книгах по SQL Server в Интернете или выполнив поиск каждой технологии в Google. Тем не менее, если у вас есть какие-либо конкретные вопросы, я был бы рад помочь, поэтому не стесняйтесь, напишите мне.

Привет, Джон

person John Sansom    schedule 08.02.2009

В SQL 2008 Enterprise также есть функция, называемая системой отслеживания измененных данных (CDC), которую мы успешно используем там, где я работаю.

У нас чрезмерно нормализованная база данных, что затрудняет получение информации. Нам нужно было изменить структуру данных одновременно с репликацией этих данных на другой сервер для отчетов и тому подобного.

У нас это работает очень хорошо.

person mhenrixon    schedule 08.02.2009
comment
Недавно я разговаривал с пользователем SQL Server 2005, который также сказал, что их база данных была чрезмерно нормализована и они реплицируют данные на сервер отчетов. Разве база данных не должна обрабатывать и транзакции, и отчеты? Зачем мне вкладывать деньги в 2 сервера и тиражировать? Я думаю, что это накладные расходы. - person Chakra; 08.02.2009
comment
@Chakra, это не правило, его просто используют, когда ваш сервер не может хорошо работать с базой данных, используемой для производственных рабочих нагрузок и отчетности. - person Gabriel Guimarães; 12.11.2010

Доставка и репликация журналов AFAIK, вероятно, лучше подошли бы наоборот.

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

offline-data не так чувствителен к задержкам, как сервер резервного копирования, но лично я вообще не вижу необходимости в доставке журналов, я не вижу, когда это когда-либо станет более подходящей альтернативой репликации ( но могло случиться так, что репликация не была реализована до sql2005)

Возможно, я путаю репликацию с зеркалированием, и, как примечание, зеркалирование не дает вам автоматического переключения при отказе, только HA-кластер дает вам эту функциональность, что означает:

с использованием как минимум стандарта SQL Server 2005, Windows Enterprise и общего хранилища данных (например, SAN).

person jishi    schedule 08.02.2009
comment
Вы неправы. Зеркальное отображение имеет аварийное переключение, но оно автоматическое только при использовании экземпляра sql-свидетеля. Зеркальное отображение работает на уровне базы данных и отправляет транзакции удаленному экземпляру sql, если он находится в режиме высокой безопасности, транзакция фиксируется только тогда, когда удаленная сторона выполнила транзакцию. Отличие от репликации транзакций состоит в том, что она позволяет изменять схему и добавлять таблицы, поскольку это полная зеркальная копия базы данных. Репликация привязана к объектам базы данных, поэтому, если вы создаете новый объект в базе данных, он не добавляется автоматически. LogShipping имеет более высокую задержку синхронизации. - person Gabriel Guimarães; 12.11.2010
comment
Это правда, дальнейшее расследование дало мне этот вывод позже, до того, как был введен этот ответ. Однако HA-кластер имеет преимущество в том, что полное переключение между двумя узлами отсутствует при зеркалировании. После сбоя вам придется вручную снова настроить зеркальное отображение в обратном направлении. - person jishi; 15.11.2010