Replication Snapshot Agent

Gilt für:SQL ServerAzure 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 Momentaufnahme-Ordner 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 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.

-PublicationVeröffentlichung
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 SQL Server, Version 7.0, ausführen.

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

-DistributorDeadlockPriority [-1|0|1]
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
Ist die Anmeldung, die beim Herstellen einer Verbindung mit dem Verteiler mithilfe der SQL Server-Authentifizierung verwendet wird.

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

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

-DynamicFilterHostNamedynamic_filter_host_name
Wird verwendet, um einen Wert für HOST_NAME (Transact-SQL) beim Erstellen einer dynamischen Momentaufnahme festzulegen. Wenn z. B. für einen Artikel die Teilmengenfilterklausel rep_id = HOST_NAME() angegeben wird und Sie die DynamicFilterHostName -Eigenschaft auf "FBJones" festlegen, bevor Sie den Merge-Agent aufrufen, werden nur Zeilen repliziert, in denen in der Spalte rep_id der Wert "FBJones" enthalten ist.

-DynamicFilterLogindynamic_filter_login
Wird verwendet, um einen Wert für SUSER_SNAME (Transact-SQL) beim Erstellen einer dynamischen Momentaufnahme festzulegen. Wenn z. B. für einen Artikel die Teilmengenfilterklausel user_id = SUSER_SNAME() angegeben wird und Sie die DynamicFilterLogin -Eigenschaft auf "rsmith" festlegen, bevor Sie die Run -Methode des SQLSnapshot -Objekts aufrufen, enthält die Momentaufnahme nur Zeilen, in denen in der Spalte user_id der Wert "rsmith" enthalten ist.

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

-EncryptionLevel [ 0 | 1 | 2 ]
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
Ist das Zeichen oder die Zeichensequenz, das das Ende eines Felds in der SQL Server-Massenkopie-Datendatei markiert. Der Standardwert ist \n<x$3>\n.

-HistoryVerboseLevel [ 1| 2| 3]
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 ist 50. HRBcpBlocks wird nur mit Oracle-Veröffentlichungen verwendet.

Hinweis

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

-HRBcpBlockSizeblock_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
Ist die Anzahl der Sekunden, bevor die Anmeldezeitüberschreitung erfolgt. 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.

- MaxNetworkOptimization [ 0| 1]
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 hilfreich, wenn die Synchronisierungsoptimierungsoption der Zusammenführungsveröffentlichung auf "true " festgelegt ist (der @keep_partition_changes** 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 [ 0| 1| 2]
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
Ist die Paketgröße (in Byte), 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 [ 0| 1]
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 [-1|0|1]
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 Datenbank Spiegel Sitzung mit der Publikationsdatenbank teilnimmt. Weitere Informationen finden Sie unter Datenbankspiegelung und Replikation (SQL Server).

-PublisherLoginpublisher_login
Ist die Anmeldung, die beim Herstellen einer Verbindung mit publisher mithilfe der SQL Server-Authentifizierung verwendet wird.

-PublisherPasswordHerausgeberkennwort
Ist das Kennwort, das beim Herstellen einer Verbindung mit publisher mithilfe der SQL Server-Authentifizierung verwendet wird. .

-PublisherSecurityMode [ 0| 1]
Gibt den Sicherheitsmodus des Verlegers an. Ein Wert von 0 gibt die SQL Server-Authentifizierung (Standard) und einen Wert von 1 an, der den Windows-Authentifizierungsmodus angibt.

-QueryTimeOutquery_time_out_seconds
Ist die Anzahl der Sekunden, bevor die Abfrage ein Zeitüberschreitungsüberschreitung hat. Der Standardwert ist 1800 Sekunden.

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

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

-StartQueueTimeoutstart_queue_timeout_seconds
Ist die maximale Anzahl von Sekunden, die die Momentaufnahmen-Agent wartet, wenn die Anzahl der ausgeführten gleichzeitigen dynamischen Momentaufnahme-Prozesse auf dem von der @max_concurrent_dynamic_snapshots Eigenschaft sp_addmergepublication (Transact-SQL) festgelegten Grenzwert liegt. 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.

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

Hinweise

Wichtig

Wenn Sie SQL Server-Agent installiert haben, um unter einem lokalen Systemkonto statt unter einem Do Standard Benutzerkonto (Standard) ausgeführt zu werden, 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 des Windows-Authentifizierungsmodus konfiguriert ist, wenn sie sich bei SQL Server anmeldet, schlägt die Momentaufnahmen-Agent fehl. Die Standardeinstellung ist die 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

Verwaltung des Replikations-Agents