sp_addpullsubscription_agent (Transact-SQL)

Adiciona um novo trabalho agendado de agente usado para sincronizar uma assinatura pull com uma publicação transacional. Esse procedimento armazenado é executado no Assinante, no banco de dados de assinatura.

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

Sintaxe

sp_addpullsubscription_agent [ @publisher = ] 'publisher'
    [ , [ @publisher_db = ] 'publisher_db' ]
        , [ @publication = ] 'publication'
    [ , [ @subscriber = ] 'subscriber' ]
    [ , [ @subscriber_db = ] 'subscriber_db' ]
    [ , [ @subscriber_security_mode = ] subscriber_security_mode ]
    [ , [ @subscriber_login = ] 'subscriber_login' ]
    [ , [ @subscriber_password = ] 'subscriber_password' ]
    [ , [ @distributor = ] 'distributor' ]
    [ , [ @distribution_db = ] 'distribution_db' ]
    [ , [ @distributor_security_mode = ] distributor_security_mode ]
    [ , [ @distributor_login = ] 'distributor_login' ]
    [ , [ @distributor_password = ] 'distributor_password' ]
    [ , [ @optional_command_line = ] 'optional_command_line' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subda y= ] 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 ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @encrypted_distributor_password = ] encrypted_distributor_password ]
    [ , [ @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' ]
    [ , [ @publication_type = ] publication_type ]
    [ , [ @dts_package_name = ] 'dts_package_name' ]
    [ , [ @dts_package_password = ] 'dts_package_password' ]
    [ , [ @dts_package_location = ] 'dts_package_location' ]
    [ , [ @reserved = ] 'reserved' ]
    [ , [ @offloadagent = ] 'remote_agent_activation' ]
    [ , [ @offloadserver = ] 'remote_agent_server_name']
    [ , [ @job_name = ] 'job_name' ]
    [ , [ @job_login = ] 'job_login' ] 
    [ , [ @job_password = ] 'job_password' ] 

Argumentos

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

  • [ @publisher_db=] **'**publisher_db'
    É o nome do banco de dados Publicador. publisher_db é sysname, com um valor padrão NULL. publisher_db é ignorado por Editores Oracle.

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

    ObservaçãoObservação

    Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts.

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

    ObservaçãoObservação

    Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts.

  • [ @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 NULL. 0 especifica Autenticação do SQL Server . 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 Distribution Agent sempre conecta ao Assinante local usando a Autenticação do Windows. Se um valor diferente de NULL ou 1 for especificado para esse parâmetro, uma mensagem de aviso será retornada.

  • [ @subscriber_login =] 'subscriber_login'
    É o logon do Assinante a ser usado ao se conectar a um Assinante na sincronização.subscriber_login é sysname, com um padrão 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. subscriber_password será exigido se subscriber_security_mode estiver definido como 0. subscriber_password é sysname, com um padrão NULL. Se uma senha de assinante for usada, será criptografada automaticamente.

    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 é sysname, com um padrão do valor especificador por publisher.

  • [ @distribution_db=] 'distribution_db'
    É o nome do banco de dados de distribuição. distribution_db é sysname, com um valor padrão NULL.

  • [ @distributor_security_mode=] distributor_security_mode
    É o modo de segurança a ser usado ao se conectar a um Distribuidor na sincronização. distributor_security_mode é int, com um padrão 1. 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 se conectar a um Distribuidor na sincronização. distributor_login será requerido se distributor_security_mode for definido como 0. distributor_login é sysname, com um padrão NULL.

  • [ @distributor_password =] 'distributor_password'
    É a senha do Distribuidor. distributor_password será exigido se distributor_security_mode estiver definido como 0. distributor_password é sysname, com um padrão 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 evitar o acesso não autorizado.

  • [ @optional_command_line=] 'optional_command_line'
    É um prompt de comando opcional fornecido ao Distribution Agent. Por exemplo, - DefinitionFile C:\Distdef.txt ou - CommitBatchSize 10. optional_command_line é nvarchar(4000), com um padrão de cadeia de caracteres vazia.

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

    Valor

    Descrição

    1

    Uma vez

    2 (padrão)

    Sob demanda

    4

    Diariamente

    8

    Semanalmente

    16

    Mensalmente

    32

    Relativo ao mês

    64

    Iniciar automaticamente

    128

    Recorrente

    ObservaçãoObservação

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

  • [ @frequency_interval=] frequency_interval
    É o valor a ser aplicado à freqüência definida por frequency_type. frequency_interval é int, com um padrão 1.

  • [ @frequency_relative_interval=] frequency_relative_interval
    É a data do Distribution 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 (padrão)

    Primeiro

    2

    Segundo

    4

    Terceiro

    8

    Quarto

    16

    Último

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

  • [ @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 (padrão)

    Uma vez

    2

    Segundo

    4

    Minuto

    8

    Hora

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

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

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

  • [ @active_start_date=] active_start_date
    É a data do primeiro agendamento do Distribution Agent, formatada comoYYYYMMDD. active_start_date é int, com um padrão 0.

  • [ @active_end_date=] active_end_date
    É a data em que o Distribution Agent deixa de ser agendado, formatada comoYYYYMMDD. active_end_date é int, com um padrão 0.

  • [ @distribution_jobid =] distribution_jobidOUTPUT
    É a ID do Distribution Agente para esse trabalho. distribution_jobid é binary(16), com um padrão NULL, e é um parâmetro OUTPUT.

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

  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Se a assinatura puder ser sincronizada pelo Gerenciador de Sincronização da Microsoft. 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.

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

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

  • [ @ftp_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 da pasta alternativa para o instantâneo. alternate_snapshot_folder é nvarchar(255), com um padrão NULL.

  • [ @working_directory= ] 'working_director'
    É o nome do diretório de trabalho usado para armazenar dados e arquivos de esquema para a publicação. working_directory é nvarchar(255), com um padrão NULL. O nome deve ser especificado no formato UNC.

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

  • [ @publication_type= ] publication_type
    Especifica o tipo de replicação da publicação. publication_type é um tinyint com um padrão 0. Se for 0, a publicação é um tipo de transação. Se for 1, a publicação será um tipo de instantâneo. Se for 2, a publicação será um tipo de mesclagem.

  • [ @dts_package_name= ] 'dts_package_name'
    Especifica o nome do pacote DTS. dts_package_name é um sysname com um padrão NULL. Por exemplo, para especificar um nome de pacote DTSPub_Package, o parâmetro seria @dts\_package\_name = N'DTSPub_Package'.

  • [ @dts_package_password= ] 'dts_package_password'
    Especifica a senha no pacote, se houver uma. dts_package_password é sysname com um padrão NULL, o que significa que não há uma senha no pacote.

    ObservaçãoObservação

    Você deve especificar uma senha se dts_package_name for especificado.

  • [ @dts_package_location= ] 'dts_package_location'
    Especifica o local do pacote. dts_package_location é um nvarchar(12), com um padrão subscriber. O local do pacote pode ser distribuidor ou assinante.

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

  • [ @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 só tem suporte 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 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.

  • [ @job_login= ] 'job_login'
    É o logon para a conta do Windows na qual o agente é executado. job_login é nvarchar(257), sem padrão. Essa conta do Windows sempre é usada para conexões doe agente com o Assinante.

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

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addpullsubscription_agent é usado em replicação de instantâneo e replicação transacional.

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;
SET @publication = N'AdvWorksProductTran';
SET @publisher = $(PubServer);
SET @publicationDB = N'AdventureWorks';

-- At the subscription database, create a pull subscription 
-- to a transactional publication.
USE [AdventureWorksReplica]
EXEC sp_addpullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

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

Permissões

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