Partilhar via


sp_addmergepullsubscription_agent (Transact-SQL)

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

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

sp_addmergepullsubscription_agent [ [ @name = ] 'name' ] 
        , [ @publisher = ] 'publisher'  
        , [ @publisher_db = ] 'publisher_db' 
        , [ @publication =] 'publication' 
    [ , [ @publisher_security_mod e= ] publisher_security_mode ] 
    [ , [ @publisher_login = ] 'publisher_login' ] 
    [ , [ @publisher_password = ] 'publisher_password' ] 
    [ , [ @publisher_encrypted_password = ] publisher_encrypted_password ] 
    [ , [ @subscriber = ] 'subscriber' ] 
    [ , [ @subscriber_db = ] 'subscriber_db' ] 
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ] 
    [ , [ @subscriber_login = ] 'subscriber_login' ] 
    [ , [ @subscriber_password= ] 'subscriber_password' ] 
    [ , [ @distributor = ] 'distributor' ] 
    [ , [ @distributor_security_mode = ] distributor_security_mode ] 
    [ , [ @distributor_login = ] 'distributor_login' ] 
    [ , [ @distributor_password = ] 'distributor_password' ] 
    [ , [ @encrypted_password = ] encrypted_password ] 
    [ , [ @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 ] 
    [ , [ @optional_command_line = ] 'optional_command_line' ] 
    [ , [ @merge_jobid = ] merge_jobid ] 
    [ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ] 
    [ , [ @ftp_address = ] 'ftp_address' ] 
    [ , [ @ftp_port = ] ftp_port ] 
    [ , [ @ftp_login = ] 'ftp_login' ] 
    [ , [ @ftp_password = ] 'ftp_password' ]  
    [ , [ @alt_snapshot_folder = ] 'alternate_snapshot_folder' ] 
    [ , [ @working_directory = ] 'working_directory' ] 
    [ , [ @use_ftp = ] 'use_ftp' ] 
    [ , [ @reserved = ] 'reserved' ] 
    [ , [ @use_interactive_resolver = ] 'use_interactive_resolver' ] 
    [ , [ @offloadagent = ] 'remote_agent_activation' ] 
    [ , [ @offloadserver = ] 'remote_agent_server_name'] 
    [ , [ @job_name = ] 'job_name' ] 
    [ , [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    [ , [ @use_web_sync = ] use_web_sync ]
        [ , [ @internet_url = ] 'internet_url' ]
    [ , [ @internet_login = ] 'internet_login' ]
        [ , [ @internet_password = ] 'internet_password' ]
    [ , [ @internet_security_mode = ] internet_security_mode ]
        [ , [ @internet_timeout = ] internet_timeout ]
    [ , [ @hostname = ] 'hostname' ]
        [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Argumentos

  • [ @name = ] 'name'
    É o nome do agente. name é sysname, com um padrão de NULL.

  • [ @publisher = ] 'publisher'
    É o nome do servidor do Publicador. publisher é sysname, sem padrão.

  • [ @publisher_db = ] 'publisher_db'
    É o nome do banco de dados Publicador. publisher_db é sysname, sem padrão.

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

  • [ @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.

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

    Quando possível, use a 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

    Não use uma senha em branco. Use uma senha forte. 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_encrypted_password = ]publisher_encrypted_password
    A configuração de publisher_encrypted_password não tem mais suporte. Tentar definir esse parâmetro bit como 1 resultará em erro.

  • [ @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.

    ObservaçãoObservação

    Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts. O Agente de Mesclagem sempre conecta ao Assinante local usando a Autenticação do Windows. Se um valor for especificado para esse parâmetro, uma mensagem de aviso será retornada, mas o valor será ignorado.

  • [ @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.

    ObservaçãoObservação

    Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts. Se um valor for especificado para esse parâmetro, uma mensagem de aviso será retornada, mas o valor será ignorado.

  • [ @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.

    ObservaçãoObservação

    Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts. Se um valor for especificado para esse parâmetro, uma mensagem de aviso será retornada, mas o valor será ignorado.

  • [ @distributor = ] 'distributor'
    É o nome do Distribuidor. distributor is sysname, com um padrão de publisher; ou seja, o Publicador é também o Distribuidor.

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

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

    Quando possível, use a Autenticação do Windows.

  • [ @distributor_login = ] 'distributor_login'
    É o logon do Distribuidor a ser usado ao conectar-se a um Distribuidor na sincronização. distributor_login será necessário se distributor_security_mode estiver definido como 0. distributor_login é sysname, com um padrão de NULL.

  • [ @distributor_password = ] 'distributor_password'
    É a senha do Distribuidor. distributor_password será necessário se distributor_security_mode estiver definido como 0. distributor_password é sysname, com um padrão de NULL.

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

    Não use uma senha em branco. Use uma senha forte. 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.

  • [ @encrypted_password = ] encrypted_password
    A configuração de encrypted_password não tem mais suporte. Tentar definir esse parâmetro bit como 1 resultará em erro.

  • [ @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
    O dia ou dias em que o Agente de Mesclagem é executado. frequency_interval é int, e pode ter um destes valores.

    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 ter um destes valores.

    Valor

    Descrição

    1

    First

    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 ter um destes valores.

    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 YYYYMMDD. active_end_date é int, com um padrão de NULL.

  • [ @optional_command_line = ] 'optional_command_line'
    É um prompt de comando opcional fornecido ao Agente de Mesclagem. optional_command_line is nvarchar(255), com um padrão de ' '. Pode ser usado para fornecer parâmetros adicionais ao Agente de Mesclagem, como no exemplo seguinte que aumenta o tempo limite de consulta padrão para 600 segundos:

    @optional_command_line = N'-QueryTimeOut 600'
    
  • [ @merge_jobid = ] merge_jobid
    É o parâmetro de saída da ID do trabalho. merge_jobid é binary(16), 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.

  • [ @ftp_address = ] 'ftp_address'
    Somente para compatibilidade com versões anteriores.

  • [ @ftp_port = ] ftp_port
    Somente para compatibilidade com versões anteriores.

  • [ @job_login = ] 'ftp_login'
    Somente para compatibilidade com versões anteriores.

  • [ @ftp_password = ] 'ftp_password'
    Somente para compatibilidade com versões anteriores.

  • [ @alt_snapshot_folder = ] 'alternate_snapshot_folder'
    Especifica o local do qual retirar os arquivos de instantâneo. alternate_snapshot_folder é nvarchar(255), com um padrão de NULL. Se for NULL, os arquivos de instantâneo serão retirados do local padrão especificado pelo Publicador.

  • [ @working_directory = ] 'working_directory'
    É o nome do diretório de trabalho usado para armazenar dados e arquivos de esquema temporariamente para a publicação quando o FTP for usado para transferir arquivos de instantâneo. working_directory é nvarchar(255), com um padrão de NULL.

  • [ @use_ftp = ] 'use_ftp'
    Especifica o uso do FTP, em vez do protocolo típico para recuperar instantâneos. use_ftp é nvarchar(5), com um padrão de FALSE.

  • [ @reserved = ] 'reserved'
    Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.

  • [ @use_interactive_resolver = ] 'use_interactive_resolver' ]
    Usa o resolvedor interativo para resolver conflitos para todos os artigos que permitem resolução interativa. use_interactive_resolver é nvarchar(5), com um padrão de FALSE.

  • [ @offloadagent = ] 'remote_agent_activation'

    ObservaçãoObservação

    A ativação do agente remoto foi preterida e não tem mais suporte. Esse parâmetro tem suporte somente para manter a compatibilidade com versões anteriores de scripts. A definição de remote_agent_activation com um valor diferente de false irá gerar um erro.

  • [ @offloadserver = ] 'remote_agent_server_name'

    ObservaçãoObservação

    A ativação do agente remoto foi preterida e não tem mais suporte. Esse parâmetro tem suporte somente para manter a compatibilidade com versões anteriores de scripts. A definição de remote_agent_server_name como qualquer valor não NULL gerará um erro.

  • [ @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.

  • [ @dynamic_snapshot_location = ] 'dynamic_snapshot_location' ]
    O caminho da pasta onde os arquivos de instantâneo serão lidos se um instantâneo de dados filtrado for usado. dynamic_snapshot_location é nvarchar(260), com um padrão de NULL. Para obter mais informações, consulte Filtros de linha com parâmetros.

  • [ @ use_web_sync = ] use_web_sync
    Indica que a sincronização da Web está habilitada. use_web_sync é bit, com um padrão de 0. 1 especifica que a assinatura pull pode ser sincronizada pela internet usando o HTTP.

  • [ @internet_url = ] 'internet_url'
    É o local do Replication Listener (REPLISAPI.DLL) para sincronização da Web. internet_url é nvarchar(260), com um padrão de NULL. internet_url é uma URL totalmente qualificada, no formato http://server.domain.com/directory/replisapi.dll. Se o servidor for configurado para ouvir em uma porta diferente da porta 80, o número da porta também deverá ser fornecido no formato http://server.domain.com:portnumber/directory/replisapi.dll, onde portnumber representa a porta.

  • [ @internet_login = ] 'internet_login'
    É o logon que o Agente de Mesclagem usa ao se conectar ao servidor da Web que está hospedando a sincronização da Web usando Autenticação Básica HTTP. internet_login é sysname, com um padrão de NULL.

  • [ @internet_password = ] 'internet_password'
    É a senha que o Agente de Mesclagem usa ao se conectar ao servidor da Web que está hospedando a sincronização da Web usando Autenticação Básica HTTP. internet_password é nvarchar(524), com um valor padrão de NULL.

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

    Não use uma senha em branco. Use uma senha forte.

  • [ @internet_security_mode = ] internet_security_mode
    É o método de autenticação usado pelo Agente de Mesclagem ao se conectar ao servidor da Web durante a sincronização da Web, usando HTTPS. internet_security_mode é int, e pode ter um destes valores.

    Valor

    Descrição

    0

    Autenticação Básica é usada.

    1 (padrão)

    Autenticação Integrada do Windows é usada.

    ObservaçãoObservação

    Recomendamos o uso da Autenticação Básica com sincronização da Web. Para usar sincronização da Web, você deve fazer uma conexão SSL ao servidor Web. Para obter mais informações, consulte Configure a sincronização da Web.

  • [ @internet_timeout = ] internet_timeout
    É o período de tempo, em segundos, antes que uma solicitação de sincronização da Web expire. internet_timeout é int, com um padrão de 300 segundos.

  • [ @hostname = ] 'hostname'
    Substitui o valor HOST_NAME() quando essa função é usada na cláusula WHERE de um filtro com parâmetros. hostname é sysname, com um padrão de NULL.

  • [ @job_login = ] 'job_login'
    É o logon da conta do Windows na qual o agente é executado. job_login é nvarchar(257), sem padrão. Essa conta do Windows é sempre usada para conexões do agente com o Assinante e para conexões com o Distribuidor 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

    Não armazene informações de autenticação em arquivos de script. Para melhor segurança, nomes de logon e senhas devem ser fornecidos em tempo de execução.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addmergepullsubscription_agent é usado em replicação de mesclagem e usa funcionalidade semelhante a sp_addpullsubscription_agent.

Para obter um exemplo de como especificar configurações de segurança corretamente ao executar sp_addmergepullsubscription_agent, consulte Criar uma assinatura pull.

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

-- Execute this batch at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks2012';
SET @hostname = N'adventure-works\david8';

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [AdventureWorks2012Replica]
EXEC sp_addmergepullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication, 
  @distributor = @publisher, 
  @job_login = $(Login), 
  @job_password = $(Password),
  @hostname = @hostname;
GO

Permissões

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

Consulte também

Referência

sp_addmergepullsubscription (Transact-SQL)

sp_changemergepullsubscription (Transact-SQL)

sp_dropmergepullsubscription (Transact-SQL)

sp_helpmergepullsubscription (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

Conceitos

Criar uma assinatura pull

Assinar publicações