Freigeben über


Replikationsverteilungs-Agent

Der Replikationsverteilungs-Agent ist eine ausführbare Datei, die den Snapshot (bei der Snapshot- 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]
[-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.

  • -Publisherserver_name[**\instance_name]
    Der Name des Verlegers. 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.

  • -PublisherDBpublisher_database
    Der Name der Verlegerdatenbank.

  • -Subscriberserver_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.

  • -SubscriberDBsubscriber_database
    Der Name der Abonnentendatenbank.

  • -AltSnapshotFolderalt_snapshot_folder_path
    Der Pfad zu dem Ordner, der den Anfangssnapshot für ein Abonnement enthält.

  • -BcpBatchSizebcp_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.

  • -CommitBatchSizecommit_batch_size
    Die Anzahl von Transaktionen, die an den Abonnenten ausgegeben werden sollen, bevor eine COMMIT-Anweisung ausgegeben wird. Die Standardeinstellung ist 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.

    HinweisHinweis

    -Continuous sollte nicht mit -MaxDeliveredTransactions angegeben werden. Weitere Informationen finden Sie weiter unten in diesem Thema im Eintrag zu -MaxDeliveredTransactions.

  • -DefinitionFiledef_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.

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

  • -DistributorLogindistributor_login
    Der Anmeldename des Verteilers.

  • -DistributorPassworddistributor_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).

  • -ErrorFileerror_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.

  • - 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).

  • -FtpAddressftp_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.

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

  • -FtpPortftp_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.

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

  • -KeepAliveMessageIntervalkeep_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.

  • -LoginTimeOutlogin_time_out_seconds
    Die Anzahl von Sekunden, nach denen ein Timeout bei der Anmeldung eintritt. Die Standardeinstellung ist 15 Sekunden.

  • -MaxBcpThreadsnumber_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 einen Snapshot anwenden, der auf dem Verleger mit der Option für gleichzeitige Snapshots generiert wurde, wird unabhängig von der für MaxBcpThreads angegebenen Anzahl nur ein Thread verwendet.

  • -MaxDeliveredTransactionsnumber_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 -MaxDeliveredTransactions mit -Continuous angegeben wird, hat -MaxDeliveredTransactions Vorrang. Die Synchronisierung wird fortgesetzt, bis die von -MaxDeliveredTransactions angegebene Anzahl von Transaktionen erreicht ist. Dann wird der Verteilungs-Agent beendet, auch wenn -Continuous angegeben ist.

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

  • -OledbStreamThresholdoledb_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.

  • -Outputoutput_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.

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

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

  • -ProfileNameprofile_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 einen Snapshot für neue oder neu initialisierte Abonnements zur Verfügung hat.

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

  • -QuotedIdentifierquoted_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.

  • -SkipErrorsnative_error_id[:...n]
    Eine durch Doppelpunkte getrennte Liste, die die Fehlernummern angibt, die von diesem Agent übersprungen werden sollen. Weitere Informationen finden Sie unter Überspringen von Fehlern in der Transaktionsreplikation.

  • -SubscriberDatabasePathsubscriber_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.)

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

  • -SubscriberPasswordsubscriber_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-to-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 Vorgehensweise: Kontrollieren des Verhaltens von Triggern und Einschränkungen während der Synchronisierung (Replikationsprogrammierung mit Transact-SQL).

  • -SubscriptionTableNamesubscription_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. Die Standardeinstellung ist 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 des Anfangssnapshots, indem der Verteilungs-Agent veranlasst wird, beim Anwenden von Snapshotdateien 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 Snapshots 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 des Snapshots 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 Vorgehensweise: Anzeigen und Ändern von Einstellungen für die Replikationssicherheit (Replikationsprogrammierung mit Transact-SQL).

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.

Änderungsverlauf

Der Inhalt wurde aktualisiert.

Es wurde erläutert, was geschieht, wenn sowohl -Continuous als auch -MaxTransactionsRequired angegeben ist.

Siehe auch

Konzepte