Как создать подписку для подписчика, отличного от подписчика SQL Server (программирование репликации на языке Transact-SQL)

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

Примечание по безопасностиПримечание по безопасности

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

Создание принудительной подписки для публикации транзакций или публикации моментальных снимков на подписчики, отличные от SQL Server

  1. Установите последнюю версию поставщика OLE DB для подписчика, отличного от SQL Server, на издателе и распространителе. Требования репликации к поставщику OLE DB см. в разделах Подписчики, отличные от подписчиков SQL Server, Подписчики Oracle, Подписчики IBM DB2.

  2. На издателе базы данных публикации убедитесь, что публикация поддерживает подписчики, отличные от SQL Server. Для этого выполните хранимую процедуру sp_helppublication (Transact-SQL).

    • Если параметр enabled_for_het_sub имеет значение 1, то подписчики, отличные от SQL Server, поддерживаются.

    • Если параметр enabled_for_het_sub имеет значение 0, выполните хранимую процедуру sp_changepublication (Transact-SQL), при этом в качестве значения параметра @property укажите enabled_for_het_sub, а в качестве значения @value — true.

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

      Перед изменением значения enabled_for_het_sub на true необходимо удалить все существующие подписки на публикацию. Нельзя присвоить параметру enabled_for_het_sub значение true, если публикация также поддерживает обновляемые подписки. Изменение параметра enabled_for_het_sub отразится на других свойствах публикации. Дополнительные сведения см. в разделе Подписчики, отличные от подписчиков SQL Server.

  3. В базе данных публикации на издателе, выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_addsubscription (Transact-SQL)). Задайте @publication, @subscriber, (назначение по умолчанию) в качестве значения параметра @destination_db, push в качестве значения параметра @subscription_type, а также 3 в качестве значения параметра @subscriber_type (задает поставщика OLE DB).

  4. В базе данных публикации на издателе, выполните процедуру изменения задержки и проверки соединений для репликации транзакций (sp_addpushsubscription_agent (Transact-SQL)). Укажите следующее:

    • параметры @subscriber и @publication;

    • значение (назначение по умолчанию) в параметре @subscriber_db;

    • свойства источника данных, отличного от SQL Server, для параметров @subscriber_provider, @subscriber_datasrc, @subscriber_location, @subscriber_provider_string и @subscriber_catalog;

    • учетные данные Microsoft Windows, с которыми будет запускаться агент распространителя на распространителе в параметре @job_login, а пароль — в параметре @job_password;

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

      Для соединений со встроенной проверкой подлинности Windows всегда используются учетные данные Windows, передаваемые через параметры @job_login и @job_password. Агент распространителя всегда создает локальные соединения с распространителем через встроенную систему проверки подлинности Windows. По умолчанию агент подключается к подписчику через встроенную систему проверки подлинности Windows.

    • значение 0 в параметре @subscriber_security_mode и сведения об имени входа поставщика OLE DB для параметров @subscriber_login и @subscriber_password;

    • расписание агента распространителя для этой подписки. Дополнительные сведения см. в разделе Как определить расписания синхронизации (программирование репликации на языке Transact-SQL).

    Примечание по безопасностиПримечание по безопасности

    При создании принудительной подписки на издателе с удаленным распространителем значения, указываемые для всех параметров, включая job_login и job_password, передаются распространителю в виде незашифрованного текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Шифрование соединений с SQL Server.