Критические изменения репликации в SQL Server 2005
Изменения: 14 апреля 2006 г.
В этом разделе описаны изменения функции репликации, в результате которых может потребоваться изменение приложений.
![]() |
---|
Этот раздел доступен в справочной документации по программе установки, а также в электронной документации по SQL Server 2005. Ссылки на разделы, выделенные полужирным шрифтом в справочной документации по установке, относятся к разделам, доступным только в электронной документации. |
Критические изменения, влияющие на все типы репликации
Следующие критические изменения в Microsoft SQL Server 2005 влияют на все типы репликации.
Возможность | Описание |
---|---|
Изменения, необходимые для сценариев репликации |
Модель безопасности агента репликации по сравнению с Microsoft SQL Server 2000 изменилась. Дополнительные сведения о моделях безопасности см. в разделе Модель безопасности агента репликации. Если пользователь, будучи членом фиксированной серверной роли sysadmin в SQL Server 2005, запускает сценарии репликации, созданные в SQL Server 2000 или SQL Server 7.0, они будут выполняться правильно. Если пользователь является членом фиксированной роли базы данных dbo или какой-либо другой роли, при выполнении сценариев произойдет сбой и их придется обновить. Дополнительные сведения об обновлении сценариев см. в разделе How to: Upgrade Replication Scripts (Replication Transact-SQL Programming). Хотя обновление сценариев, выполняемых членами роли sysadmin, не требуется, рекомендуется его выполнить с целью улучшения безопасности. |
Локальные соединения агентов репликации |
При обновлении до версии SQL Server 2005 все локальные соединения, использующие проверку подлинности SQL Server, настраиваются на использование проверки подлинности Windows. Локальными называются соединения, производимые агентом к экземпляру SQL Server, запущенному на том же компьютере, что и агент. Например, агент слияния при подписке по запросу запускается на стороне подписчика, и все его соединения с подписчиком являются локальными. В предыдущих версиях SQL Server агенты по умолчанию запускались в контексте учетной записи службы агента SQL Server. После обновления локальные соединения производятся в контексте этой учетной записи. В SQL Server 2005 возможно управление по отдельности каждой из учетных записей, под которыми агенты репликации запускаются и осуществляют интегрированные с Windows соединения с базами данных и другими ресурсами; для каждого из агентов можно задать отдельную учетную запись. После обновления рекомендуется задать отдельные учетные записи для каждого агента. Дополнительные сведения см. в разделах Обновление реплицируемых баз данных и Модель безопасности агента репликации. |
Элементы управления ActiveX |
Все элементы управления ActiveX помечаются как небезопасные для выполнения сценариев и инициализации. Элемент управления ActiveX агента моментальных снимков в SQL Server 2005 недоступен. Вместо этого следует использовать новый управляемый агент моментальных снимков. Дополнительные сведения см. в образце кода SnapshotGenerationAgent и разделе How to: Create the Initial Snapshot (RMO Programming). |
Пароль для учетной записи distributor_admin |
Доверенные соединения между издателем и удаленным распространителем больше не поддерживаются, так как они не требовали пароля (в версиях более ранних, чем SQL Server 2000 с пакетом обновления 3 (SP3), доверенные соединения использовались по умолчанию). В случае использования удаленного распространителя перед обновлением до SQL Server 2005 следует преобразовать доверенные соединения в недоверенные (это не касается издателей, использующих локальный распространитель). Дополнительные сведения об учетной записи distributor_admin см. в разделе Защита распространителя. Чтобы определить используемый тип соединения
Чтобы изменить соединение на недоверенное
|
В состав выпуска SQL Server Express не входит агент SQL Server |
При обновлении до выпуска SQL Server Express необходимо перенастроить синхронизацию репликации, поскольку в состав выпуска SQL Server Express не входит агент SQL Server. Для использования подписок по запросу необходимо синхронизировать их с помощью объектов RMO, диспетчера синхронизации Windows либо путем запуска агента репликации из командной строки. Дополнительные сведения см. в разделе Репликация данных в SQL Server Express. Если агент SQL Server по-прежнему нужен для запуска заданий агента репликации, следует использовать принудительную подписку или обновить SQL Server до другой версии (агент SQL Server поставляется со всеми версиями, кроме SQL Server Express и Microsoft SQL Server 2005 Compact Edition). При принудительной подписке агент распространителя или агент слияния запускается на распространителе, поэтому агент SQL Server будет доступен (выпуск SQL Server Express не может быть распространителем). |
Подписчики Microsoft Access (Jet 4.0) |
Jet представляет собой базу данных, лежащую в основе Access, и в SQL Server 2000 подписка на базы данных Jet поддерживалась репликацией. Такие подписки больше не поддерживаются. Вместо этого рекомендуется использовать Microsoft SQL Server 2005 Express Edition. Access может использовать базу данных SQL Server в качестве основы, и на базы данных SQL Server это не влияет. Дополнительные сведения см. в разделе Репликация данных в SQL Server Express. |
Критические изменения для репликации транзакций
Следующие критические изменения в SQL Server 2005 влияют на репликацию транзакций.
Возможность
Описание
Режим Message Queuing для подписок, обновляемых посредством очередей
При использовании подписок, обновляемых посредством очередей, изменения со стороны подписчиков записываются в очередь; затем они считываются из очереди и доставляются издателю агентом чтения очереди. В SQL Server 2000 подписки могли использовать как очередь SQL Server, так и Message Queuing. Тип очереди задавался с помощью параметра @queue_type хранимой процедуры sp_addpublication (Transact-SQL) с допустимыми значениями sql и msmq. В SQL Server 2005 допустимо только значение sql. Если в существующих публикациях используется Message Queuing, то при обновлении следует настроить в них использование очереди SQL Server. Приложения, для которых обновление посредством очередей с помощью Message Queuing является основным, следует переписать таким образом, чтобы приспособить их к очереди SQL Server. Дополнительные сведения о подписках, обновляемых посредством очередей, см. в разделе Обновляемые подписки для репликации транзакций.
Если при обновлении SQL Server будет запущена служба MSMQ, то существующие очереди подписки MSMQ будут удалены.
Важно!
Кроме того, в Windows 2000 и Windows XP должна быть запущена служба координатора распределенных транзакций (Майкрософт) (MSDTC), поскольку для работы MSMQ на этих платформах требуется служба MSDTC.
Если служба MSMQ не запущена, следует удалить очереди вручную после завершения обновления. Дополнительные сведения о процессе удаления очередей см. в документации по Windows.
Критические изменения в репликации слиянием
Следующие критические изменения в SQL Server 2005 влияют на репликацию слиянием.
Возможность | Описание |
---|---|
Публикация из SQL Server Express |
SQL Server MSDE может служить в качестве издателя при публикациях слиянием. Выпуск SQL Server Express, заменяющий выпуск MSDE, не может выступать в роли издателя. Он позволяет подписаться на публикации слиянием, публикации транзакций и публикации моментальных снимков. Репликация слиянием и репликация транзакций с обновляемыми подписками позволяют передавать изменения от подписчиков обратно к издателю. Дополнительные сведения о репликации в SQL Server Express см. в разделе Репликация данных в SQL Server Express. |
Пакетирование изменений |
В предыдущих версиях SQL Server изменения, производимые агентом слияния, выполнялись в построчном режиме. В SQL Server 2005 изменения объединяются в пакеты с целью улучшения производительности; поэтому в пределах одной инструкции можно вставить, обновить или удалить несколько строк. Если в каких-либо из публикуемых таблиц в базах данных подписки или публикации имеются триггеры, убедитесь, что эти триггеры могут обрабатывать многострочную вставку, обновления и удаления. Дополнительные сведения см. в разделе Замечания по работе с несколькими строками в триггерах DML. |
Повторное создание таблиц конфликтов |
При обновлении до SQL Server 2005 таблицы конфликтов создаются повторно, а их владельцем назначается DBO. Если в SQL Server 2000 владельцем какой-либо из таблиц был другой пользователь, может потребоваться изменение приложения. При репликации слиянием для каждой статьи публикации создается таблица конфликтов с именем в форме conflict_PublicationName_ArticleName. Все таблицы метаданных при обновлении создаются повторно, а все таблицы конфликтов создаются в схеме DBO. |
Новые назначаемые диапазоны идентификаторов |
Для таблиц, использующих автоматическое управление диапазонами идентификаторов, при репликации в процессе обновления могут назначаться новые диапазоны идентификаторов. Если диапазон идентификаторов какой-либо из таблиц, назначенный подписчику, больше, чем назначенный издателю, при репликации издателю назначается диапазон, равный диапазону подписчика. Чтобы определить диапазоны, используемые каждой из статей, выполните процедуру sp_helpmergearticle (Transact-SQL) в базе данных публикации и проверьте столбцы pub_identity_range и identity_range. |
См. также
Основные понятия
Обратная совместимость репликации