Condividi tramite


sp_addpullsubscription_agent (Transact-SQL)

Aggiunge un nuovo processo pianificato dell'agente per la sincronizzazione di una sottoscrizione pull con una pubblicazione transazionale. Questa stored procedure viene eseguita nel database di sottoscrizione del Sottoscrittore.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

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' ] 

Argomenti

  • [ @publisher=] 'publisher'
    Nome del server di pubblicazione. publisher è di tipo sysname e non prevede alcun valore predefinito.

  • [ @publisher_db=] **'**publisher_db'
    Nome del database del server di pubblicazione. publisher_db è di tipo sysname e il valore predefinito è NULL. publisher_db viene ignorato dai server di pubblicazione Oracle.

  • [ @publication=] 'publication'
    Nome della pubblicazione. publication è di tipo sysname e non prevede alcun valore predefinito.

  • [ @subscriber=] 'subscriber'
    Nome del Sottoscrittore. subscriber è di tipo sysname e il valore predefinito è NULL.

    [!NOTA]

    Questo parametro è deprecato ed è ancora disponibile per compatibilità con gli script di versioni precedenti.

  • [ @subscriber_db=] 'subscriber_db'
    Nome del database di sottoscrizione. subscriber_db è di tipo sysname e il valore predefinito è NULL.

    [!NOTA]

    Questo parametro è deprecato ed è ancora disponibile per compatibilità con gli script di versioni precedenti.

  • [ @subscriber_security_mode=] subscriber_security_mode
    Modalità di sicurezza da utilizzare quando si effettua la connessione a un Sottoscrittore per la sincronizzazione. subscriber_security_mode è di tipo int, e il valore predefinito è NULL. Il valore 0 indica l'autenticazione di SQL Server. Il valore 1 indica l'autenticazione di Windows.

    [!NOTA]

    Questo parametro è deprecato ed è ancora disponibile per compatibilità con gli script di versioni precedenti. L'agente di distribuzione si connette sempre al Sottoscrittore locale utilizzando l'autenticazione di Windows. Se per questo parametro viene specificato un valore diverso da NULL o 1, viene restituito un messaggio di avviso.

  • [ @subscriber_login =] 'subscriber_login'
    Account di accesso da utilizzare quando ci si connette a un Sottoscrittore per la sincronizzazione. subscriber_login è di tipo sysname e il valore predefinito è NULL.

    [!NOTA]

    Questo parametro è deprecato ed è ancora disponibile per compatibilità con gli script di versioni precedenti. Se viene specificato un valore per questo parametro, viene visualizzato un messaggio di avviso, ma il valore viene ignorato.

  • [ @subscriber_password=] 'subscriber_password'
    Password del Sottoscrittore. subscriber_password è necessario se subscriber_security_mode è impostato su 0. subscriber_password è di tipo sysname e il valore predefinito è NULL. Le password del Sottoscrittore vengono crittografate automaticamente.

    [!NOTA]

    Questo parametro è deprecato ed è ancora disponibile per compatibilità con gli script di versioni precedenti. Se viene specificato un valore per questo parametro, viene visualizzato un messaggio di avviso, ma il valore viene ignorato.

  • [ @distributor=] 'distributor'
    Nome del server di distribuzione. distributor è di tipo sysname e il valore predefinito è il nome specificato in publisher.

  • [ @distribution_db=] 'distribution_db'
    Nome del database di distribuzione. distribution_db è di tipo sysname e il valore predefinito è NULL.

  • [ @distributor_security_mode=] distributor_security_mode
    Modalità di sicurezza da utilizzare quando si effettua la connessione a un server di distribuzione per la sincronizzazione. distributor_security_mode è di tipo int e il valore predefinito è 1. Il valore 0 indica l'autenticazione di SQL Server. Il valore 1 indica l'autenticazione di Windows.

    Nota sulla sicurezzaNota sulla sicurezza

    Se possibile, utilizzare l'autenticazione di Windows.

  • [ @distributor_login=] 'distributor_login'
    Account di accesso da utilizzare quando ci si connette a un server di distribuzione per la sincronizzazione. distributor_login è necessario se distributor_security_mode è impostato su 0. distributor_login è di tipo sysname e il valore predefinito è NULL.

  • [ @distributor_password =] 'distributor_password'
    Password del server di distribuzione. distributor_password è necessario se distributor_security_mode è impostato su 0. distributor_password è di tipo sysname e il valore predefinito è NULL.

    Nota sulla sicurezzaNota sulla sicurezza

    Non utilizzare una password vuota. Utilizzare una password complessa. Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

  • [ @optional_command_line=] 'optional_command_line'
    Riga di comando facoltativa fornita all'agente di distribuzione, Ad esempio, - DefinitionFile C:\Distdef.txt o - CommitBatchSize 10. optional_command_line è di tipo nvarchar(4000) e il valore predefinito è una stringa vuota.

  • [ @frequency_type=] frequency_type
    Frequenza di pianificazione dell'agente di distribuzione. frequency_type è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1

    Una volta

    2 (predefinito)

    Su richiesta

    4

    Giornaliera

    8

    Settimanale

    16

    Mensile

    32

    Mensile relativa

    64

    Avvio automatico

    128

    Periodica

    [!NOTA]

    Se si specifica il valore 64, l'agente di distribuzione verrà eseguito in modalità continua, come se per l'agente fosse impostato il parametro -Continuous. Per ulteriori informazioni, vedere Agente distribuzione repliche.

  • [ @frequency_interval=] frequency_interval
    Valore da applicare alla frequenza impostata da frequency_type. frequency_interval è di tipo int e il valore predefinito è 1.

  • [ @frequency_relative_interval=] frequency_relative_interval
    Data dell'agente di distribuzione. Questo parametro viene utilizzato quando frequency_type è impostato su 32 (mensile relativa). frequency_relative_interval è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1 (predefinito)

    Primo

    2

    Secondo

    4

    Terzo

    8

    Quarto

    16

    Ultimo

  • [ @frequency_recurrence_factor=] frequency_recurrence_factor
    Fattore di occorrenza utilizzato da frequency_type. frequency_recurrence_factor è int, con valore predefinito 1.

  • [ @frequency_subday=] frequency_subday
    Frequenza di ripianificazione durante il periodo definito. frequency_subday è di tipo int. I valori possibili sono i seguenti.

    Valore

    Descrizione

    1 (predefinito)

    Una volta sola

    2

    Secondo

    4

    Minuto

    8

    Ora

  • [ @frequency_subday_interval=] frequency_subday_interval
    Intervallo per frequency_subday. frequency_subday_interval è int, con valore predefinito 1.

  • [ @active_start_time_of_day=] active_start_time_of_day
    Ora del giorno della prima esecuzione pianificata dell'agente di distribuzione nel formato HHMMSS. active_start_time_of_day è int, con valore predefinito 0.

  • [ @active_end_time_of_day=] active_end_time_of_day
    Ora del giorno dell'ultima esecuzione pianificata dell'agente di distribuzione, nel formato HHMMSS. active_end_time_of_day è int, con valore predefinito 0.

  • [ @active_start_date=] active_start_date
    Data della prima esecuzione pianificata dell'agente di distribuzione nel formato AAAAMMGG. active_start_date è int, con valore predefinito 0.

  • [ @active_end_date=] active_end_date
    Data dell'ultima esecuzione pianificata dell'agente di distribuzione, nel formato AAAAMMGG. active_end_date è int, con valore predefinito 0.

  • [ @distribution_jobid =] distribution_jobidOUTPUT
    ID dell'agente di distribuzione per il processo. distribution_jobid è di tipo binary(16) e il valore predefinito è NULL. Si tratta di un parametro OUTPUT.

  • [ @encrypted_distributor_password=] encrypted_distributor_password
    L'impostazione di encrypted_distributor_password non è più supportata. Se si tenta di impostare questo parametro di tipo bit su 1, verrà generato un errore.

  • [ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
    Specifica se la sottoscrizione può essere sincronizzata tramite Gestione sincronizzazione Microsoft. enabled_for_syncmgr è di tipo nvarchar(5) e il valore predefinito è FALSE. Se è false, la sottoscrizione non viene registrata in Gestione sincronizzazione. Se è true, la sottoscrizione viene registrata in Gestione sincronizzazione e può essere sincronizzata senza avviare SQL Server Management Studio.

  • [ @ftp_address=] 'ftp_address'
    Disponibile solo per compatibilità con le versioni precedenti.

  • [ @ftp_port=] ftp_port
    Disponibile solo per compatibilità con le versioni precedenti.

  • [ @ftp_login=] 'ftp_login'
    Disponibile solo per compatibilità con le versioni precedenti.

  • [ @ftp_password=] 'ftp_password'
    Disponibile solo per compatibilità con le versioni precedenti.

  • [ @alt_snapshot_folder= ] **'**alternate_snapshot_folder'
    Specifica la posizione della cartella alternativa per lo snapshot. alternate_snapshot_folder è di tipo nvarchar(255) e il valore predefinito è NULL.

  • [ @working_directory= ] 'working_director'
    Nome della directory di lavoro utilizzata per archiviare i file dei dati e di schema per la pubblicazione working_directory è di tipo nvarchar(255) e il valore predefinito è NULL. Il nome deve essere specificato in formato UNC.

  • [ @use_ftp= ] 'use_ftp'
    Specifica l'utilizzo di FTP anziché del protocollo normale per il recupero di snapshot. use_ftp è di tipo nvarchar(5) e il valore predefinito è FALSE.

  • [ @publication_type= ] publication_type
    Specifica il tipo di replica della pubblicazione. publication_type è di tipo tinyint e il valore predefinito è 0. Se è 0, la pubblicazione è di tipo transazionale. Se è 1, la pubblicazione è di tipo snapshot. Se è 2, la pubblicazione è di tipo merge.

  • [ @dts_package_name= ] 'dts_package_name'
    Nome del pacchetto DTS. dts_package_name è di tipo sysname e il valore predefinito è NULL. Per specificare, ad esempio, il nome di pacchetto DTSPub_Package, il parametro deve essere @dts\_package\_name = N'DTSPub_Package'.

  • [ @dts_package_password= ] 'dts_package_password'
    Password del pacchetto, se è disponibile. Specifica la password del pacchetto, se ne esiste una. dts_package_password è di tipo sysname e il valore predefinito è NULL, che indica che non è configurata alcuna password.

    [!NOTA]

    Se viene specificato dts_package_name, è necessario impostare una password.

  • [ @dts_package_location= ] 'dts_package_location'
    Specifica la posizione del pacchetto. dts_package_location è di tipo nvarchar(12) e il valore predefinito è subscriber. Per la posizione del pacchetto è possibile specificare distributor o subscriber.

  • [ @reserved= ] 'reserved'
    Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

  • [ @offloadagent= ] 'remote_agent_activation'

    [!NOTA]

    L'attivazione remota dell'agente è deprecata e non è più supportata. Questo parametro è supportato solo per compatibilità con gli script di versioni precedenti. Se si imposta remote_agent_activation su un valore diverso da false, verrà generato un errore.

  • [ @offloadserver= ] 'remote_agent_server_name'

    [!NOTA]

    L'attivazione remota dell'agente è deprecata e non è più supportata. Questo parametro è supportato solo per compatibilità con gli script di versioni precedenti. Se si imposta remote_agent_server_name su un valore diverso da NULL, verrà generato un errore.

  • [ @job_name= ] 'job_name'
    Nome di un processo esistente dell'agente. job_name è di tipo sysname e il valore predefinito è NULL. Questo parametro viene specificato solo quando la sottoscrizione verrà sincronizzata mediante un processo esistente anziché un nuovo processo creato (impostazione predefinita). Gli utenti che non sono membri del ruolo predefinito del server sysadmin devono impostare job_login e job_password quando specificano job_name.

  • [ @job_login= ] 'job_login'
    Account di accesso per l'account di Windows utilizzato per l'esecuzione dell'agente. job_login è di tipo nvarchar(257) e non prevede alcun valore predefinito. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al Sottoscrittore.

  • [ @job_password= ] 'job_password'
    Password dell'account di Windows utilizzato per l'esecuzione dell'agente. job_password è di tipo sysname e non prevede alcun valore predefinito.

    Nota sulla sicurezzaNota sulla sicurezza

    Se possibile, richiedere agli utenti di immettere le credenziali di sicurezza in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

sp_addpullsubscription_agent viene utilizzata per la replica snapshot e transazionale.

Esempio

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

Autorizzazioni

Solo i membri del ruolo predefinito del server sysadmin o del ruolo predefinito del database db_owner possono eseguire sp_addpullsubscription_agent.

Vedere anche

Riferimento

sp_addpullsubscription (Transact-SQL)

sp_change_subscription_properties (Transact-SQL)

sp_droppullsubscription (Transact-SQL)

sp_helppullsubscription (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

Concetti

Creazione di una sottoscrizione pull

Sottoscrizione delle pubblicazioni