Compartilhar via


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 publicador.

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 Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Ícone de vínculo de tópico Convenções da 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 de NULL.

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

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

  • [ @subscriber_login = ] 'subscriber_login'
    É o logon do Assinante a ser usado ao conectar-se a um Assinante na sincronização. subscriber_login será necessário se subscriber_security_mode estiver 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 estiver definido como 0. subscriber_password é sysname, com um padrão de 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, você deverá proteger o arquivo para impedir 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 de 1. Se for 0, especifica Autenticação do SQL Server. Se for 1, especifica Autenticação do Windows.

  • [ @publisher_login = ] 'publisher_login'
    É o logon a ser usado na conexão com um Publicador durante a sincronização. publisher_login é sysname, com um padrão de NULL.

  • [ @publisher_password = ] 'publisher_password'
    É a senha usada ao conectar-se ao Publicador. publisher_password é sysname, com um padrão de 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, você deverá proteger o arquivo para impedir acesso não autorizado.

  • [ @job_login = ] 'job_login'
    É o logon da conta do Windows na qual o agente é executado. job_login é nvarchar(257), com um valor padrão de 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 da 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 impedir acesso não autorizado.

  • [ @job_name = ] 'job_name'
    É o nome de um trabalho de agente existente. job_name é sysname, com um valor padrão de 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 frequência do agendamento do Agente de Mesclagem. 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 Agente de Mesclagem 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
    Os dias em que o Agente de Mesclagem é executado. 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 Agente de Mesclagem. Esse parâmetro é usado quando frequency_type está definido como 32 (mensal relativo). 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 de NULL.

  • [ @frequency_subday = ] frequency_subday
    É a frequência de reagendamento durante o período definido. frequency_subday é int e 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 de NULL.

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

  • [ @active_end_time_of_day = ] active_end_time_of_day
    É a hora do dia do último agendamento do Agente de Mesclagem, formatada como HHMMSS. active_end_time_of_day é int, com um padrão de NULL.

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

  • [ @active_end_date = ] active_end_date
    É a data do último agendamento do Agente de Mesclagem, formatada como AAAAMMDD. active_end_date é int, com um padrão de NULL.

  • [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr'
    Especifica se a assinatura pode ou não ser sincronizada pelo Gerenciador de Sincronização do Windows. enabled_for_syncmgr é nvarchar(5), com um padrão de 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 [AdventureWorks2012];
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.

Consulte também

Referência

sp_addmergesubscription (Transact-SQL)

sp_changemergesubscription (Transact-SQL)

sp_dropmergesubscription (Transact-SQL)

sp_helpmergesubscription (Transact-SQL)

Conceitos

Criar uma assinatura push

Assinar publicações