sp_addmergepushsubscription_agent (Transact-SQL)

Adiciona um novo trabalho de agente para agendar sincronização de uma assinatura push para uma publicação de mesclagem. Esse procedimento armazenado é executado no Publicador, no banco de dados de publicação.

Observação sobre segurançaObservação sobre segurança

 Quando um Publicador é configurado com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, inclusive job_login e job_password, são enviados ao Distribuidor como texto sem formatação. Você deve criptografar a conexão entre o Publicador e seu Distribuidor remoto antes de executar esse procedimento armazenado. Para obter mais informações, consulte Criptografando conexões com o SQL Server.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_addmergepushsubscription_agent [ @publication =] 'publication' 
    [ , [ @subscriber = ] 'subscriber' ] 
    [ , [ @subscriber_db = ] 'subscriber_db' ] 
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ] 
    [ , [ @subscriber_login = ] 'subscriber_login' ] 
    [ , [ @subscriber_password = ] 'subscriber_password' ] 
    [ , [ @publisher_security_mode = ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @frequency_type = ] frequency_type ] 
    [ , [ @frequency_interval = ] frequency_interval ] 
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ] 
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ] 
    [ , [ @frequency_subday = ] frequency_subday ] 
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ] 
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ] 
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ] 
    [ , [ @active_start_date = ] active_start_date ] 
    [ , [ @active_end_date = ] active_end_date ] 
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ] 

Argumentos

  • [ @publication = ] 'publication'
    É o nome da publicação. publication é sysname, sem padrão.

  • [ @subscriber = ] 'subscriber'
    É o nome do Assinante. subscriber é sysname, com um padrão NULL.

  • [ @subscriber_db = ] 'subscriber_db'
    É o nome do banco de dados de assinatura. subscriber_db é sysname, com um padrão NULL.

  • [ @subscriber_security_mode = ] subscriber_security_mode
    É o modo de segurança a ser usado ao se conectar a um Assinante na sincronização. subscriber_security_mode é int, com um padrão 1. Se for 0, especificará Autenticação do SQL Server. Se for 1, especificará Autenticação do Windows.

  • [ @subscriber_login = ] 'subscriber_login'
    É o logon do Assinante a ser usado ao se conectar a um Assinante na sincronização. subscriber_login será requerido se subscriber_security_mode for definido como 0. subscriber_login é sysname, com um padrão de NULL.

  • [ @subscriber_password = ] 'subscriber_password'
    É a senha do Assinante para Autenticação do SQL Server. subscriber_password será necessário se subscriber_security_mode for definido como 0. subscriber_password é sysname, com um padrão NULL. Se uma senha de assinante for usada, será criptografada automaticamente.

    Observação sobre segurançaObservação sobre segurança

    Quando possível, solicite que os usuários insiram as credenciais de segurança em tempo de execução. Se for necessário armazenar credenciais em um arquivo de script, proteja o arquivo para evitar acesso não autorizado.

  • [ @publisher_security_mode = ] publisher_security_mode
    É o modo de segurança a ser usado ao se conectar a um Publicador na sincronização. publisher_security_mode é int, com um padrão 1. Se for 0, especificará Autenticação do SQL Server. Se for 1, especificará Autenticação do Windows.

  • [ @publisher_login = ] 'publisher_login'
    É o logon do Assinante a ser usado ao se conectar a um Publicador na sincronização. publisher_login é sysname, com um padrão NULL.

  • [ @publisher_password = ] 'publisher_password'
    É a senha usada na conexão com o Publicador. publisher_password é sysname, com um padrão NULL.

    Observação sobre segurançaObservação sobre segurança

    Quando possível, solicite que os usuários insiram as credenciais de segurança em tempo de execução. Se for necessário armazenar credenciais em um arquivo de script, proteja o arquivo para evitar acesso não autorizado.

  • [ @job_login = ] 'job_login'
    É o logon para a conta do Windows na qual o agente é executado. job_login é nvarchar(257), com um valor padrão NULL. Essa conta do Windows é sempre usada para conexões do agente com o Distribuidor e para conexões com o Assinante e o Publicador ao usar a autenticação integrada do Windows.

  • [ @job_password = ] 'job_password'
    É a senha para a conta do Windows na qual o agente é executado. job_password é sysname, sem padrão.

    Observação sobre segurançaObservação sobre segurança

    Quando possível, solicite que os usuários insiram as credenciais de segurança em tempo de execução. Se for necessário armazenar credenciais em um arquivo de script, você deverá proteger o arquivo para evitar o acesso não autorizado.

  • [ @job_name = ] 'job_name'
    É o nome de um trabalho de agente existente. job_name é sysname com um valor padrão NULL. Esse parâmetro só é especificado quando a assinatura é sincronizada usando um trabalho existente em vez de um trabalho recém-criado (o padrão). Se você for um membro da função de servidor fixa sysadmin terá de especificar job_login e job_password ao especificar job_name.

  • [ @frequency_type = ] frequency_type
    É a freqüência de agendamento do Merg Agent. frequency_type é int e pode ser um dos valores a seguir.

    Valor

    Descrição

    1

    Uma vez

    2

    Sob demanda

    4

    Diariamente

    8

    Semanalmente

    16

    Mensalmente

    32

    Relativo ao mês

    64

    Iniciar automaticamente

    128

    Recorrente

    NULL (padrão)

     

    ObservaçãoObservação

    A especificação de um valor 64 faz o Merge Agent executar em modo contínuo. Isso corresponde a definir o parâmetro - Continuous para o agente. Para obter mais informações, consulte Replication Merge Agent.

  • [ @frequency_interval = ] frequency_interval
    Especifica os dias de execução do Merge Agent. frequency_interval é int e pode ser um dos valores a seguir.

    Valor

    Descrição

    1

    Domingo

    2

    Segunda-feira

    3

    Terça-feira

    4

    Quarta-feira

    5

    Quinta-feira

    6

    Sexta-feira

    7

    Sábado

    8

    Dia

    9

    Dias da semana

    10

    Dias de fim de semana

    NULL (padrão)

     

  • [ @frequency_relative_interval = ] frequency_relative_interval
    É a data do Merge Agent. É o parâmetro usado quando frequency_type é definido como 32 (relativo ao mês). frequency_relative_interval é int e pode ser um dos valores a seguir.

    Valor

    Descrição

    1

    Primeiro

    2

    Segundo

    4

    Terceiro

    8

    Quarto

    16

    Último

    NULL (padrão)

     

  • [ @frequency_recurrence_factor = ] frequency_recurrence_factor
    É o fator de recorrência usado por frequency_type. frequency_recurrence_factor é int com um padrão NULL.

  • [ @frequency_subday = ] frequency_subday
    É a freqüência de reagendamento durante o período definido. frequency_subday é inte pode ser um dos valores a seguir.

    Valor

    Descrição

    1

    Uma vez

    2

    Segundo

    4

    Minuto

    8

    Hora

    NULL (padrão)

     

  • [ @frequency_subday_interval = ] frequency_subday_interval
    É o intervalo para frequency_subday. frequency_subday_interval é int, com um padrão NULL.

  • [ @active_start_time_of_day = ] active_start_time_of_day
    É a hora do dia do primeiro agendamento do Merge Agent, formatada como HHMMSS. active_start_time_of_day é int, com um padrão NULL.

  • [ @active_end_time_of_day = ] active_end_time_of_day
    É a hora do dia em que o Merge Agent deixa de ser agendado, formatada como HHMMSS. active_end_time_of_day é int, com um padrão NULL.

  • [ @active_start_date = ] active_start_date
    É a data do primeiro agendamento do Merge Agent, formatada como YYYYMMDD. active_start_date é int, com um padrão NULL.

  • [ @active_end_date = ] active_end_date
    É a data em que o Merge Agent deixa de ser agendado, formatada como YYYYMMDD. active_end_date é int, com um padrão NULL.

  • [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'
    Especifica se a assinatura pode ser sincronizada pelo Gerenciador de Sincronização do Windows. enabled_for_syncmgr é nvarchar(5), com um padrão FALSE. Se for false, a assinatura não será registrada com o Gerenciador de Sincronização. Se for true, a assinatura será registrada com o Gerenciador de Sincronização e será sincronizada sem iniciar o SQL Server Management Studio.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addmergepushsubscription_agent é usado em replicação de mesclagem e usa funcionalidade semelhante a sp_addpushsubscription_agent.

Exemplo

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks]
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Permissões

Somente membros da função de servidor fixa sysadmin ou db_owner podem executar sp_addmergepushsubscription_agent.