Agente distribuzione repliche

Agente distribuzione repliche è un eseguibile che consente di spostare lo snapshot (per la replica snapshot e transazionale) e le transazioni incluse nelle tabelle del database di distribuzione (per la replica transazionale) nelle tabelle di destinazione nei Sottoscrittori.

Nota

I parametri possono essere specificati in qualsiasi ordine. Quando i parametri facoltativi non vengono specificati, vengono utilizzati i valori delle impostazioni predefinite del Registro di sistema nel computer locale.

Sintassi

distrib [-?]
-Publisher server_name[\instance_name]
-PublisherDB publisher_database
-Subscriber server_name[\instance_name]
-SubscriberDB subscriber_database 
[-AltSnapshotFolder alt_snapshot_folder_path] 
[-BcpBatchSize bcp_batch_size]
[-CommitBatchSize commit_batch_size]
[-CommitBatchThreshold commit_batch_threshold]
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-Distributor distributor]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-EncryptionLevel [0|1|2]]
[-ErrorFile error_path_and_file_name]
[-FileTransferType [0|1]]
[-FtpAddress ftp_address]
[-FtpPassword ftp_password] 
[-FtpPort ftp_port]
[-FtpUserName ftp_user_name]
[-HistoryVerboseLevel [0|1|2|3]]
[-Hostname host_name]
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]
[-LoginTimeOut login_time_out_seconds]
[-MaxBcpThreads]
[-MaxDeliveredTransactions number_of_transactions]
[-MessageInterval message_interval]
[-OledbStreamThreshold oledb_stream_threshold]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2]]
[-PacketSize packet_size]
[-PollingInterval polling_interval]
[-ProfileName profile_name]
[-Publication publication]
[-QueryTimeOut query_time_out_seconds]
[-QuotedIdentifier quoted_identifier]
[-SkipErrors native_error_id [:...n]]
[-SubscriberDatabasePath subscriber_path]
[-SubscriberLogin subscriber_login]
[-SubscriberPassword subscriber_password]
[-SubscriberSecurityMode [0|1]]
[-SubscriberType [0|1|3]]
[-SubscriptionStreams [1|2|...64]]
[-SubscriptionTableName subscription_table]
[-SubscriptionType [0|1|2]]
[-TransactionsPerHistory [0|1|...10000]]
[-UseDTS]
[-UseInprocLoader]
[-UseOledbStreaming]

Argomenti

  • -?
    Stampa tutti i parametri disponibili.

  • -Publisherserver_name[**\instance_name]
    Nome del server di pubblicazione. Specificare server_name per l'istanza predefinita di Microsoft SQL Server in tale server. Specificare server_name
    \**instance_name per un'istanza denominata di SQL Server in tale server.

  • -PublisherDBpublisher_database
    Nome del database del server di pubblicazione.

  • -Subscriberserver_name[**\instance_name]
    Nome del Sottoscrittore. Specificare server_name per l'istanza predefinita di SQL Server in tale server. Specificare server_name
    \**instance_name per un'istanza denominata di SQL Server in tale server.

  • -SubscriberDBsubscriber_database
    Nome del database del Sottoscrittore.

  • -AltSnapshotFolderalt_snapshot_folder_path
    Percorso della cartella che contiene lo snapshot iniziale per una sottoscrizione.

  • -BcpBatchSizebcp_batch_size
    Numero di righe da inviare in un'operazione di copia bulk. Quando si esegue un'operazione bcp in, la dimensione del batch indica il numero di righe da inviare al server come unica transazione, nonché il numero di righe che devono essere inviate prima che l'agente di distribuzione registri un messaggio di stato bcp. Quando si esegue un'operazione bcp out, viene utilizzata una dimensione batch fissa di 1000.

  • -CommitBatchSizecommit_batch_size
    Numero di transazioni da eseguire in un Sottoscrittore prima di eseguire un'istruzione COMMIT. Il valore predefinito è 100.

  • -CommitBatchThreshold commit_batch_thresholdcommit_batch_threshold
    Numero di comandi di replica da eseguire in un Sottoscrittore prima di eseguire un'istruzione COMMIT. Il valore predefinito è 1000.

  • -Continuous
    Specifica se l'agente tenta di eseguire continuamente il polling delle transazioni replicate. Se specificato, l'agente esegue il polling delle transazioni replicate dall'origine in base agli intervalli di polling, anche se non vi sono transazioni in sospeso.

  • -DefinitionFiledef_path_and_file_name
    Percorso del file di definizione dell'agente. Un file di definizione dell'agente contiene argomenti della riga di comando per l'agente. Il contenuto del file viene analizzato come file eseguibile. Utilizzare virgolette doppie (") per specificare valori dell'argomento contenenti caratteri arbitrari.

  • -Distributordistributor
    Nome del server di distribuzione. Per la distribuzione (push) del server di distribuzione, per impostazione predefinita viene utilizzato il nome del server di distribuzione locale.

  • -DistributorLogindistributor_login
    Nome dell'account di accesso del server di distribuzione.

  • -DistributorPassworddistributor_password
    Password del server di distribuzione.

  • -DistributorSecurityMode[ 0| 1]
    Specifica la modalità di protezione del server di distribuzione. Un valore 0 indica la modalità di autenticazione di SQL Server, mentre un valore 1 indica la modalità di autenticazione di Windows (impostazione predefinita).

  • -EncryptionLevel [ 0 | 1 | 2 ]
    Livello di crittografia SSL (Secure Sockets Layer) utilizzato dall'agente di distribuzione quando vengono stabilite le connessioni.

    Valore di EncryptionLevel

    Descrizione

    0

    Specifica che SSL non viene utilizzato.

    1

    Specifica che SSL viene utilizzato, ma l'agente non verifica che il certificato server SSL sia firmato da un'autorità emittente attendibile.

    2

    Specifica che SSL viene utilizzato e che il certificato viene verificato.

    Per ulteriori informazioni, vedere Panoramica della protezione (replica).

  • -ErrorFileerror_path_and_file_name
    Percorso e nome del file degli errori generato dall'agente di distribuzione. Tale file viene generato nel punto in cui si verifica l'errore durante l'applicazione delle transazioni di replica nel Sottoscrittore. Gli errori che si verificano nel server di pubblicazione e nel server di distribuzione non vengono registrati in questo file. Il file contiene le transazioni di replica non riuscite e i relativi messaggi di errore. Se il percorso viene omesso, il file degli errori viene generato nella directory corrente dell'agente di distribuzione. Il file degli errori ha lo stesso nome dell'agente di distribuzione e ha un'estensione err. Se il nome file specificato esiste già, i messaggi di errore vengono aggiunti al file. Questo parametro può essere composto da un massimo di 256 caratteri Unicode.

  • -FileTransferType [ 0| 1]
    Specifica il tipo di trasferimento di file. Un valore 0 indica UNC (Universal Naming Convention), mentre un valore 1 indica FTP (File Transfer Protocol).

  • -FtpAddressftp_address
    Indirizzo di rete del servizio FTP per il server di distribuzione. Quando non è specificato, viene utilizzato DistributorAddress. Se DistributorAddress non è specificato, viene utilizzato Distributor.

  • -FtpPasswordftp_password
    Password utente utilizzata per la connessione al servizio FTP.

  • -FtpPortftp_port
    Numero di porta del servizio FTP per il server di distribuzione. Quando non è specificato, viene utilizzato il numero di porta predefinito per il servizio FTP, ovvero 21.

  • -FtpUserName ftp_user_nameftp_user_name
    Nome utente utilizzato per la connessione al servizio FTP. Quando non è specificato, viene utilizzato anonymous.

  • -HistoryVerboseLevel[ 0 | 1 | 2 | 3 ]
    Specifica la quantità di cronologia registrata durante un'operazione di distribuzione. Per ridurre al minimo l'effetto della registrazione della cronologia sulle prestazioni, selezionare 1.

    Valore di HistoryVerboseLevel

    Descrizione

    0

    I messaggi di stato vengono scritti nella console o in un file di output. I record della cronologia non vengono registrati nel database di distribuzione.

    1

    Valore predefinito. Aggiorna sempre un messaggio di cronologia precedente con lo stesso stato (avvio, avanzamento, esito positivo e così via). Se non è presente un record precedente con lo stesso stato, inserisce un nuovo record.

    2

    Inserisce nuovi record della cronologia, a meno che il record sia per eventi come messaggi inattivi o messaggi di processo con esecuzione prolungata, nel qual caso aggiorna i record precedenti.

    3

    Inserisce sempre nuovi record, a meno che non si tratti di record per messaggi inattivi.

  • -Hostnamehost_name
    Nome host utilizzato per la connessione al server di pubblicazione. Questo parametro può essere composto da un massimo di 128 caratteri Unicode.

  • -KeepAliveMessageIntervalkeep_alive_message_interval_seconds
    Numero di secondi prima che il thread per la cronologia controlli se una delle connessioni esistenti è in attesa di una risposta dal server. Questo valore può essere ridotto per evitare che l'agente di controllo contrassegni l'agente di distribuzione come sospetto in caso di esecuzione di un batch con esecuzione prolungata. Il valore predefinito è 300 secondi.

  • -LoginTimeOutlogin_time_out_seconds
    Numero di secondi prima del timeout di accesso. Il valore predefinito è 15 secondi.

  • -MaxBcpThreadsnumber_of_threads
    Specifica il numero di operazioni di copia bulk che possono essere eseguite in parallelo. Il numero massimo di connessioni ODBC e thread presenti simultaneamente corrisponde a MaxBcpThreads o al numero di richieste di copia bulk presenti nella transazione di sincronizzazione nel database di distribuzione, a seconda di quale sia il valore minore. MaxBcpThreads deve avere un valore maggiore di 0 e non ha un limite massimo specificato a livello di codice. L'impostazione predefinita è 2 volte il numero di processori, fino a un valore massimo di 8. Quando si applica uno snapshot generato nel server di pubblicazione utilizzando l'opzione relativa agli snapshot simultanei, viene utilizzato un thread, indipendentemente dal numero specificato per MaxBcpThreads.

  • -MaxDeliveredTransactionsnumber_of_transactions
    Numero massimo di transazioni push o pull applicate ai Sottoscrittori in una sincronizzazione. Un valore 0 indica che il numero massimo corrisponde a un numero infinito di transazioni. Nei Sottoscrittori possono venire utilizzati altri valori per abbreviare la durata di una sincronizzazione di cui viene effettuato il pull da un server di pubblicazione.

  • -MessageInterval message_intervalmessage_interval
    Intervallo di tempo utilizzato per la registrazione della cronologia. Viene registrato un evento della cronologia quando viene raggiunto uno di questi parametri:

    • Il valore TransactionsPerHistory viene raggiunto dopo la registrazione dell'ultimo evento della cronologia.

    • Il valore MessageInterval viene raggiunto dopo la registrazione dell'ultimo evento della cronologia.

    Se nell'origine non vi sono transazioni replicate disponibili, tramite l'agente viene inviato al server di distribuzione un messaggio che segnala l'assenza di transazioni. Questa opzione specifica per quanto tempo l'agente aspetta prima di inviare un altro messaggio di assenza di transazioni. Gli agenti inviano sempre un messaggio di assenza di transazioni quando rilevano che nell'origine non vi sono transazioni disponibili dopo aver elaborato in precedenza transazioni replicate. Il valore predefinito è 60 secondi.

  • -OledbStreamThresholdoledb_stream_threshold
    Specifica la dimensione minima, in byte, per i dati BLOB (Binary Large Object), sopra la quale i dati verranno associati come flusso. Per utilizzare questo parametro, è necessario specificare –UseOledbStreaming. I possibili valori sono compresi tra 400 e 1048576 byte. Il valore predefinito è 16384 byte.

  • -Outputoutput_path_and_file_name
    Percorso del file di output dell'agente. Se non viene specificato il nome file, l'output viene inviato alla console. Se il nome file specificato esiste già, l'output viene aggiunto al file.

  • -OutputVerboseLevel[ 0| 1| 2]
    Specifica se l'output deve essere dettagliato. Se il livello di dettaglio è 0, vengono stampati solo i messaggi di errore. Se il livello di dettaglio è 1, vengono stampati tutti i messaggi di report di stato. Se il livello di dettaglio è 2 (impostazione predefinita), vengono stampati tutti i messaggi di errore e i messaggi di report di stato. Questa opzione è utile per l'esecuzione del debug.

  • -PacketSizepacket_size
    Dimensioni del pacchetto, in byte. Il valore predefinito è 4096 byte.

  • -PollingIntervalpolling_interval
    Frequenza, in secondi, di esecuzione di query sul database di distribuzione per le transazioni replicate. Il valore predefinito è 5 secondi.

  • -ProfileNameprofile_name
    Specifica un profilo agente da utilizzare per i parametri dell'agente. Se ProfileName è NULL, il profilo agente è disattivato. Se ProfileName non viene specificato, viene utilizzato il profilo predefinito per il tipo di agente. Per informazioni, vedere Profili degli agenti di replica.

  • -Publication publicationpublication
    Nome della pubblicazione. Questo parametro è valido solo se la pubblicazione è configurata in modo che sia sempre disponibile uno snapshot per le sottoscrizioni nuove o reinizializzate.

  • -QueryTimeOutquery_time_out_seconds
    Numero di secondi prima del timeout delle query. Il valore predefinito è 1800 secondi.

  • -QuotedIdentifierquoted_identifier
    Specifica il carattere dell'identificatore tra virgolette da utilizzare. Il primo carattere del valore indica il valore utilizzato dall'agente di distribuzione. Se QuotedIdentifier viene utilizzato senza valore, l'agente di distribuzione utilizza uno spazio. Se QuotedIdentifier non viene utilizzato, l'agente di distribuzione utilizza qualsiasi identificatore tra virgolette supportato dal Sottoscrittore.

  • -SkipErrorsnative_error_id[:...n]
    Elenco delimitato da due punti che specifica i numeri di errore che devono essere ignorati dall'agente. Per ulteriori informazioni, vedere Errori da ignorare nella replica transazionale.

  • -SubscriberDatabasePathsubscriber_database_path
    Percorso del database Jet (file mdb) se SubscriberType è 2 (consente una connessione a un database Jet senza un nome origine dati (DNS, Data Source Name) ODBC).

  • -SubscriberLoginsubscriber_login
    Nome dell'account di accesso del Sottoscrittore. Se SubscriberSecurityMode è 0 (per l'autenticazione di SQL Server), questo parametro deve essere specificato.

  • -SubscriberPasswordsubscriber_password
    Password del Sottoscrittore. Se SubscriberSecurityMode è 0 (per l'autenticazione di SQL Server), questo parametro deve essere specificato.

  • -SubscriberSecurityMode[ 0| 1]
    Specifica la modalità di protezione del Sottoscrittore. Un valore 0 indica la modalità di autenticazione di SQL Server, mentre un valore 1 indica la modalità di autenticazione di Windows (impostazione predefinita).

  • -SubscriberType[ 0| 1| 3]
    Specifica il tipo di connessione al Sottoscrittore utilizzata dall'agente di distribuzione.

    Valore di SubscriberType

    Descrizione

    0

    SQL Server

    1

    Origine dati ODBC

    3

    Origine dati OLE DB

  • -SubscriptionStreams [0|1|2|...64]
    Numero di connessioni consentite per agente di distribuzione per l'applicazione di batch di modifiche in parallelo a un Sottoscrittore, conservando molte delle funzionalità transazionali disponibili quando si utilizza un singolo thread. Per un server di pubblicazione SQL Server è supportato un intervallo di valori da 1 a 64. Questo parametro è supportato solo quando il server di pubblicazione e il server di distribuzione sono in esecuzione in SQL Server 2005 o versioni successive. Questo parametro non è supportato o deve essere uguale a 0 per le sottoscrizioni peer-to-peer o i Sottoscrittori non SQL Server.

    Nota

    Se si verifica un errore di esecuzione o di commit di una delle connessioni, tutte le connessioni interromperanno il batch corrente e l'agente utilizzerà un singolo flusso per ripetere i batch non riusciti. Prima del completamento di questa fase di tentativi, possono verificarsi inconsistenze temporanee delle transazioni nel Sottoscrittore. Al termine del commit dei batch non riusciti, viene ripristinata la consistenza delle transazioni nel Sottoscrittore.

    Nota importanteImportante

    Quando si specifica un valore maggiore o uguale a 2 per -SubscriptionStreams, l'ordine di ricezione delle transazioni nel Sottoscrittore può essere diverso dall'ordine di esecuzione di tali transazioni nel server di pubblicazione. Se questo comportamento provoca violazioni di vincoli durante la sincronizzazione, è necessario utilizzare l'opzione NOT FOR REPLICATION per disattivare l'imposizione di vincoli durante la sincronizzazione. Per ulteriori informazioni, vedere Procedura: Controllo del comportamento di trigger e vincoli durante la sincronizzazione (programmazione Transact-SQL della replica).

  • -SubscriptionTableNamesubscription_table
    Nome della tabella di sottoscrizione generata o utilizzata nel Sottoscrittore specificato. Quando non è specificato, viene utilizzata la tabella MSreplication_subscriptions (Transact-SQL). Utilizzare questa opzione per i sistemi di gestione di database (DBMS) che non supportano nomi file lunghi.

  • -SubscriptionType[ 0| 1| 2]
    Specifica il tipo di sottoscrizione per la distribuzione. Un valore 0 indica una sottoscrizione push, un valore 1 indica una sottoscrizione pull e un valore 2 indica una sottoscrizione anonima.

  • -TransactionsPerHistory[ 0| 1|... 10000]
    Specifica l'intervallo delle transazioni per la registrazione della cronologia. Se il numero di transazioni di cui è stato eseguito il commit dopo l'ultima istanza di registrazione della cronologia è maggiore rispetto al valore di questa opzione, viene registrato un messaggio di cronologia. Il valore predefinito è 100. Un valore 0 indica un intervallo TransactionsPerHistory infinito. Vedere il parametro –MessageIntervalprecedente.

  • -UseDTS
    Deve essere specificato come parametro per una pubblicazione che consente la trasformazione dei dati.

  • -UseInprocLoader
    Migliora le prestazioni dello snapshot iniziale facendo in modo che l'agente di distribuzione utilizzi il comando BULK INSERT in caso di applicazione dei file di snapshot al Sottoscrittore. Questo parametro è obsoleto in quanto non è compatibile con il tipo di dati XML. Se non si sta eseguendo la replica di dati XML, è possibile utilizzare questo parametro. Questo parametro non può essere utilizzato con snapshot in modalità carattere o Sottoscrittori non SQL Server. Se si utilizza questo parametro, l'account del servizio SQL Server nel Sottoscrittore deve disporre di autorizzazioni di lettura nella directory in cui si trovano i file di dati di snapshot, con estensione bcp. Quando questo parametro non viene utilizzato, l'agente (per i Sottoscrittori non SQL Server) o il driver ODBC caricato dall'agente (per i Sottoscrittori SQL Server) legge dai file, pertanto il contesto di protezione dell'account del servizio SQL Server non viene utilizzato.

  • -UseOledbStreaming
    Se specificato, consente l'associazione di dati BLOB (Binary Large Object) come flusso. Utilizzare -OledbStreamThreshold per specificare la dimensione, in byte, sopra la quale verrà utilizzato un flusso.

Osservazioni

Nota importanteImportante

Se SQL Server Agent è stato installato per l'esecuzione con un account di sistema locale anziché un account utente di dominio (impostazione predefinita), il servizio può accedere solo al computer locale. Se l'agente di distribuzione in esecuzione in SQL Server Agent è configurato per l'utilizzo della modalità di autenticazione di Windows durante l'accesso a un'istanza di SQL Server, l'agente di distribuzione si interrompe. L'impostazione predefinita prevede l'autenticazione di SQL Server. Per informazioni sulla modifica degli account di protezione, vedere Procedura: Visualizzazione e modifica delle impostazioni di protezione della replica (programmazione Transact-SQL della replica).

Per avviare l'agente di distribuzione, eseguire distrib.exe dal prompt dei comandi. Per informazioni, vedere Concetti di base relativi ai file eseguibili dell'agente di replica.