Replikationsmomentaufnahme-Agent

Gilt für:yes SQL Server (alle unterstützten Versionen) YesAzure SQL-Datenbank

Der Replikationsmomentaufnahme-Agent ist eine ausführbare Datei, die Momentaufnahmedateien vorbereitet, die das Schema und die Daten von veröffentlichten Tabellen und Datenbankobjekten enthalten, die Dateien im Momentaufnahmeordner speichert und Synchronisierungsaufträge in der Verteilungsdatenbank aufzeichnet.

Hinweis

  • Parameter können in beliebiger Reihenfolge angegeben werden.

Hinweis

Azure SQL Managed Instance kann als Herausgeber, Verleger und Abonnent der Momentaufnahmen- und Transaktionsreplikation fungieren. Datenbanken in Azure SQL-Datenbank können nun Pushabonnenten der Momentaufnahmen- und Transaktionsreplikation sein. Weitere Informationen finden Sie in den Abschnitten zur Transaktionsreplikation unter Replikation zu Azure SQL-Datenbank und Transaktionsreplikation mit Azure SQL Managed Instance (Vorschau).

Syntax

  
snapshot [ -?]   
-Publisher server_name[\instance_name]   
-Publication publication_name   
[-70Subscribers]   
[-BcpBatchSize bcp_batch_size]  
[-DefinitionFile def_path_and_file_name]  
[-Distributor server_name[\instance_name]]  
[-DistributorDeadlockPriority [-1|0|1] ]  
[-DistributorLogin distributor_login]  
[-DistributorPassword distributor_password]  
[-DistributorSecurityMode [0|1] ]  
[-DynamicFilterHostName dynamic_filter_host_name]  
[-DynamicFilterLogin dynamic_filter_login]  
[-DynamicSnapshotLocation dynamic_snapshot_location]   
[-EncryptionLevel [0|1|2]]  
[-FieldDelimiter field_delimiter]  
[-HistoryVerboseLevel [0|1|2|3] ]  
[-HRBcpBlocks number_of_blocks ]  
[-HRBcpBlockSize block_size ]  
[-HRBcpDynamicBlocks ]  
[-KeepAliveMessageInterval keep_alive_interval]  
[-LoginTimeOut login_time_out_seconds]  
[-MaxBcpThreads number_of_threads ]  
[-MaxNetworkOptimization [0|1]]  
[-Output output_path_and_file_name]  
[-OutputVerboseLevel [0|1|2] ]  
[-PacketSize packet_size]  
[-PrefetchTables [0|1] ]  
[-ProfileName profile_name]  
[-PublisherDB publisher_database]  
[-PublisherDeadlockPriority [-1|0|1] ]  
[-PublisherFailoverPartner server_name[\instance_name] ]  
[-PublisherLogin publisher_login]  
[-PublisherPassword publisher_password]   
[-PublisherSecurityMode [0|1] ]  
[-QueryTimeOut query_time_out_seconds]  
[-ReplicationType [1|2] ]  
[-RowDelimiter row_delimiter]  
[-StartQueueTimeout start_queue_timeout_seconds]  
[-UsePerArticleContentsView use_per_article_contents_view]  

Argumente

-?
Druckt alle verfügbaren Parameter.

-Publisherserver_name[instance_name]
Der Name des Verlegers. Geben server_name für die Standardinstanz von Microsoft SQL Server server an. Geben server_nameinstance_name für eine benannte Instanz von SQL Server server an.

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

-70Subscribers
Muss verwendet werden, wenn Abonnenten mit SQL Server 7.0 ausgeführt werden.

-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. Durch den Wert 0 wird angezeigt, dass keine Meldungsprotokollierung ausgeführt wird.

-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 server_name für die Standardinstanz von SQL Server server an. Geben server_nameinstance_name für eine benannte Instanz von SQL Server server an.

-DistributorDeadlockPriority [-101]
Die Priorität der Momentaufnahme-Agent-Verbindung mit dem Verteiler, wenn ein Deadlock auftritt. Dieser Parameter wird angegeben, um Deadlocks zu beheben, die möglicherweise während der Momentaufnahmegenerierung zwischen dem Momentaufnahme-Agent und Benutzeranwendungen auftreten.

Wert von DistributorDeadlockPriority BESCHREIBUNG
-1 Bei Auftreten eines Deadlocks auf dem Verteiler haben andere Anwendungen als der Momentaufnahme-Agent Priorität.
0 (Standard) Es wird keine Priorität zugewiesen.
1 Bei Auftreten eines Deadlocks auf dem Verteiler hat der Momentaufnahme-Agent Priorität.

-DistributorLogindistributor_login
Der Anmeldename, der beim Herstellen einer Verbindung mit dem Verteiler mithilfe der SQL Server verwendet wird.

-DistributorPassworddistributor_password
Das Kennwort, das beim Herstellen einer Verbindung mit dem Verteiler mithilfe der SQL Server verwendet wird. .

-DistributorSecurityMode [ 01]
Gibt den Sicherheitsmodus des Verteilers an. Der Wert 0 gibt SQL Server Authentifizierungsmodus (Standard) an, und der Wert 1 gibt Windows Authentifizierungsmodus an.

-DynamicFilterHostNamedynamic_filter_host_name
Wird zum Festlegen eines Werts für HOST_NAME (Transact-SQL) beim Filtern verwendet, wenn eine dynamische Momentaufnahme erstellt wird. rep_id = HOST_NAME() Wenn z. B. die Teilmengenfilterklausel für einen Artikel angegeben ist und Sie die rep_id = HOST_NAME() vor dem Aufruf von Merge-Agent auf "FBJones" festlegen, werden nur Zeilen repliziert, die in der rep_id-Spalte "FBJones" enthalten.

-DynamicFilterLogindynamic_filter_login
Wird zum Festlegen eines Werts für SUSER_SNAME (Transact-SQL) beim Filtern verwendet, wenn eine dynamische Momentaufnahme erstellt wird. user_id = SUSER_SNAME() Wenn z. B. die Teilmengenfilterklausel für einen Artikel angegeben ist und Sie die user_id = SUSER_SNAME() vor dem Aufrufen der Run-Methode des SQLSnapshot-Objekts auf "rsmith" festlegen, werden nur Zeilen mit "r filters" in der user_id-Spalte in die Momentaufnahme aufgenommen.

-DynamicSnapshotLocationdynamic_snapshot_location
Der Speicherort, an dem die dynamische Momentaufnahme generiert werden soll.

-EncryptionLevel [ 012 ]
Dies ist die Verschlüsselungsebene der Transport Layer Security (TLS, früher als Secure Sockets Layer, SSL, bezeichnet), die vom Momentaufnahmen-Agent beim Herstellen von Verbindungen verwendet wird.

Wert von EncryptionLevel BESCHREIBUNG
0 Gibt an, dass TLS nicht verwendet wird.
1 Gibt an, dass TLS verwendet wird, der Agent jedoch nicht überprüft, ob das TLS/SSL-Serverzertifikat von einem vertrauenswürdigen Aussteller signiert wurde.
2 Gibt an, dass TLS verwendet und das Zertifikat überprüft wird.

Hinweis

Ein gültiges TLS/SSL-Zertifikat wird mit dem vollqualifizierten Domänennamen der SQL Server-Instanz definiert. Damit der Agent die Verbindung erfolgreich herstellen kann, wenn „-EncryptionLevel“ auf 2 festgelegt ist, sollten Sie einen Alias auf der lokalen SQL Server-Instanz erstellen. Der Parameter „Alias Name“ sollte den Servernamen enthalten, und für den Parameter „Server“ sollte der vollqualifizierte Name der SQL Server-Instanz festgelegt werden.

Weitere Informationen finden Sie unter Anzeigen und Ändern von Replikationssicherheitseinstellungen.

-FieldDelimiterfield_delimiter
Das Zeichen oder die Zeichenfolge, das bzw. die das Ende eines Felds in der SQL Server Massenkopierdatendatei markiert. Der Standardwert ist \n<3> USD\n.

-HistoryVerboseLevel [ 123]
Gibt den Umfang des Verlaufs an, der während eines Momentaufnahmevorgangs protokolliert wird. Sie können die negativen Auswirkungen der Verlaufsprotokollierung auf die Leistung minimieren, indem Sie den Wert 1auswä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 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 (Standardwert) 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.

-HRBcpBlocksnumber_of_blocks
Die Anzahl von bcp -Datenblöcken, die zwischen dem Lese- und dem Schreibthread in die Warteschlange gestellt werden. Der Standardwert lautet "50". HRBcpBlocks wird nur mit Oracle-Veröffentlichungen verwendet.

Hinweis

Dieser Parameter wird zur Leistungsoptimierung für bcp von einem Oracle-Verleger verwendet.

--block_size
Die Größe jedes einzelnen bcp -Datenblocks in Kilobytes (KB). Der Standardwert ist 64 KB. HRBcpBlocks wird nur mit Oracle-Veröffentlichungen verwendet.

Hinweis

Dieser Parameter wird zur Leistungsoptimierung für bcp von einem Oracle-Verleger verwendet.

-HRBcpDynamicBlocks
Gibt an, ob die Größe jedes einzelnen bcp -Datenblocks dynamisch zunehmen kann. HRBcpBlocks wird nur mit Oracle-Veröffentlichungen verwendet.

Hinweis

Dieser Parameter wird zur Leistungsoptimierung für bcp von einem Oracle-Verleger verwendet.

-KeepAliveMessageIntervalkeep_alive_interval
Gibt an, wie viele Sekunden der Momentaufnahme-Agent wartet, bevor die Meldung, dass auf eine Back-End-Nachricht gewartet wird, in der MSsnapshot_history -Tabelle protokolliert wird. Der Standardwert beträgt 300 Sekunden.

-LoginTimeOutlogin_time_out_seconds
Die Anzahl von Sekunden, nach denen ein Timeout bei der Anmeldung eintritt. Der Standardwert 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 vonMaxBcpThreads muss größer als 0 sein. Es ist keine hartcodierte Obergrenze vorhanden. Der Standardwert ist das Doppelte der Anzahl der Prozessoren.

Hinweis

Wenn das replizierte Objekt über einen Filter verfügt, generiert der Momentaufnahme-Agent nur eine BCP-Datei für diesen Artikel, anstatt mehrere BCP-Dateien zu erstellen.

- - [ 01]
Wird verwendet, wenn irrelevante Löschvorgänge an den Abonnenten gesendet werden. Bei irrelevanten Löschvorgängen handelt es sich um DELETE-Befehle, die für Zeilen, die nicht zur Partition des Abonnenten gehören, an den Abonnenten gesendet werden. Irrelevante Löschvorgänge beeinträchtigen weder die Datenintegrität noch die Konvergenz, allerdings können sie zu unnötigem Netzwerkverkehr führen. Der Standardwert von MaxNetworkOptimization lautet 0. Wenn Sie MaxNetworkOptimization auf 1 festlegen, minimieren Sie dadurch das Risiko irrelevanter Löschvorgänge, wodurch der Netzwerkverkehr verringert und eine Netzwerkoptimierung erzielt wird. Gleichzeitig werden bei Festlegung dieses Parameters auf 1 u. U. mehr Metadaten gespeichert, und auf dem Verleger kann es zu Leistungseinbußen kommen, wenn mehrere Ebenen von Joinfiltern und komplexe Teilmengenfilter vorhanden sind. Daher sollten Sie die Replikationstopologie sorgfältig bewerten und MaxNetworkOptimization nur dann auf 1 festlegen, wenn durch irrelevante Löschvorgänge mehr Netzwerkverkehr entsteht, als akzeptabel ist.

Hinweis

Das Festlegen dieses Parameters auf 1 ist nur nützlich, wenn die Synchronisierungsoptimierungsoption der Mergeveröffentlichung auf TRUE festgelegt ist (der Parameter von sp_addmergepublication (Transact-SQL)).

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

Wert von OutputVerboseLevel BESCHREIBUNG
0 Nur Fehlermeldungen werden gedruckt.
1 (Standard) Alle Statusberichtsmeldungen werden gedruckt (Standard).
2 Alle Fehlermeldungen und Statusberichtsmeldungen werden gedruckt, was zum Debuggen nützlich ist.

-PacketSizepacket_size
Die Paketgröße (in Bytes), die vom Momentaufnahmen-Agent beim Herstellen einer Verbindung mit SQL Server verwendet wird. Der Standardwert ist 8192 Bytes.

Hinweis

Sie sollten die Paketgröße nur dann ändern, wenn Sie sicher sind, dass die Leistung dadurch verbessert werden kann. Für die meisten Anwendungen empfiehlt sich die Standardpaketgröße.

-PrefetchTables [ 01]
Optionaler Parameter, der angibt, ob die Tabellenobjekte vorab abgerufen und zwischengespeichert werden. Standardmäßig werden bestimmte Tabelleneigenschaften mithilfe der SMO-Komponente basierend auf einer internen Berechnung vorab abgerufen. Dieser Parameter kann in Szenarios hilfreich sein, in denen die Ausführung des SMO-Vorabrufvorgangs erheblich länger dauert. Wenn dieser Parameter nicht verwendet wird, wird diese Entscheidung zur Laufzeit basierend auf dem Prozentsatz der Tabellen getroffen, die der Veröffentlichung als Artikel hinzugefügt werden.

Wert von OutputVerboseLevel BESCHREIBUNG
0 Der Aufruf der Prefetch-Methode der SMO-Komponente ist deaktiviert.
1 Der Momentaufnahmen-Agent ruft die Prefetch-Methode auf, um einige Tabelleneigenschaften mithilfe von SMO zwischenzuspeichern.

-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 Replication Agent Profiles.

-PublisherDBpublisher_database
Der Name der Veröffentlichungsdatenbank. Der Parameter wird von Oracle-Verlegern nicht unterstützt.

-PublisherDeadlockPriority [-101]
Die Priorität der Momentaufnahme-Agent-Verbindung mit dem Verleger, wenn ein Deadlock auftritt. Dieser Parameter wird angegeben, um Deadlocks zu beheben, die möglicherweise während der Momentaufnahmegenerierung zwischen dem Momentaufnahme-Agent und Benutzeranwendungen auftreten.

Wert von PublisherDeadlockPriority BESCHREIBUNG
-1 Bei Auftreten eines Deadlocks auf dem Verleger haben andere Anwendungen als der Momentaufnahme-Agent Priorität.
0 (Standard) Es wird keine Priorität zugewiesen.
1 Bei Auftreten eines Deadlocks auf dem Verleger hat der Momentaufnahme-Agent Priorität.

-PublisherFailoverPartnerserver_name[instance_name]
Gibt die Failoverpartnerinstanz von SQL Server an, die an einer Datenbankspiegelungssitzung mit der Veröffentlichungsdatenbank teilnehmen. Weitere Informationen finden Sie unter Datenbankspiegelung und -replikation (SQL Server).

-PublisherLoginpublisher_login
Der Anmeldename, der beim Herstellen einer Verbindung mit dem Publisher mithilfe der SQL Server-Authentifizierung verwendet wird.

-PublisherPasswordpublisher_password
Das Kennwort, das beim Herstellen einer Verbindung mit dem Publisher mithilfe der SQL Server-Authentifizierung verwendet wird. .

-PublisherSecurityMode [ 01]
Gibt den Sicherheitsmodus des Verlegers an. Der Wert 0 gibt SQL Server Authentifizierung (Standard) an, und der Wert 1 gibt Windows Authentifizierungsmodus an.

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

-ReplicationType [ 12]
Gibt den Typ der Replikation an. Der Wert 1 steht für die Transaktionsreplikation, der Wert 2 für die Mergereplikation.

-RowDelimiterrow_delimiter
Das Zeichen oder die Zeichensequenz, das bzw. die das Ende einer Zeile in der SQL Server Massenkopierdatendatei markiert. Der Standardwert ist \n<,@g>\n.

-StartQueueTimeoutstart_queue_timeout_seconds
Die maximale Anzahl von Sekunden, die der Momentaufnahmen-Agent wartet, wenn die Anzahl gleichzeitig ausgeführter dynamischer Momentaufnahmeprozesse den Grenzwert erreicht, der durch die @max_concurrent_dynamic_snapshots -Eigenschaft von @max_concurrent_dynamic_snapshots festgelegt wurde. Wenn der Momentaufnahme-Agent nach Verstreichen der maximalen Anzahl von Sekunden immer noch wartet, wird der Agent beendet. Der Wert 0 bedeutet, dass der Agent unbegrenzt wartet, der Vorgang jedoch abgebrochen werden kann.

- - use_per_article_contents_view
Dieser Parameter wurde als veraltet markiert und wird lediglich aus Gründen der Abwärtskompatibilität unterstützt.

Bemerkungen

Wichtig

Wenn Sie 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 die Momentaufnahmen-Agent, die unter SQL Server-Agent ausgeführt wird, für die Verwendung Windows Authentifizierungsmodus konfiguriert ist, wenn sie sich bei SQL Server anmeldet, schlägt die Momentaufnahmen-Agent fehl. Die Standardeinstellung ist SQL Server-Authentifizierung.

Führen Sie zum Starten des Momentaufnahme-Agents von der Eingabeaufforderung snapshot.exe aus. Informationen hierzu finden Sie im Abschnitt zu den ausführbaren Dateien von Replikations-Agents.

Weitere Informationen

Replikations-Agent-Verwaltung