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

В этом разделе описаны изменения в репликации SQL Server. Эти изменения затрагивают работу и взаимодействие функций в SQL Server 2008 по сравнению с более ранними версиями SQL Server.

Изменения в поведении, в SQL Server 2005

В этом разделе описаны изменения в поведении репликации в SQL Server 2005.

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

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

Возможность

Описание

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

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

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

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

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

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

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

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

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

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

ПримечаниеПримечание

Если параметр схемы 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, то изменения, которые не будут приняты в узле, во время синхронизации приведут к выполнению действий по компенсации, которые отменят изменения, принятые на других узлах.

ПримечаниеПримечание
Если исходная таблица для статьи уже опубликована в другой публикации, то значение параметра @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. Дополнительные сведения об этих параметрах см. в разделе Параметризованные фильтры строк.

См. также

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