sp_addpushsubscription_agent (Transact-SQL)
Aggiunge un nuovo processo di agente pianificato per sincronizzare una sottoscrizione push di una pubblicazione transazionale. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.
Nota sulla sicurezza |
---|
Quando si configura un server di distribuzione remoto per un server di pubblicazione, i valori specificati per tutti i parametri, inclusi job_login e job_password vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di eseguire questa stored procedure. Per ulteriori informazioni, vedere Crittografia delle connessioni a SQL Server. |
Sintassi
sp_addpushsubscription_agent [ @publication= ] 'publication'
[ , [ @subscriber = ] 'subscriber' ]
[ , [ @subscriber_db = ] 'subscriber_db' ]
[ , [ @subscriber_security_mode = ] subscriber_security_mode ]
[ , [ @subscriber_login = ] 'subscriber_login' ]
[ , [ @subscriber_password = ] 'subscriber_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 ]
[ , [ @dts_package_name = ] 'dts_package_name' ]
[ , [ @dts_package_password = ] 'dts_package_password' ]
[ , [ @dts_package_location = ] 'dts_package_location' ]
[ , [ @enabled_for_syncmgr = ] 'enabled_for_syncmgr' ]
[ , [ @distribution_job_name = ] 'distribution_job_name' ]
[ , [ @publisher = ] 'publisher' ]
[ , [ @subscriber_provider = ] 'subscriber_provider' ]
[ , [ @subscriber_datasrc = ] 'subscriber_datasrc' ]
[ , [ @subscriber_location = ] 'subscriber_location' ]
[ , [ @subscriber_provider_string = ] 'subscriber_provider_string' ]
[ , [ @subscriber_catalog = ] 'subscriber_catalog' ]
Argomenti
[ @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.[ @subscriber_db=] 'subscriber_db'
Nome del database di sottoscrizione. subscriber_db è di tipo sysname e il valore predefinito è NULL. Per un Sottoscrittore non SQL Server, specificare un valore di (destinazione predefinita) per subscriber_db.[ @subscriber_security_mode=] subscriber_security_mode
Modalità di protezione da utilizzare quando ci si connette a un Sottoscrittore per la sincronizzazione. subscriber_security_mode è di tipo int e il valore predefinito è 1. Se è 0, viene utilizzata l'autenticazione di SQL Server. 1 specifica l'autenticazione di Windows.Nota sulla sicurezza Per le sottoscrizioni ad aggiornamento in coda utilizzare l'autenticazione di SQL Server per le connessioni ai Sottoscrittori e specificare un account diverso per la connessione a ogni Sottoscrittore. Per tutte le altre sottoscrizioni utilizzare l'autenticazione di Windows.
[ @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.[ @subscriber_password=] 'subscriber_password'
Password del Sottoscrittore. subscriber_password è obbligatorio 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 sulla sicurezza Non utilizzare una password vuota. Utilizzare una password complessa. Se possibile, richiedere agli utenti di immettere le credenziali di protezione in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.
[ @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 il valore predefinito è NULL. Questo account di Windows viene sempre utilizzato per le connessioni dell'agente al server di distribuzione e per le connessioni al Sottoscrittore quando si utilizza l'autenticazione integrata di Windows.[ @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 sicurezza Se possibile, richiedere agli utenti di immettere le credenziali di protezione in fase di esecuzione. Se è necessario archiviare le credenziali in un file script, è fondamentale proteggere il file per evitare accessi non autorizzati.
[ @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 viene sincronizzata utilizzando un processo esistente anziché un nuovo processo creato (impostazione predefinita). Gli utenti che non sono membri del ruolo predefinito del server sysadmin devono specificare job_login e job_password se specificano il parametro job_name.[ @frequency_type = ] frequency_type
Frequenza per l'esecuzione pianificata dell'agente di distribuzione. frequency_type è di tipo int e i possibili valori sono i seguenti.Valore
Descrizione
1
Singola occorrenza
2
Su richiesta
4
Giornaliera
8
Settimanale
16
Mensile
32
Mensile relativa
64 (predefinito)
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 (frequenza mensile relativa). frequency_relative_interval è di tipo int e i possibili valori sono i seguenti.Valore
Descrizione
1 (predefinito)
Primo
2
Secondo
4
Terzo
8
Quarto
16
Ultimo
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Fattore di ricorrenza utilizzato da frequency_type. frequency_recurrence_factor è di tipo int e il valore predefinito è 0.[ @frequency_subday = ] frequency_subday
Frequenza di ripianificazione durante il periodo definito. frequency_subday è di tipo int e i possibili valori sono i seguenti.Valore
Descrizione
1
Una volta
2
Secondo
4 (predefinito)
Minuto
8
Ora
[ @frequency_subday_interval = ] frequency_subday_interval
Intervallo per frequency_subday. frequency_subday_interval è di tipo int e il valore predefinito è 5.[ @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 è di tipo int e il 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 è di tipo int e il valore predefinito è 235959.[ @active_start_date = ] active_start_date
Data della prima esecuzione pianificata dell'agente di distribuzione, nel formato AAAAMMGG. active_start_date è di tipo int e il valore predefinito è 0.[ @active_end_date = ] active_end_date
Data dell'ultima esecuzione pianificata dell'agente di distribuzione, nel formato AAAAMMGG. active_end_date è di tipo int e il valore predefinito è 99991231.[ @dts_package_name = ] 'dts_package_name'
Nome del pacchetto Data Transformation Services (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 necessaria per l'esecuzione del pacchetto. dts_package_password è di tipo sysname e il valore predefinito è NULL.Nota
L'impostazione della password è obbligatoria se si specifica dts_package_name.
[ @dts_package_location = ] 'dts_package_location'
Posizione del pacchetto. dts_package_location è di tipo nvarchar(12) e il valore predefinito è DISTRIBUTOR. Per la posizione del pacchetto è possibile specificare distributor o subscriber.[ @enabled_for_syncmgr=] 'enabled_for_syncmgr'
Specifica se la sottoscrizione può essere sincronizzata tramite Gestione sincronizzazione Microsoft Windows. 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.[ @distribution_job_name= ] 'distribution_job_name'
Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.[ @publisher=] 'publisher'
Nome del server di pubblicazione. publisher è di tipo sysname e il valore predefinito è NULL.[ @subscriber_provider= ] 'subscriber_provider'
ProgID univoco con cui è registrato il provider OLE DB per l'origine dati non SQL Server. subscriber_provider è di tipo sysname e il valore predefinito è NULL. subscriber_provider deve essere univoco per il provider OLE DB installato nel server di distribuzione. subscriber_provider è supportato solo per Sottoscrittori non SQL Server.[ @subscriber_datasrc= ] 'subscriber_datasrc'
Nome dell'origine dati nel formato riconosciuto dal provider OLE DB. subscriber_datasrc è di tipo nvarchar(4000) e il valore predefinito è NULL. subscriber_datasrc viene passato come proprietà DBPROP_INIT_DATASOURCE per l'inizializzazione del provider OLE DB. subscriber_datasrc è supportato solo per Sottoscrittori non SQL Server.[ @subscriber_location= ] 'subscriber_location'
Posizione del database nel formato riconosciuto dal provider OLE DB. subscriber_location è di tipo nvarchar(4000) e il valore predefinito è NULL. subscriber_location viene passato come proprietà DBPROP_INIT_LOCATION per l'inizializzazione del provider OLE DB. subscriber_location è supportato solo per Sottoscrittori non SQL Server.[ @subscriber_provider_string= ] 'subscriber_provider_string'
Stringa di connessione specifica del provider OLE DB che identifica l'origine dati. subscriber_provider_string è di tipo nvarchar(4000) e il valore predefinito NULL. subscriber_provider_string viene passato a IDataInitialize o impostato come proprietà DBPROP_INIT_PROVIDERSTRING per l'inizializzazione del provider OLE DB. subscriber_provider_string è supportato solo per Sottoscrittori non SQL Server.[ @subscriber_catalog= ] 'subscriber_catalog'
Catalogo da utilizzare per l'esecuzione di una connessione al provider OLE DB. subscriber_catalog è di tipo sysname e il valore predefinito è NULL. subscriber_catalog viene passato come proprietà DBPROP_INIT_CATALOG per l'inizializzazione del provider OLE DB. subscriber_catalog è supportato solo per Sottoscrittori non SQL Server.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Osservazioni
La stored procedure sp_addpushsubscription_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".
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2008R2Replica';
--Add a push subscription to a transactional publication.
USE [AdventureWorks2008R2]
EXEC sp_addsubscription
@publication = @publication,
@subscriber = @subscriber,
@destination_db = @subscriptionDB,
@subscription_type = N'push';
--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent
@publication = @publication,
@subscriber = @subscriber,
@subscriber_db = @subscriptionDB,
@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_addpushsubscription_agent.
Vedere anche