Главная » Microsoft SQL Server, Базы данных » Нововведения в репликациях SQL Server 2005

0

В следующих разделах будут описаны все нововведения, появившиеся в репликациях SQL Server 2005.

Продолжение репликаций снимков базы данных

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

Публикации Oracle

SQL Server 2005 позволяет сконфигурировать СУБД Oracle для публикаций подписчикам и распространителям SQL Server 2005. Для этого мастер публикаций помещает в таблицы Oracle соответствующие триггеры. Эти триггеры отслеживают изменения, после чего посылают их подписчикам SQL Server. Сервер Oracle можно активизировать для репликаций снимков базы данных и транзакций. Сервером Oracle не поддерживается репликация слияния. Публикация развертывается с помощью сценария, запускаемого на сервере издателя Oracle, что позволяет удалить на нем все объекты репликации и метаданные.

Повышенная безопасность

SQL Server 2005 с самого начала разрабатывался как система с повышенной безопасностью. Нигде повышенная защищенность не ощущается так, как в репликациях. Ранее все типы репликации использовали общий каталог Admin, из которого загружались снимки баз данных. В SQL Server 2005 он был заменен локальным каталогом (например, \ Program Files\Microsof t SQL Server\MSSQL. l\Repldata), однако у вас есть возможность сконфигурировать этот каталог снимков для доступа подписок по запросу тех пользователей, у которых нет обычных разрешений доступа к данному локальному каталогу. Все агенты репликации могут запускаться под учетной записью, отличной от используемой агентом SQL Server Agent. Это позволяет назначить агентам репликации более низкий уровень разрешений, чем было возможно в SQL Server 2000. Теперь подписчики репликации слияния могут подключаться к Web-cepBepy и синхронизироваться с ним с помощью защищенного протокола HTTPS. Этот вариант более защищенный, чем те, которые были доступны в SQL Server 2000.

Одноранговая модель репликации

Как уже говорилось ранее, одноранговая топология репликации транзакций позволяет масштабировать решения с высоким уровнем доступности. Пользователям становится доступной модель “записывай, куда хочешь”. Вместо того, чтобы тысяча пользователей одновременно подключалась к одному серверу, выступающему своеобразной “рабочей лошадкой”, теперь можно иметь десять серверов с идентичными данными, к каждому из которых будет подключаться не больше ста пользователей. Уменьшение нагрузки выливается в повышение производительности, при этом каждый из серверов баз данных предъявляет более низкие требования к оборудованию, чем единственный сервер. В одноранговой модели все изменения в данных на одном узле распространяются на все остальные узлы. Таким образом, все узлы, участвующие в одноранговой репликации, имеют одни и те же данные. При использовании этой топологии следует минимизировать конфликты за счет использования разделения или разрешения операций записи только на одном узле. Если этого не сделать, агент распространения не справится со своей работой, и все узлы постепенно выйдут из синхронизации.

Чтобы включить репликацию транзакций для участия в одноранговой топологии, создается обычная публикация транзакций (но без непосредственных обновлений). После создания щелкните правой кнопкой мыши на публикации, выберите в контекстном меню пункт Subscription Options и установите для параметра Allow Peer to Peer Subscriptions значение true. Разверните подписку у всех подписчиков. После того как все подписки будут развернуты у всех подписчиков, щелкните правой кнопкой мыши на публикации и запустите мастер конфигурации одноранговой репликации.

Репликация инструкций DDL

Теперь вы можете при желании реплицировать все инструкции DDL, в том числе ALTER TABLE, ALTER VIEW, ALTER PROCEDURE, ALTER FUNCTION и ALTER TRIGGER.

В предыдущих версиях SQL Server, чтобы внести изменения в схему, часто приходилось удалять публикации, хотя SQL Server 2000 и позволял внести некоторые изменения с помощью хранимых процедур репликации sp_repladdcolumn и sp_repldropcolumn.

Также у вас есть возможность отключить репликацию изменений схемы, щелкнув правой кнопкой мыши на публикации и выбрав в контекстном меню пункт Subscription Options. Установите для параметра Replication Schema Properties значение false. Этот параметр доступен во всех типах репликаций.

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

SQL Server 2005 позволяет реплицировать полнотекстовые индексы. Для этого нужно включить в базе данных подписчика полнотекстовую индексацию и указать это свойство в параметрах статьи. В диалоговом окне статьи щелкните на кнопке Article Properties, установите переключатель в положение Set Prtoperties of Highlited Table Article или Set Properties of All Table Articles и установите для параметра Copy Full-Text Indexes значение True.

Разрешение анонимных подписок на все публикации

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

Логические записи в репликации слияния

В SQL Server 2000 обновления, выполняемые в таблицах, связанных с DRI и участвующих в репликациях слияния, могли применяться у издателя и подписчика безо всякого порядка. Например, дочерние записи у издателя могли появиться раньше родительских, что в некоторых случаях приводило к завершению работы агента слияния и необходимости его повторного запуска. В SQL Server 2005 транзакции реплицируются как логические единицы, называемые логическими записями, в которых родительские записи реплицируются раньше дочерних.

Предварительно вычисленные разделы

Предварительно вычисленные разделы — это новое средство репликации слияния в SQL Server 2005. В SQL Server 2000 при запуске агента слияния он должен был определить, какие из измененных строк должны быть слиты с конкретным подписчиком. Этот процесс существенно снижал производительность. В SQL Server 2005 стало возможным включать предварительное вычисление разделов, т.е. выборок строк, которые должны быть отправлены определенному подписчику при запуске агента слияния. Вследствие этого агенты слияния стали запускаться быстрее, с меньшим влиянием на производительность.

Обновление уникальных ключей

В SQL Server 2000 обновление столбца первичного ключа сегментировалось на операции удаления и вставки. Это приводило к проблемам при выполнении каскадных удалений в таблицах. В SQL Server 2005 обновление столбца первичного ключа реплицируется как инструкция UPDATE, что существенно повышает производительность.

Пользовательская обработка конфликтов с помощью RM0

В версии SQL Server 2000 для разрешения конфликтов с помощью усложненной логики приходилось создавать объекты СОМ или хранимые процедуры. В SQL Server 2005 сложную логику можно реализовать с помощью пространства имен Microsof t. SqlServer. Replication.BusinessLogicSupport объектной модели RMO. Эту объектную модель также можно использовать для обработки ошибок и изменений данных.

Многочисленные улучшения производительности

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

Маркеры трассировки

Один из наиболее часто задаваемых вопросов, связанных с репликациями, звучал следующим образом: “Насколько быстро после применения транзакции у издателя она применяется у подписчика?” Другими словами, на сколько отстает подписчик от издателя. В мониторе репликаций SQL Server 2005 имеется специальная вкладка Trace Tokens. Если щелкнуть на кнопке Insert Tracer в этой вкладке, у издателя будет вставлена запись, позволяющая узнать, сколько времени прошло до применения изменения в записи к подписчику (рис. 39.2).

Puc. 39.2. Используйте маркеры для мониторинга задержек обновления между издателем и подписчиком

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

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

Загрузка только статей

В SQL Server 2005 появилась новая возможность определять, какие из статей предназначены “только для загрузки” (т.е. эти данные перемещаются только от издателя к подписчику).

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

Монитор репликаций

Монитор репликаций был полностью переписан и теперь стал центральным пультом управления репликациями. Монитор репликаций больше не интегрирован в другие утилиты — теперь он представляет собой обособленную консоль управления. Запустить монитор репликаций можно из папки Program Files\Microsof t SQL Server\90\Tools\Binn, введя имя файла sqlmonitor.exe. В качестве альтернативы его можно запустить и из интерфейса Management Studio, щелкнув правой кнопкой мыши на узле Replication нужного сервера баз данных и выбрав в контекстном меню пункт Launch Replication Monitor. Монитор репликаций (рис. 39.3) очень похож на группу Replication Monitor Group, присутствовавшую в SQL Server 2000. Он позволяет быстро получить оценку состояния всех экземпляров SQL Server, которые выбраны для мониторинга.

Puc. 39.3. В целях упрощения работы монитор репликаций был перепроектирован

На рис. 39.3 показано, как выполняется мониторинг экземпляра SQL Server 2005, который называется Main. Ниже приведен список некоторых улучшений, выполненных в мониторе репликаций.

?               Улучшенная метрика. В предыдущих версиях SQL Server отображались три состояния заданий репликации: успешно выполненное (successful), не выполненное (failed) и запущенное повторно (retrying). В SQL Server 2005 в метрику добавлен символ предупреждения, отражающий состояние проблем производительности.

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

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

?               Введены маркеры трассировки для измерения задержек в репликациях транзакций. Эти маркеры позволяют точно отслеживать производительность репликаций транзакций и оценивать их продолжительность.

?               Предупреждения по истечении срока подписки. Этой возможности не было в SQL Server 2000.

Репликации слияния по протоколу HTTPS

В предыдущих версиях SQL Server невозможно было настроить репликацию через Интернет. Пользователю приходилось использовать виртуальные частные сети или серверы FTP. Виртуальные сети сильно замедляли производительность, и если не использовался клиент VPN от Microsoft (для его запуска нужно было выбрать в меню Start пункт Settings1^ Network and Dial-Up Connections^Make a New Connection^Connect to a prinate network through the Internet), то достаточно дорого обходились пользователю. Использование серверов FTP считается незащищенным решением, так как пароль FTP передается в Интернете в незашифрованном (т.е. текстовом) виде, если не используется анонимный доступ (в последнем случае загрузить снимок базы может вообще любой желающий). Подключение через Интернет также подразумевает открытие в брандмауэре порта 1433 для входящих подключений, что также подвергает риску систему. Репликация слияния в SQL Server 2005 позволяет сконфигурировать Web-сервер, обеспечивающий синхронизацию клиентов через Интернет посредством защищенного протокола HTTPS.

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

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

SQL RM0

В SQL Server 2000 можно было создавать репликации с использованием хранимых процедур репликации и объектной модели SQL DMO. В SQL Server 2005 была добавлена специальная объектная модель RMO — именно она в настоящее время считается наиболее предпочтительным методом создания объектов репликации (по сравнению с SQL DMO). Модель SQL RMO можно использовать в среде .NET, к тому же она создает меньшую дополнительную нагрузку, чем SQL DMO и хранимые процедуры репликации.

Упрощенные мастера

Мастера репликаций были в значительной мере упрощены. В SQL Server 2000 для развертывания простейшей публикации у подписчика приходилось выполнять около 52 щелчков мышью. В SQL Server 2005 мастера репликаций имеют ряд преимуществ.

?               Они содержат примерно на 40% меньше страниц.

?               Значительно упрощены диалоговые окна.

?               Улучшены автоматически определяемые значения и значения, принятые по умолчанию.

?               Уменьшено количество уровней ветвления.

?               Все мастера предлагают записать выполненные действия в виде сценария или применить их немедленно.

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

Инициализация подписчика

В предыдущих версиях SQL Server приходилось развертывать снимок базы данных с помощью запуска агента снимка для генерации схемы и данных в файловой системе, а затем запускать агент распространения или слияния и воссоздавать реплицируемые объекты у подписчика. Также существовала возможность предварительно создать базу данных подписки вручную, после чего выполнить несинхронную подписку. Ручное создание подписки предполагает большой объем работы по настройке ограничений и столбцов идентичности с параметром NOT FOR REPLICATION и замещения их с помощью соответствующих хранимых процедур репликации. Запуск агента снимков каждый раз и отправка файлов данных посредством агентов слияния или распространения отнимало много времени, особенно когда объем снимка был большим.

В SQL Server 2005 существует ряд дополнительных вариантов перемещения данных базы.

Резервирование и восстановление

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

Копирование базы данных

Вы можете также вручную создать все объекты на стороне подписчика с помощью утилиты массового копирования (Ьср), службы преобразования данных (DTS) и прочих методов синхронизации данных. Однако вам потребуется проделать солидный объем работ по добавлению предложения NOT FOR REPLICATION в столбцы идентичности и ограничения внешних ключей; также вам придется модифицировать хранимые процедуры репликации.

Динамические снимки базы данных

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

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

По теме:

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