Replikationsprotokolllese-Agent

Der Replikationsprotokolllese-Agent ist eine ausführbare Datei, die das Transaktionsprotokoll jeder für die Transaktionsreplikation konfigurierten Datenbank überwacht und die für die Replikation markierten Transaktionen aus dem Transaktionsprotokoll in die Verteilungsdatenbank kopiert.

HinweisHinweis

Parameter können in beliebiger Reihenfolge angegeben werden. Wenn keine optionalen Parameter angegeben werden, werden vordefinierte Werte auf Grundlage des Standardagentprofils verwendet.

Syntax

logread [-?] 
-Publisher server_name[\instance_name] 
-PublisherDB publisher_database 
[-Continuous]
[-DefinitionFile def_path_and_file_name]
[-Distributor server_name[\instance_name]]
[-DistributorLogin distributor_login]
[-DistributorPassword distributor_password]
[-DistributorSecurityMode [0|1]]
[-EncryptionLevel [0|1|2]]
[-HistoryVerboseLevel [0|1|2]]
[-KeepAliveMessageInterval keep_alive_message_interval_seconds]
[-LoginTimeOut login_time_out_seconds]
[-LogScanThreshold scan_threshold]
[-MaxCmdsInTran number_of_commands]
[-MessageInterval message_interval]
[-Output output_path_and_file_name]
[-OutputVerboseLevel [0|1|2|3|4]]
[-PacketSize packet_size]
[-PollingInterval polling_interval]
[-ProfileName profile_name] 
[-PublisherFailoverPartner server_name[\instance_name] ]
[-PublisherSecurityMode [0|1]]
[-PublisherLogin publisher_login]
[-PublisherPassword publisher_password] 
[-QueryTimeOut query_time_out_seconds]
[-ReadBatchSize number_of_transactions] 
[-ReadBatchThreshold read_batch_threshold]
[-RecoverFromDataErrors]

Argumente

  • -?
    Zeigt Informationen zur Verwendung an.

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

  • -PublisherDBpublisher_database
    Der Name der Verlegerdatenbank.

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

  • -DefinitionFiledef_path_and_file_name
    Der Pfad der Agentdefinitionsdatei. Eine Agentdefinitionsdatei enthält Befehlszeilenargumente 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.

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

  • -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 (Standard), der Wert 1 für den Microsoft Windows-Authentifizierungsmodus.

  • -EncryptionLevel [ 0 | 1 | 2 ]
    Die Ebene der SSL-Verschlüsselung (Secure Sockets Layer), die vom Protokolllese-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).

  • -HistoryVerboseLevel [ 0| 1| 2]
    Gibt den Umfang des Verlaufs an, der während eines Vorgangs des Protokolllese-Agents 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

     

    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.

  • -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 Protokolllese-Agent vom Überprüfungs-Agent nicht als fehlerverdächtig markiert wird, wenn ein lang andauernder Batch ausgeführt wird. Der Standardwert ist 300 Sekunden.

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

  • -LogScanThresholdscan_threshold
    Nur interner Gebrauch.

  • -MaxCmdsInTrannumber_of_commands
    Gibt die maximale Anzahl von Anweisungen an, die in einer Transaktion zusammengefasst werden, wenn der Protokolllese-Agent Befehle in die Verteilungsdatenbank schreibt. Mithilfe dieses Parameters können der Protokolllese-Agent und der Verteilungs-Agent beim Anwenden auf dem Abonnenten umfangreiche Transaktionen (die aus zahlreichen Befehlen bestehen) auf dem Verleger in mehrere kleinere Transaktionen aufteilen. Durch die Angabe dieses Parameters kommt es auf dem Verteiler möglicherweise zu weniger Konflikten, und die Latenzzeit zwischen Verleger und Abonnent kann reduziert werden. Da die ursprüngliche Transaktion in kleineren Einheiten angewendet wird, kann der Abonnent vor Ende der ursprünglichen Transaktion auf Zeilen einer umfangreichen logischen Verleger-Transaktion zugreifen; dies widerspricht der strikten Unteilbarkeit von Transaktionen. 0 ist der Standardwert, durch den die Transaktionsgrenzen des Verlegers beibehalten werden.

    HinweisHinweis

    Für Nicht-SQL Server-Veröffentlichungen wird dieser Parameter ignoriert. Weitere Informationen finden Sie im Abschnitt "Konfigurieren des Transaktionssatz-Auftrags" unter Leistungsoptimierung für Oracle-Verleger.

  • -MessageIntervalmessage_interval
    Das für die Verlaufsprotokollierung verwendete Zeitintervall. Wenn nach der Protokollierung des letzten Verlaufsereignisses der Wert von MessageInterval erreicht wird, wird erneut ein Verlaufsereignis protokolliert.

    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.

  • -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 | 3 | 4 ]
    Gibt an, ob die Ausgabe ausführlich sein soll.

    Wert

    Beschreibung

    0

    Nur Fehlermeldungen werden gedruckt.

    1

    Alle Agent-Statusberichtsmeldungen werden gedruckt.

    2 (Standard)

    Alle Fehlermeldungen und Agent-Statusberichtsmeldungen werden gedruckt.

    3

    Die ersten 100 Bytes jedes replizierten Befehls werden gedruckt.

    4

    Alle replizierten Befehle werden gedruckt.

    Die Werte 2-4 sind beim Debuggen hilfreich.

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

  • -PollingIntervalpolling_interval
    Gibt an, wie häufig replizierte Transaktionen aus dem Protokoll 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.

  • -PublisherFailoverPartnerserver_name[**\**instance_name]
    Gibt die Failoverpartnerinstanz von SQL Server an, die an einer Datenbank-Spiegelungssitzung mit der Veröffentlichungsdatenbank teilnimmt. Weitere Informationen finden Sie unter Replikation und Datenbankspiegelung.

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

  • -PublisherLoginpublisher_login
    Der Anmeldename des Verlegers.

  • -PublisherPasswordpublisher_password
    Das Kennwort des Verlegers.

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

  • -ReadBatchSizenumber_of_transactions
    Die maximale Anzahl von Transaktionen, die pro Verarbeitungszyklus aus dem Transaktionsprotokoll der Veröffentlichungsdatenbank ausgelesen werden. Der Standardwert lautet 500. Der Agent setzt das Lesen von Transaktionen in Batches fort, bis alle Transaktionen aus dem Protokoll gelesen wurden. Der Parameter wird von Oracle-Verlegern nicht unterstützt.

  • -ReadBatchThresholdnumber_of_commands
    Die Anzahl von Replikationsbefehlen, die aus dem Transaktionsprotokoll gelesen werden sollen, bevor sie vom Verteilungs-Agent an den Abonnenten ausgegeben werden. Die Standardeinstellung ist 0. Wenn dieser Parameter nicht angegeben wird, liest der Protokolllese-Agent bis zum Ende des Protokolls oder bis zu der Nummer, die in -ReadBatchSize (Anzahl von Transaktionen) angegeben wurde.

  • -RecoverFromDataErrors
    Gibt an, dass der Protokolllese-Agent weiter ausgeführt wird, wenn in Spaltendaten, die von einem Nicht-SQL Server-Verleger veröffentlicht wurden, Fehler auftreten. Standardmäßig bewirken solche Fehler, dass der Protokolllese-Agent fehlschlägt. Bei Verwendung von -RecoverFromDataErrors werden fehlerhafte Spaltendaten entweder als NULL oder als geeigneter Nicht-NULL-Wert repliziert, und in der MSlogreader_history-Tabelle werden Warnmeldungen protokolliert. Der Parameter wird nur von Oracle-Verlegern unterstützt.

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 Protokolllese-Agent, der unter dem SQL Server-Agent ausgeführt wird, so konfiguriert ist, dass beim Anmelden bei SQL Server der Windows-Authentifizierungsmodus verwendet wird, schlägt der Protokolllese-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 Protokolllese-Agents von der Eingabeaufforderung logread.exe aus. Weitere Informationen finden Sie unter Ausführbare Konzepte für die Programmierung von Replikations-Agents.

Siehe auch

Konzepte