Replikationsverteilungs-Agent

Der Replikationsverteilungs-Agent ist eine ausführbare Datei, die die Momentaufnahme (bei der Momentaufnahme- und Transaktionsreplikation) und die in den Tabellen der Verteilungsdatenbank gespeicherten Transaktionen (bei der Transaktionsreplikation) in die Zieltabellen auf den Abonnenten verschiebt.

HinweisHinweis

Parameter können in beliebiger Reihenfolge angegeben werden. Wenn keine optionalen Parameter angegeben werden, werden Werte von vordefinierten Registrierungseinstellungen auf dem lokalen Computer verwendet.

Syntax

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]
[-ExtendedEventConfigFile configuration_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]

Argumente

  • -?
    Druckt alle verfügbaren Parameter.

  • -Publisher server_name[**\instance_name]
    Der Name des Verlegers. Geben Sie server_name für die Standardinstanz von Microsoft SQL Server auf diesem Server an. Geben Sie server_name
    \**instance_name für eine benannte Instanz von SQL Server auf diesem Server an.

  • -PublisherDB publisher_database
    Der Name der Verlegerdatenbank.

  • -Subscriber server_name[**\instance_name]
    Der Name des Abonnenten. Geben Sie server_name für die Standardinstanz von SQL Server auf diesem Server an. Geben Sie server_name
    \**instance_name für eine benannte Instanz von SQL Server auf diesem Server an.

  • -SubscriberDB subscriber_database
    Der Name der Abonnentendatenbank.

  • -AltSnapshotFolder alt_snapshot_folder_path
    Der Pfad zu dem Ordner, der die Anfangsmomentaufnahme für ein Abonnement enthält.

  • -BcpBatchSize bcp_batch_size
    Die Anzahl von Zeilen, die in einem Massenkopiervorgang gesendet werden sollen. Bei Ausführung eines bcp in-Vorgangs entspricht die Batchgröße der Anzahl von Zeilen, die als eine Transaktion an den Server gesendet werden sollen, und ebenso der Anzahl von Zeilen, die gesendet werden müssen, bevor der Verteilungs-Agent eine bcp-Statusmeldung protokolliert. Bei Ausführung eines bcp out -Vorgangs wird eine feste Batchgröße von 1000 verwendet.

  • -CommitBatchSize commit_batch_size
    Die Anzahl von Transaktionen, die an den Abonnenten ausgegeben werden sollen, bevor eine COMMIT-Anweisung ausgegeben wird. Der Standardwert lautet 100.

  • -CommitBatchThreshold commit_batch_threshold
    Die Anzahl von Replikationsbefehlen, die an den Abonnenten ausgegeben werden sollen, bevor eine COMMIT-Anweisung ausgegeben wird. Die Standardeinstellung ist 1000.

  • -Continuous
    Gibt an, ob der Agent fortlaufend versucht, replizierte Transaktionen abzurufen. Wenn dieses Argument angegeben ist, ruft der Agent replizierte Transaktionen in festgelegten Abrufintervallen aus der Quelle ab, selbst wenn keine ausstehenden Transaktionen vorhanden sind.

  • -DefinitionFile def_path_and_file_name
    Der Pfad der Agentdefinitionsdatei. Eine Agentdefinitionsdatei enthält Eingabeaufforderungsargumente für den Agent. Der Inhalt der Datei wird als ausführbare Datei analysiert. Verwenden Sie doppelte Anführungszeichen ("), um Argumentwerte anzugeben, die beliebige Zeichen enthalten.

  • -Distributor distributor
    Der Name des Verteilers. Bei der Verteilung durch den Verteiler (Push) wird der Name standardmäßig auf dem Namen des lokalen Verteilers festgelegt.

  • -DistributorLogin distributor_login
    Der Anmeldename des Verteilers.

  • -DistributorPassword distributor_password
    Das Verteilerkennwort.

  • -DistributorSecurityMode[ 0| 1]
    Gibt den Sicherheitsmodus des Verteilers an. Der Wert 0 steht für den SQL Server-Authentifizierungsmodus, der Wert 1 für den Windows-Authentifizierungsmodus (Standard).

  • -EncryptionLevel [ 0 | 1 | 2 ]
    Die Ebene der SSL-Verschlüsselung (Secure Sockets Layer), die vom Verteilungs-Agent beim Herstellen von Verbindungen verwendet wird.

    Wert von EncryptionLevel

    Beschreibung

    0

    Gibt an, dass SSL nicht verwendet wird.

    1

    Gibt an, dass SSL verwendet wird, der Agent jedoch nicht überprüft, ob das SSL-Serverzertifikat von einem vertrauenswürdigen Aussteller signiert wurde.

    2

    Gibt an, dass SSL verwendet und das Zertifikat überprüft wird.

    Weitere Informationen finden Sie unter Sicherheitsübersicht (Replikation).

  • -ErrorFile error_path_and_file_name
    Der Pfad und Dateiname der Fehlerdatei, die der Verteilungs-Agent generiert. Diese Datei wird an dem jeweiligen Punkt erstellt, an dem während der Anwendung der Replikationstransaktionen auf dem Abonnenten ein Fehler aufgetreten ist. Fehler, die auf dem Verleger oder Verteiler auftreten, werden nicht in dieser Datei protokolliert. Diese Datei enthält die Replikationstransaktionen, bei denen Fehler aufgetreten sind, sowie die zugeordneten Fehlermeldungen. Wenn dieser Parameter nicht angegeben ist, wird die Fehlerdatei im aktuellen Verzeichnis des Verteilungs-Agents generiert. Der Name der Fehlerdatei entspricht dem Namen des Verteilungs-Agents mit der Erweiterung ERR. Wenn eine Datei mit dem angegebenen Namen vorhanden ist, werden Fehlermeldungen an diese Datei angefügt. Dieser Parameter kann maximal 256 Unicode-Zeichen umfassen.

  • -ExtendedEventConfigFile configuration_path_and_file_name
    Gibt den Pfad und den Dateinamen für die erweiterte Ereignis-XML-Konfigurationsdatei an. Die erweiterten Ereignis-Konfigurationsdatei ermöglicht das Konfigurieren von Sitzungen und das Aktivieren der Nachverfolgung für Ereignisse.

  • -FileTransferType [ 0| 1]
    Gibt den Dateiübertragungstyp an. Der Wert 0 steht für UNC (Universal Naming Convention), der Wert 1 für FTP (File Transfer Protocol).

  • -FtpAddress ftp_address
    Die Netzwerkadresse des FTP-Diensts für den Verteiler. Wenn die Netzwerkadresse nicht angegeben wird, wird DistributorAddress verwendet. Wenn DistributorAddress nicht angegeben wird, wird Distributor verwendet.

  • -FtpPassword ftp_password
    Das Benutzerkennwort, mit dem eine Verbindung zum FTP-Dienst hergestellt wird.

  • -FtpPort ftp_port
    Die Portnummer des FTP-Diensts für den Verteiler. Wenn keine Portnummer angegeben wird, wird die Standardportnummer für den FTP-Dienst (21) verwendet.

  • -FtpUserName ftp_user_name
    Der Benutzername, mit dem eine Verbindung zum FTP-Dienst hergestellt wird. Wenn kein Benutzername angegeben wird, wird anonymous verwendet.

  • -HistoryVerboseLevel[ 0 | 1 | 2 | 3 ]
    Gibt den Umfang des Verlaufs an, der während eines Verteilungsvorgangs protokolliert wird. Sie können die negativen Auswirkungen der Verlaufsprotokollierung auf die Leistung minimieren, indem Sie den Wert 1 auswählen.

    Wert von HistoryVerboseLevel

    Beschreibung

    0

    Statusmeldungen werden entweder an der Konsole ausgegeben oder in eine Ausgabedatei geschrieben. Verlaufsdatensätze werden nicht in der Verteilungsdatenbank protokolliert.

    1

    Standardwert. Aktualisieren Sie immer eine vorherige Verlaufsmeldung mit dem gleichen Status (Start, Status, Erfolg usw.). Wenn kein vorheriger Datensatz mit dem gleichen Status vorhanden ist, fügen Sie einen neuen Datensatz ein.

    2

    Fügen Sie neue Verlaufsdatensätze ein, es sei denn, der Datensatz bezieht sich z. B. auf Leerlaufmeldungen oder Meldungen zu Aufträgen mit langer Ausführungszeit. In diesen Fällen aktualisieren Sie die vorherigen Datensätze.

    3

    Fügen Sie immer neue Datensätze ein, es sei denn, ein Datensatz bezieht sich auf Leerlaufmeldungen.

  • -Hostname host_name
    Der Hostname, der beim Herstellen der Verbindung mit dem Verleger verwendet wird. Dieser Parameter kann maximal 128 Unicode-Zeichen umfassen.

  • -KeepAliveMessageInterval keep_alive_message_interval_seconds
    Die Anzahl von Sekunden, bevor vom Verlaufsthread geprüft wird, ob bestehende Verbindungen auf eine Antwort vom Server warten. Dieser Wert kann verringert werden, damit der Verteilungs-Agent vom Überprüfungs-Agent nicht als fehlerverdächtig markiert wird, wenn ein lang andauernder Batch ausgeführt wird. Die Standardeinstellung ist 300 Sekunden.

  • -LoginTimeOut login_time_out_seconds
    Die Anzahl von Sekunden, nach denen ein Timeout bei der Anmeldung eintritt. Der Standardwert ist 15 Sekunden.

  • -MaxBcpThreads number_of_threads
    Gibt die Anzahl von Massenkopiervorgängen an, die parallel ausgeführt werden können. Die maximale Anzahl von Threads und gleichzeitig vorhandenen ODBC-Verbindungen entspricht entweder MaxBcpThreads oder der Anzahl von Massenkopieranforderungen, die in der Verteilungsdatenbank in der Synchronisierungstransaktion enthalten sind. Dabei gilt der jeweils kleinere Wert. Der Wert von MaxBcpThreads muss größer als 0 sein. Es ist keine hartcodierte Obergrenze vorhanden. Der Standardwert entspricht 2 multipliziert mit der Anzahl von Prozessoren. Der Maximalwert beträgt 8. Wenn Sie eine Momentaufnahme anwenden, der auf dem Verleger mit der Option für gleichzeitige Momentaufnahmen generiert wurde, wird unabhängig von der für MaxBcpThreads angegebenen Anzahl nur ein Thread verwendet.

  • -MaxDeliveredTransactions number_of_transactions
    Die maximale Anzahl von Push- oder Pulltransaktionen, die in einer Synchronisierung auf Abonnenten angewendet werden. Der Wert 0 gibt an, dass das Maximum einer unendlichen Anzahl von Transaktionen entspricht. Andere Werte können von Abonnenten verwendet werden, um die Dauer einer Synchronisierung zu verkürzen, die von einem Verleger abgerufen wird.

    HinweisHinweis

    Wenn sowohl -MaxDeliveredTransactions als auch -Continuous angegeben wird, übermittelt der Verteilungs-Agent die angegebene Anzahl der Transaktionen und wird dann (obwohl -Continuous angegeben wurde) beendet. Nachdem der Auftrag abgeschlossen wurde, müssen Sie den Verteilungs-Agent neu starten.

  • -MessageInterval message_interval
    Das für die Verlaufsprotokollierung verwendete Zeitintervall. Ein Verlaufsereignis wird protokolliert, wenn einer der folgenden Parameter erreicht wird:

    • Der Wert von TransactionsPerHistory wird erreicht, nachdem das letzte Verlaufsereignis protokolliert wurde.

    • Der Wert von MessageInterval wird erreicht, nachdem das letzte Verlaufsereignis protokolliert wurde.

    Wenn an der Quelle keine replizierte Transaktion vorhanden ist, sendet der Agent eine entsprechende Meldung an den Verteiler. Mit dieser Option wird angegeben, wie lange der Agent wartet, bevor eine weitere Meldung gesendet wird, dass keine Transaktion vorhanden ist. Agents melden immer, dass keine Transaktion vorhanden ist, wenn sie feststellen, dass an der Quelle keine Transaktionen verfügbar sind, nachdem zuvor replizierte Transaktionen verarbeitet wurden. Der Standardwert ist 60 Sekunden.

  • -OledbStreamThreshold oledb_stream_threshold
    Gibt die Mindestgröße in Bytes für BLOB-Daten (Binary Large Object) an, ab der die Daten als Datenstrom gebunden werden. Zur Verwendung dieses Parameters müssen Sie –UseOledbStreaming angeben. Die Werte können zwischen 400 und1048576 Bytes liegen. Der Standardwert beträgt 16384 Bytes.

  • -Output output_path_and_file_name
    Der Pfad der Agentausgabedatei. Wenn kein Dateiname angegeben ist, wird die Ausgabe an die Konsole gesendet. Wenn eine Datei mit dem angegebenen Namen vorhanden ist, wird die Ausgabe an diese Datei angefügt.

  • -OutputVerboseLevel[ 0| 1| 2]
    Gibt an, ob die Ausgabe ausführlich sein soll. Wenn die Meldungsstufe 0 beträgt, werden nur Fehlermeldungen gedruckt. Wenn die Meldungsstufe 1 beträgt, werden alle Statusberichtsmeldungen gedruckt. Wenn die Meldungsstufe 2 (Standard) beträgt, werden alle Fehlermeldungen und Statusberichtsmeldungen gedruckt, was beim Debuggen nützlich ist.

  • -PacketSize packet_size
    Die Paketgröße in Bytes. Der Standardwert ist 4096 (Bytes).

  • -PollingInterval polling_interval
    Gibt an, wie häufig replizierte Transaktionen aus der Verteilungsdatenbank abgefragt werden (in Sekunden). Der Standardwert ist 5 Sekunden.

  • -ProfileName profile_name
    Gibt ein Agentprofil an, das für Agentparameter verwendet werden soll. Wenn ProfileName den Wert NULL aufweist, wird das Agentprofil deaktiviert. Wenn ProfileName nicht angegeben ist, wird das Standardprofil für den Agenttyp verwendet. Weitere Informationen finden Sie unter Replikations-Agent-Profile.

  • -Publication publication
    Der Name der Veröffentlichung. Dieser Parameter ist nur gültig, wenn die Veröffentlichung so festgelegt ist, dass sie immer eine Momentaufnahme für neue oder neu initialisierte Abonnements zur Verfügung hat.

  • -QueryTimeOut query_time_out_seconds
    Die Anzahl von Sekunden, nach denen ein Timeout bei der Abfrage eintritt. Der Standardwert ist 1800 Sekunden.

  • -QuotedIdentifier quoted_identifier
    Gibt den zu verwendenden Bezeichner in Anführungszeichenzeichen an. Das erste Zeichen des Werts gibt den Wert an, den der Verteilungs-Agent verwendet. Wenn QuotedIdentifier ohne Wert verwendet wird, verwendet der Verteilungs-Agent ein Leerzeichen. Wenn QuotedIdentifier nicht verwendet wird, verwendet der Verteilungs-Agent einen vom Abonnenten unterstützten Bezeichner in Anführungszeichen.

  • -SkipErrors native_error_id[:...n]
    Eine durch Doppelpunkte getrennte Liste, die die Fehlernummern angibt, die von diesem Agent übersprungen werden sollen.

  • -SubscriberDatabasePath subscriber_database_path
    Der Pfad der Jet-Datenbank (MDB-Datei), wenn SubscriberType auf 2 festgelegt ist. (Dadurch wird eine Verbindung mit einer Jet-Datenbank ohne ODBC-DSN (Data Source Name) möglich.)

  • -SubscriberLogin subscriber_login
    Der Anmeldename des Abonnenten. Wenn SubscriberSecurityMode auf 0 festgelegt ist (für die SQL Server-Authentifizierung), muss dieser Parameter angegeben werden.

  • -SubscriberPassword subscriber_password
    Das Kennwort des Abonnenten. Wenn SubscriberSecurityMode auf 0 festgelegt ist (für die SQL Server-Authentifizierung), muss dieser Parameter angegeben werden.

  • -SubscriberSecurityMode[ 0| 1]
    Gibt den Sicherheitsmodus des Abonnenten an. Der Wert 0 steht für die SQL Server-Authentifizierung, der Wert 1 für den Windows-Authentifizierungsmodus (Standard).

  • -SubscriberType[ 0| 1| 3]
    Gibt den Typ der vom Verteilungs-Agent verwendeten Abonnentenverbindung an.

    Wert von SubscriberType

    Beschreibung

    0

    SQL Server 

    1

    ODBC-Datenquelle

    3

    OLE DB-Datenquelle

  • -SubscriptionStreams [0|1|2|...64]
    Die Anzahl zulässiger Verbindungen pro Verteilungs-Agent, um Änderungsbatches parallel auf einen Abonnenten anzuwenden, während viele Transaktionsmerkmale beibehalten werden, die bei Verwendung eines einzigen Threads vorhanden sind. Für einen SQL Server-Verleger wird ein Wertebereich von 1 bis 64 unterstützt. Dieser Parameter wird nur unterstützt, wenn auf dem Verleger und dem Verteiler SQL Server 2005 oder höhere Versionen ausgeführt werden. Dieser Parameter wird für Nicht-SQL Server-Abonnenten oder Peer-zu-Peer-Abonnements nicht unterstützt, oder er muss auf 0 festgelegt werden.

    HinweisHinweis

    Wenn eine der Verbindungen oder ein Commit hierfür nicht ausgeführt werden kann, wird der aktuelle Batch von allen Verbindungen verworfen, und der Agent versucht mithilfe eines einzigen Datenstroms, die fehlgeschlagenen Batches zu wiederholen. Vor dem Abschluss dieser Wiederholungsphase kann es auf dem Abonnenten vorübergehend zur Transaktionsinkonsistenzen kommen. Nach dem erfolgreichen Ausführen (Commit) der fehlgeschlagenen Batches wird der Abonnent wieder in einen Zustand der Transaktionskonsistenz versetzt.

    Wichtiger HinweisWichtig

    Wenn Sie für -SubscriptionStreams einen Wert von mindestens 2 angeben, weicht die Reihenfolge, in der Transaktionen auf dem Abonnenten empfangen werden, möglicherweise von der Reihenfolge ab, in der sie auf dem Verleger erstellt wurden. Falls dieses Verhalten bei der Synchronisierung zu Einschränkungsverletzungen führt, verwenden Sie die NOT FOR REPLICATION-Option, um die Einschränkungserzwingung während der Synchronisierung zu deaktivieren. Weitere Informationen finden Sie unter Kontrollieren des Verhaltens von Triggern und Einschränkungen während der Synchronisierung (Replikationsprogrammierung mit Transact-SQL).

  • -SubscriptionTableName subscription_table
    Der Name der Abonnementtabelle, die auf dem angegebenen Abonnenten generiert oder verwendet wird. Wenn kein Name angegeben wird, wird die MSreplication_subscriptions (Transact-SQL)-Tabelle verwendet. Verwenden Sie diese Option für Datenbank-Managementsysteme (DBMS), die keine langen Dateinamen unterstützen.

  • -SubscriptionType[ 0| 1| 2]
    Gibt den Abonnementtyp für die Verteilung an. Der Wert 0 steht für ein Pushabonnement, der Wert 1 für ein Pullabonnement und der Wert 2 für ein anonymes Abonnement.

  • -TransactionsPerHistory[ 0| 1|... 10000]
    Gibt das Transaktionsintervall für die Verlaufsprotokollierung an. Wenn die Anzahl von Transaktionen mit ausgeführtem Commit seit der letzten Instanz der Verlaufsprotokollierung den Wert dieser Option übersteigt, wird eine Verlaufsmeldung protokolliert. Der Standardwert lautet 100. Der Wert 0 steht für eine unbegrenzte Anzahl für TransactionsPerHistory. Siehe vorhergehenden –MessageInterval-Parameter.

  • -UseDTS
    Muss als Parameter für eine Veröffentlichung angegeben werden, die eine Datentransformation ermöglicht.

  • -UseInprocLoader
    Verbessert die Leistung der Anfangsmomentaufnahme, indem der Verteilungs-Agent veranlasst wird, beim Anwenden von Momentaufnahmedateien auf dem Abonnenten den BULK INSERT-Befehl zu verwenden. Dieser Parameter ist veraltet, da er mit dem XML-Datentyp nicht kompatibel ist. Wenn Sie keine XML-Daten replizieren, können Sie diesen Parameter verwenden. Dieser Parameter kann mit Momentaufnahmen im Zeichenmodus oder mit Nicht-SQL Server-Abonnenten nicht verwendet werden. Wenn Sie den Parameter verwenden, muss das SQL Server-Dienstkonto auf dem Abonnenten über Leseberechtigungen für das Verzeichnis verfügen, in dem sich die BCP-Datendateien der Momentaufnahmen befinden. Wenn der Parameter nicht verwendet wird, liest der Agent (bei Nicht-SQL Server-Abonnenten) oder der vom Agent geladene ODBC-Treiber (bei SQL Server-Abonnenten) aus den Dateien, sodass der Sicherheitskontext des SQL Server-Dienstkontos nicht verwendet wird.

  • -UseOledbStreaming
    Wenn dieser Parameter angegeben wird, wird die Bindung der BLOB-Daten (Binary Large Object) als Datenstrom aktiviert. Verwenden Sie -OledbStreamThreshold, um die Größe in Bytes anzugeben, ab der ein Datenstrom verwendet wird.

Hinweise

Wichtiger HinweisWichtig

Wenn Sie den SQL Server-Agent so installiert haben, dass er unter einem lokalen Systemkonto und nicht unter einem Domänenbenutzerkonto (Standard) ausgeführt wird, kann der Dienst nur auf den lokalen Computer zugreifen. Wenn der Verteilungs-Agent, der unter dem SQL Server-Agent ausgeführt wird, so konfiguriert ist, dass beim Anmelden bei einer Instanz von SQL Server der Windows-Authentifizierungsmodus verwendet wird, schlägt der Verteilungs-Agent fehl. Die Standardeinstellung ist die SQL Server-Authentifizierung. Weitere Informationen zum Ändern von Sicherheitskonten finden Sie unter Anzeigen und Ändern von Replikationssicherheitseinstellungen.

Führen Sie zum Starten des Verteilungs-Agents von der Eingabeaufforderung distrib.exe aus. Weitere Informationen finden Sie unter Ausführbare Konzepte für die Programmierung von Replikations-Agents.

Siehe auch

Konzepte

Replikations-Agent-Verwaltung

Änderungsverlauf

Aktualisierter Inhalt

Der -ExtendedEventConfigFile-Parameter wurde hinzugefügt.