Выбор подходящего типа репликации

MicrosoftSQL Server предоставляет три типа репликации. Каждый тип репликации пригоден для различных требований приложения. В зависимости от потребностей приложения можно использовать один или несколько типов репликации в топологии:

  • репликация моментальных снимков;

  • репликация транзакций;

  • репликация слиянием.

Чтобы облегчить выбор подходящего типа репликации, в этом разделе предоставляются следующие сведения:

  • Сценарии репликации

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

  • Типы репликации

    В этом разделе описываются требования приложений, для которых наиболее подходит тот или иной тип репликации.

  • Обновление данных в подписчиках

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

Рекомендуется вначале ознакомиться с описаниями сценариев, чтобы найти сценарий, наиболее подходящий к требованиям приложения, а затем щелкнуть ссылку для получения дополнительных сведений. Если не удается найти близкое соответствие существующим требованиям бизнеса или если необходимы дополнительные сведения о типах репликации, прочтите раздел «Типы репликации». Если для приложения требуются обновления на одном или нескольких подписчиках, прочтите раздел «Обновление данных на подписчиках» для определения подходящей технологии.

Сценарии репликации

Сценарии репликации могут быть подразделены на две большие категории: репликация данных в серверной среде и репликация данных между сервером и клиентами. Сценарии «сервер-сервер» реализуются при помощи репликации транзакций (и иногда репликации моментальных снимков). Сценарии «сервер-клиент» реализуются при помощи репликации слиянием.

Сценарии «сервер-сервер»

Как правило, репликация данных между серверами выполняется для поддержки следующих приложений и требований:

Сценарий

Описание

Повышение масштабируемости и доступности

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

Хранение данных и подготовка отчетов

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

Объединение данных с нескольких узлов

Данные из удаленных офисов часто накапливаются и объединяются в центральном офисе. Аналогичным образом можно реплицировать данные в удаленные офисы. Дополнительные сведения см. в разделе Объединение данных с нескольких узлов (сервер).

Объединение разнородных данных

Некоторые приложения зависят от данных, которые посылаются в базы данных или принимаются из баз данных, отличных от баз данных MicrosoftSQL Server. Используйте репликацию для объединения данных из баз данных, отличных от SQL Server. Дополнительные сведения см. в разделе Объединение разнородных данных.

Разгрузка пакетной обработки

Пакетные операции часто бывают слишком ресурсоемкими для выполнения на сервере OLTP. Используйте репликацию для переноса обработки на выделенный сервер пакетной обработки. Дополнительные сведения см. в разделе Разгрузка пакетной обработки.

Сценарии «сервер-клиент»

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

Сценарий

Описание

Обмен данными с мобильными пользователями

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

Приложения пользовательской точки продажи (Point of sale, POS)

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

Объединение данных с нескольких узлов

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

Типы репликации

Репликация моментальных снимков

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

  • Данные изменяются редко.

  • Допустимо на определенный период времени иметь копии данных, устаревших по отношению к издателю.

  • Репликация небольших объемов данных.

  • Большой объем изменений производится за короткий период времени.

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

Репликация транзакций

Репликация транзакций обычно используется в среде «сервер-сервер» и пригодна в следующих случаях:

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

  • Для приложения необходимы малые задержки между моментом внесения изменений на издателе и моментом прибытия изменений на подписчик.

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

  • На издателе выполняется очень большой объем вставок, обновлений и удалений.

  • Издатель или подписчик представляют собой базу данных, отличную от SQL Server (например, Oracle).

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

Репликация слиянием

Как правило, репликация слиянием применяется в средах «сервер-клиент». Репликация слиянием подходит для любой из следующих ситуаций:

  • Несколько подписчиков могут обновлять одни и те же данные в разное время и передавать эти изменения на издатель и на другие подписчики.

  • Подписчикам нужно получить данные, внести изменения в автономном режиме и позднее синхронизировать изменения с издателем и другими подписчиками.

  • Каждому подписчику нужна индивидуальная секция данных.

  • Поскольку возможно возникновение конфликтов, необходимы средства по распознаванию и разрешению конфликтов.

  • Приложению требуется конечное изменение данных, а не доступ к промежуточным состояниям данных. Например, если строка изменяется пять раз на подписчике до его синхронизации с издателем, у издателя строка изменится только один раз, отражая конечное изменение данных (т. е. значение после пятого изменения).

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

Обновление данных у подписчиков

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

Тип репликации

Используется, если ...

Репликация слиянием

  • Имеется большое количество подписчиков.

  • Данные реплицируются мобильным пользователям.

  • Реплицируемые данные часто обновляются на подписчике.

  • Необходима фильтрация данных, чтобы подписчики получали разные секции данных.

Дополнительные сведения см. в разделах Обзор репликации слиянием и Как работает репликация слиянием.

Одноранговая репликация транзакций

  • Репликация используется для повышения масштабируемости и доступности.

  • Необходима минимальная задержка.

  • Данные не секционируются между подписчиками.

  • Как правило, конфликтов не происходит, тем не менее их необходимо обнаруживать.

Дополнительные сведения см. в разделе Одноранговая репликация транзакций.

Репликация транзакций с обновляемыми подписками

  • Имеется небольшое количество подписчиков.

  • Реплицированные данные большей частью доступны только для чтения на подписчике.

  • Подписчик, распространитель и издатель большую часть времени подключены друг к другу (для подписок с немедленным обновлением).

Дополнительные сведения см. в разделе Обновляемые подписки для репликации транзакций.