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.
Convenções da 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 de NULL. publisher_db é ignorado por Publicadores 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 de NULL.Observaçã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 de NULL.Observaçã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 conectar-se a um Assinante na sincronização. subscriber_security_mode é int, com um padrão de NULL. 0 especifica Autenticação do SQL Server . 1 especifica Autenticação do Windows.Observação Esse parâmetro foi preterido e é mantido para compatibilidade com versões anteriores de scripts. O Agente de Distribuição 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çã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 de Assinante. 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 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 especificado por publisher.[ @distribution_db=] 'distribution_db'
É o nome do banco de dados de distribuição. distribution_db é sysname, com um valor padrão de NULL.[ @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 1. 0 especifica Autenticação do SQL Server. 1 especifica Autenticação do Windows.Observaçã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ç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.
[ @optional_command_line=] 'optional_command_line'
É um prompt de comando opcional fornecido ao Agente de Distribuição. 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 frequência de agendamento do Agente de Distribuição. 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ção A especificação de um valor 64 faz o Agente de Distribuição executar em modo contínuo. Isso corresponde a definir o parâmetro - Continuous para o agente. Para obter mais informações, consulte Agente de Distribuição de Replicação.
[ @frequency_interval = ] frequency_interval
É o valor a ser aplicado à frequência definida por frequency_type. frequency_interval é int, com um padrão de 1.[ @frequency_relative_interval = ] frequency_relative_interval
É a data do Agente de Distribuição. 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 (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 frequência de reagendamento durante o período definido. frequency_subday é int e 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 de 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 Agente de Distribuição, formatada como HHMMSS. active_start_time_of_day é int, com um padrão de 0.[ @active_end_time_of_day = ] active_end_time_of_day
É a hora do dia do último agendamento do Agente de Distribuição, formatada como HHMMSS. active_end_time_of_day é int, com um padrão de 0.[ @active_start_date = ] active_start_date
É a data do primeiro agendamento do Agente de Distribuição, formatada como AAAAMMDD. active_start_date é int, com um padrão de 0.[ @active_end_date = ] active_end_date
É a data do último agendamento do Agente de Distribuição, formatada como AAAAMMDD. active_end_date é int, com um padrão de 0.[ @distribution_jobid =] distribution_jobidOUTPUT
É a ID do Agente de Distribuição para este trabalho. distribution_jobid é binary(16), com um padrão de NULL, e é um parâmetro de 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 de 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 de NULL. O nome deve ser especificado no formato UNC.[ @use_ftp= ] 'use_ftp'
Especifica o uso do FTP em vez do protocolo regular para recuperar instantâneos. use_ftp é nvarchar(5), com um padrão de FALSE.[ @publication_type= ] publication_type
Especifica o tipo de replicação da publicação. publication_type é um tinyint com um padrão de 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 de 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 um. dts_package_password é sysname com um padrão de NULL, que significa que uma senha não está no pacote.Observaçã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 de subscriber. O local do pacote pode ser distribuidor ou assinante.[ @reserved= ] 'reserved'
Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.[ @offloadagent= ] 'remote_agent_activation'
Observaçã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çã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.[ @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 doe agente com o Assinante.[ @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ç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.
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'AdventureWorks2012';
-- At the subscription database, create a pull subscription
-- to a transactional publication.
USE [AdventureWorks2012Replica]
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.
Consulte também
Referência
sp_addpullsubscription (Transact-SQL)
sp_change_subscription_properties (Transact-SQL)
sp_droppullsubscription (Transact-SQL)
sp_helppullsubscription (Transact-SQL)
sp_helpsubscription_properties (Transact-SQL)