Главная » Microsoft SQL Server, Базы данных » Сравнительная характеристика различных методов распределения данных

0

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

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

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

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

?               Триггеры. Могут использоваться для распространения данных, однако чаще всего в пределах локального сервера. С ними связаны повышение нагрузки на ресурсы сервера и снижение производительности. Обычно триггеры используют для аудита.

?               Служба интеграции (ранее известная как служба преобразования данных DTS). Служба интеграции может распространять данные, к тому же она имеет достаточно богатый набор средств преобразования данных в процессе их перемещения с сервера источника на сервер назначения. Служба интеграции может быть использована для распространения данных в гораздо более широкий круг источников данных, чем может позволить репликация SQL Server. Служба интеграции не отслеживает отдельные транзакции; если вы решили ее использовать, значит, вам придется каждый раз полностью заменять весь набор данных или самостоятельно создавать некоторый механизм, позволяющий определять, какие именно данные были изменены в источнике для репликации только их подмножества. Службу инте1рации обычно используют в пакетных процессах, которые не накладывают ограничения на задержку операций.

Изоляция моментальных снимков (snapshot) была нацелена на решение вопросов производительности и доступности, связанных с определенными недостатками SQL Server 2000. Используя эту функцию, вы можете повысить общую производительность и облегчить пользователям получение необходимых им данных.

?               Резервирование/восстановление. Все перечисленные выше варианты используются для распространения отдельных транзакций; резервирование/восстановление связано с распространением базы данных в целом. Это решение является единственно правильным, когда пользователю нужно скопировать всю базу данных, к которой они должны относиться как к доступной только для чтения, так как при следующем восстановлении архива она будет полностью замещена новой копией. Во время выполнения восстановления из архива пользователи должны отключаться от базы данных. К тому же не существует возможности перенесения работы, выполненной на сервере-приемнике, на сервер-источник. Также не существует возможности распространять только часть данных — вы можете иметь дело только с базой данных в целом.

?               Доставка журнала. Доставку журнала можно рассматривать как постепенное восстановление из резервной копии. Вначале на сервере назначения восстанавливается полная резервная копия, после чего следуют периодические восстановления журнала транзакций. Журналы могут восстанавливаться по порядку или все вместе. Во время восстановления пользователи должны отключаться от базы-приемника. Не существует возможности восстановления только фрагмента данных — как и в предыдущем случае, вы ограничены только базой данных в целом. Доставка журнала не обеспечивает такой маленькой задержки, как репликация, и не позволяет отправлять на сервер

назначения только подмножество данных. Также вы не имеете возможности манипулировать данными во время их передачи с сервера-источника на сервер-приемник.

?               Зеркальное отображение данных в Microsoft SQL Server. Введенное в версии SQL Server 2005, зеркальное отображение данных поддерживает один и тот же набор данных на двух серверах. Этот механизм требует наличия третьего сервера (называемого свидетелем), который определяет, когда сервер-источник переходит в автономный режим, после чего перенаправляет пользователей на сервер-приемник. Зеркальное отображение данных использует последовательную доставку журнала. Эта технология хорошо зарекомендовала себя при работе с базами данных среднего размера, обеспечивая при этом относительно невысокую загрузку ресурсов.

?               Кластеризация. Требует специального аппаратного оснащения и разных версий операционной системы. Кластеризация предполагает совместное использование узлами баз данных, СУБД SQL Server и ресурсов. Клиенты подключаются к виртуальному серверу баз данных, который, в свою очередь, обращается за ресурсами к одному изч своих узлов. Если основной узел дает сбой, виртуальный сервер переключается на запасной узел, и это практически не заметно клиенту. Кластеризацию нельзя рассматривать как технологию распространения данных — скорее, это решение обеспечения отказоустойчивости и высокой доступности данных. Кластеризация может использоваться для обеспечения отказоустойчивости при репликациях; она как бы “распространяет” один сервер между несколькими физическими узлами.

?               Программное зеркальное отображение данных. Эти продукты устанавливают драйвер файловой системы, который перехватывает действия над файлами и реплицирует их на сервер назначения. Эти программные продукты потребляют ресурсы главного узла (т.е. сервера источника). Они обеспечивают функциональность, аналогичную аппаратному зеркальному отображению данных, однако с несколько более низкой производительностью. Примером программного решения обеспечения зеркального отображения данных является продукт Double-Take.

?               Аппаратное зеркальное отображение данных. Аппаратное зеркальное отображение данных основано на компонентах таких производителей, как Hitachi Data Systems, ЕМС и Veritas. Это оборудование реплицирует изменения, происходящие на байтовом уровне, из одного дискового массива в другой. Эти решения сильно задействуют кэширование, они дорогостоящие и сложные. В то же время они незаменимы, когда требование доступности данных ставится во главу угла.

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

I Для просмотра метаданных объектов базы, опубликованных в статьях тополо-

оус гии репликации, выберите sysdm_repl_articles в динамическом представ-

*                 I * лении управления.

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

?               таблицы, разбитые на разделы;

?               схемы хранимых процедур;

?               представления, как простые, так и индексированные (в последнем случае они реализуются либо как индексированные представления, либо как таблицы, представляющие их);

?               пользовательские типы и функции;

?               полнотекстовые индексы;

?               псевдонимы типов данных;

?               объекты схемы (ограничения, индексы, триггеры, расширенные свойства, сопоставления и т.п.);

?               инструкции DDL (такие как ALTER TABLE и т.п.).

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

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии