Поделиться через


Изменения в поведении репликации SQL Server 2005

Изменения: 14 апреля 2006 г.

В данном разделе описываются изменения в поведении системы репликации, которая реализована в Microsoft SQL Server 2000. Дополнительные сведения об улучшении системы репликации см. в разделе Улучшения в репликации.

ms143733.note(ru-ru,SQL.90).gifПримечание.
Этот раздел доступен в справочной документации по программе установки, а также в электронной документации по SQL Server 2005. Ссылки на разделы, выделенные полужирным шрифтом в справочной документации по установке, относятся к разделам, доступным только в электронной документации.

Изменения, связанные со всеми типами репликации

Следующие изменения связаны со всеми типами репликации.

Возможность Описание

Модель безопасности агента репликации

В предыдущих версиях SQL Server агенты запускались по умолчанию в контексте учетной записи служб агентов SQL Server. Microsoft SQL Server 2005 позволяет проводить тонкую настройку для каждой учетной записи, под которой агенты репликации запускаются, и устанавливать доверенные соединения Microsoft Windows с базами данных и другими ресурсами. Для каждого агента может быть определена отдельная учетная запись. Дополнительные сведения см. в разделах Вопросы безопасности репликации и Модель безопасности агента репликации. Дополнительные сведения об изменениях, связанных с обновлениями, см. в подразделе «Новая модель безопасности агента репликации» раздела Обновление реплицируемых баз данных и в разделе Критические изменения репликации в SQL Server 2005.

Диспетчер синхронизации Windows

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

Средство просмотра конфликтов репликации

В SQL Server 2000 средство просмотра конфликтов репликации было упаковано для перераспространения. В SQL Server 2005 данное средство не представлено отдельным пакетом. Чтобы включить средство просмотра конфликтов репликации в приложение, нужно установить на компьютер платформу Microsoft .NET Framework 2.0, на которой развертывается приложение, и скопировать некоторые файлы на компьютер. Дополнительные сведения см. в разделе «Другие вопросы обновления репликации» в справке помощника по обновлению. Дополнительные сведения о помощнике по обновлению см. в разделе Использование помощника по обновлению для подготовки к обновлениям.

Изменения в параметрах схемы

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

Изменения в поведении параметров схемы

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

ms143733.note(ru-ru,SQL.90).gifПримечание.
Если параметр схемы 0x8000 был установлен в SQL Server 2000, он отключается при обновлении до SQL Server 2005. Для параметров схемы 0x10 или 0x40 репликация может создать большее количество индексов в SQL Server 2005, чем в SQL Server 2000.
Параметр Поведение, если параметр установлен в SQL Server 2000 Поведение, если параметр установлен в SQL Server 2005

0x80

Создает ограничение или индекс. Если параметр 0x8000 также включен, в качестве ограничения с индексом создается первичный ключ. Если параметр 0x8000 не включен, создается только индекс для ключевого столбца.

Создает ограничение первичного ключа на стороне подписчика. Любые индексы, связанные с ограничением, также реплицируются, даже если параметры 0x10 и 0x40 не включены (эти параметры в таких случаях управляют созданием индекса).

0x4000

Создает ограничение или индекс. Если параметр 0x8000 также включен, в качестве ограничения с индексом создается ограничение уникальности. Если параметр 0x8000 не включен, создается только индекс для столбца.

Создает ограничение уникальности на стороне подписчика. Любые индексы, связанные с ограничением, также реплицируются, даже если параметры 0x10 и 0x40 не включены (эти параметры в таких случаях управляют созданием индекса).

0x8000

Создает ограничения первичного ключа и ограничения уникальности, если задан параметр 0x80 или 0x4000. Если ни один из этих параметров не задан, параметр 0x8000 не влияет на работу.

Параметр не влияет на работу сервера.

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

Следующие изменения влияют на репликацию транзакций.

Возможность Описание

Владелец объекта подписчика

Если для создания публикации используется мастер создания публикаций SQL Server 2005, то в качестве владельца объектов, созданных на подписчике, по умолчанию устанавливается владелец соответствующих объектов на издателе. В предыдущих выпусках владелец не был определен во время создания объекта на подписчике. По умолчанию владелец связывался с учетной записью агента распространителя, используемого для связи с подписчиком. Поведение хранимых процедур осталось неизменным sp_addarticle (Transact-SQL).

Режим безопасности обновляемых подписок

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

  • 0: используется проверка подлинности SQL Server с именем, заданным в хранимой процедуре как имя и пароль входа в систему.
  • 1: используется контекст безопасности (проверка подлинности SQL Server или встроенная проверка подлинности Windows) пользователя, производящего изменение на подписчике.
  • 2: используется существующее, определенное пользователем имя для входа для связанного сервера.

В предыдущих версиях SQL Server использование параметра 0 для определения динамического вызова удаленной процедуры (RPC) от подписчика на издателе было предпочтительнее, чем использование связанного сервера.

Изменение поведения для репликации слиянием

Следующие изменения влияют на репликацию слиянием.

Возможность

Описание

Уровень совместимости публикации

В предыдущих версиях SQL Server уровень совместимости автоматически увеличивался, если включались функции, требуемые на более высоком уровне. В SQL Server 2005 необходимо вручную установить уровень совместимости в значение 90RTM перед включением функции, для которой необходим этот уровень совместимости. Для получения дополнительных сведений см. подраздел «Уровни совместимости для публикаций слиянием» раздела Использование нескольких версий SQL Server в топологии репликации.

Действия по компенсации

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

В SQL Server 2005 параметр @compensate_for_errors хранимой процедуры sp_addmergearticle определяет, будут ли производиться действия по компенсации. Когда значение установлено в False (значение по умолчанию), действия по компенсации запрещены. Однако ошибки еще регистрируются, и последовательность слияний будет продолжать попытки применить изменения. Хотя может оказаться, что данные в изменяемых строках не сходятся. В случае ошибок можно применить изменения и добиться соответствия данных. Если значение установлено в True, то изменения, которые не будут приняты в узле, во время синхронизации приведут к выполнению действий по компенсации, которые отменят изменения, принятые на других узлах.

ms143733.note(ru-ru,SQL.90).gifПримечание.

Если исходная таблица для статьи уже опубликована в другой публикации, то значение параметра @compensate_for_errors должно быть одинаковым для обеих статей. Для подписок по запросу на подписчике, работающем на SQL Server 2000 версии 8.00.858 или раньше (которую включает пакет обновления 3), действия компенсации будут вызываться, даже если параметр @compensate_for_errors имеет значение False.

Таблицы конфликтов

В предыдущих версиях SQL Server репликация слиянием создает по одной таблице конфликтов на каждую табличную статью в публикации, с именем в форме conflict_<имя_статьи>. В SQL Server 2005 сведения содержатся в двух таблицах: MSmerge_conflicts_info и таблице с именем в форме MSmerge_conflict_<имя_публикации>_<имя_статьи>.

Очистка метаданных, основанных на удержании

SQL Server 2005 использует очистку метаданных, основанных на хранении, которая была введена в SQL Server 2000 с пакетом обновления 1 (SP1). Метаданные периодически удаляются из следующих системных таблиц.

  • MSmerge_contents
  • MSmerge_tombstone
  • MSmerge_genhistory
  • Любые таблицы с образами предыдущего состояния, если есть. Таблицы с образами предыдущего состояния присутствуют, если параметр оптимизации синхронизации @keep_partition_changes включен для публикации (см. следующий раздел для дополнительных сведений об этом параметре).

Параметр @keep_partition_changes

Параметр @keep_partition_changes имеет значение False по умолчанию в предыдущей версии SQL Server, потому что это приводит к большему количеству данных, чем количество данных, хранящихся на издателе. Теперь этот параметр имеет значение True, если уровень совместимости публикации имеет значение 90RTM или более, а параметр @use_partition_groups имеет значение False. Дополнительные сведения об этих параметрах см. в разделе Параметризованные фильтры строк.

См. также

Основные понятия

Обратная совместимость репликации

Другие ресурсы

Улучшения в репликации

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

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