Ändern der Optionen für die Initialisierung von Momentaufnahmen für die SQL-Replikation

Gilt für:SQL ServerAzure SQL Managed Instance

Es gibt mehrere Optionen, die beim Initialisieren eines Abonnements mit einem Snapshot angegeben werden können.

Angeben des Momentaufnahmeformats (SQL Server Management Studio)

Geben Sie das Momentaufnahmeformat auf der Seite "Momentaufnahme " des Dialogfelds "Publikationseigenschaften - <Publikation> " an. Weitere Informationen zum Zugreifen auf dieses Dialogfeld finden Sie unter View and Modify Publication Properties.

Snapshot-Format angeben

  1. Wählen Sie auf der Seite Snapshot des Dialogfelds Publication Properties - <Publication> die Option Native SQL Server - alle Subscriber müssen Server sein, auf denen SQL Server ausgeführt wird oder Character - erforderlich, wenn ein Publisher oder Subscriber nicht unter SQL Server ausgeführt wird aus.

    Hinweis

    Sie sollten das native Format auswählen, sofern diese Veröffentlichung keine Abonnements für eine SQL Server Compact-Datenbank und keine Nicht-SQL Server-Datenbank unterstützen muss.

  2. Wählen Sie OK aus.

Speicherorte von Snapshot-Ordnern

Standard-Speicherort für Snapshots

Geben Sie auf der Seite Snapshotordner des Assistenten zum Konfigurieren der Verteilung den Standardspeicherort für Momentaufnahmen an. Weitere Informationen zum Verwenden dieses Assistenten finden Sie unter Konfigurieren der Veröffentlichung und der Verteilung. Wenn Sie eine Veröffentlichung auf einem Server erstellen, der nicht als Distributor konfiguriert ist, geben Sie auf der Seite Momentaufnahmeordner im Assistenten für neue Veröffentlichungen einen Standardspeicherort für Momentaufnahmen an. Weitere Informationen zum Zugreifen auf diesen Assistenten finden Sie unter Erstellen einer Veröffentlichung.

Ändern Sie den Standardspeicherort für Momentaufnahmen auf der Seite > des Dialogfelds Verteilereigenschaften - Verteiler. Weitere Informationen finden Sie unter Anzeigen und Ändern der Verteiler- und Verlegereigenschaften. Bestimmen Sie den Momentaufnahmeordner für die einzelnen Veröffentlichungen im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung>. Weitere Informationen finden Sie unter View and Modify Publication Properties.

So ändern Sie den Snapshot-Standardspeicherort

  1. Klicken Sie auf der Seite Publisher des Dialogfelds Verteilereigenschaften – <Distributor> auf die Eigenschaften-Schaltfläche (...) für den Publisher, für den Sie den Standardspeicherort für Momentaufnahmen ändern möchten.

  2. Geben Sie im Dialogfeld Veröffentlichungseigenschaften - <Publisher> einen Wert für die Eigenschaft Standardsnapshotordner ein.

    Hinweis

    Der Snapshot-Agent muss Schreibberechtigungen für das von Ihnen angegebene Verzeichnis haben, und der Verteilungs-Agent oder Merge-Agent muss über Leseberechtigungen verfügen. Wenn Pullabonnements verwendet werden, müssen Sie ein freigegebenes Verzeichnis als Pfad in der Universal Naming Convention (UNC) angeben, beispielsweise \\computername\snapshot. Weitere Informationen finden Sie unter Absichern des Snapshot-Ordners.

  3. Wählen Sie OK aus.

Alternative Snapshot-Speicherorte

Alternative Momentaufnahmespeicherorte ermöglichen Ihnen das Speichern von Momentaufnahmedateien an einem anderen Speicherort oder zusätzlich zum Standardspeicherort, der sich normalerweise auf dem Verteiler befindet. Alternative Speicherorte können sich auf einem anderen Server, in einem Netzlaufwerk oder auf Wechselmedien befinden, z. B. CD-ROMs oder Wechseldatenträgern.

Alternative Speicherorte für Snapshots werden als Eigenschaft der Veröffentlichung gespeichert. Da der alternative Speicherort für Momentaufnahmen eine Veröffentlichungseigenschaft ist, können der Verteilungs-Agent und der Merge-Agent die korrekte Momentaufnahme als Teil des Synchronisierungsprozesses finden.

Wenn Sie einen alternativen Speicherort für Momentaufnahmeordner angeben oder Momentaufnahmedateien komprimieren möchten, erstellen Sie die Veröffentlichung, ohne die AnfangsMomentaufnahme sofort zu erstellen, legen Sie die Veröffentlichungseigenschaften für den Momentaufnahmespeicherort fest, und führen Sie dann den Momentaufnahme-Agent für diese Veröffentlichung aus. Wenn Sie den alternativen Speicherort nach dem Erstellen des ersten Snapshots ändern, wird der Speicherort aller für die Publikation generierten Snapshots nicht an den neuen alternativen Speicherort verlegt. In diesem Fall kann der Merge-Agent oder der Distribution-Agent abhängig von den Veröffentlichungseinstellungen die Momentaufnahmedateien am neuen alternativen Speicherort möglicherweise nicht finden.

Hinweis

Geben Sie keinen alternativen Speicherort (mithilfe des Dialogfelds "Publikationseigenschaften " oder sp_changepublication (Transact-SQL)) an, der dem Standardspeicherort des Snapshotordners entspricht.

Achtung

Verwenden Sie WebSync und alternative Ordnerspeicherorte für Momentaufnahmen nicht gleichzeitig.

Verwenden von SQL Server Management Studio

  1. Auf der Seite "Momentaufnahme " des Dialogfelds "Publikationseigenschaften <- Publikation> ":

    1. Aktivieren Sie Dateien im folgenden Ordner speichern, und klicken Sie dann auf Durchsuchen , um ein Verzeichnis auszuwählen, oder geben Sie den Pfad zu dem Verzeichnis ein, in dem Sie die Momentaufnahmedateien speichern möchten.

      Hinweis

      Der Snapshot-Agent muss Schreibberechtigungen für das von Ihnen angegebene Verzeichnis haben, und der Verteilungs-Agent oder Merge-Agent muss über Leseberechtigungen verfügen. Wenn Pullabonnements verwendet werden, müssen Sie ein freigegebenes Verzeichnis als Pfad in der Universal Naming Convention (UNC) angeben, beispielsweise \\computername\snapshot. Weitere Informationen finden Sie unter Absichern des Snapshot-Ordners.

    2. Deaktivieren Sie Dateien im Standardordner ablegen, es sei denn, die Momentaufnahmedateien müssen an beide Speicherorte geschrieben werden.

    Zum Komprimieren von Momentaufnahmedateien aktivieren Sie Momentaufnahmedateien in diesem Ordner komprimieren. Die Komprimierung wird in der Regel für Verbindungen mit niedriger Bandbreite und für alternative Momentaufnahmespeicherorte auf Wechselmedien verwendet, z. B. einer CD-ROM.

  2. Wählen Sie OK aus.

Verwenden von Transact-SQL

Geben Sie beim Konfigurieren von Snapshot-Eigenschaften (Replikation Transact-SQL-Programmierung) den Wert für snapshot_in_defaultfolder als "false" an.

Komprimierte Momentaufnahmen

Das Komprimieren von Momentaufnahmedateien empfiehlt sich, wenn Sie Momentaufnahmen über ein langsames Netzwerk übertragen oder auf Wechselmedien speichern und eine unkomprimierte Momentaufnahme zu groß ist, um auf das Medium zu passen. Das Komprimieren von Momentaufnahmedateien ist in diesen Fällen zwar hilfreich, durch die Komprimierung dauert das Generieren und Anwenden der Momentaufnahme jedoch länger.

Komprimierte Snapshotdateien werden im Microsoft CAB-Dateiformat geschrieben, das Dateien mit 2 GB oder weniger komprimieren kann (wenn die Snapshotdateien größer als 2 GB sind, können sie nicht komprimiert werden). Dateien müssen zum Komprimieren in einen alternativen Momentaufnahmeordner geschrieben werden (in den Standardmomentaufnahmeordner geschriebene Dateien können nicht komprimiert werden).

Dateien werden an dem Ort entpackt, an dem der Verteilungs-Agent oder der Merge-Agent ausgeführt wird; Pullabonnements werden in der Regel mit komprimierten Momentaufnahmen verwendet, sodass Dateien beim Abonnenten entpackt werden. Wenn der Abonnent eine komprimierte Datei empfängt, wird die Datei zunächst an einem temporären Speicherort abgelegt. Nachdem die komprimierte Datei auf den Abonnenten kopiert wurde, werden die Snapshotdateien in der komprimierten Datei durch das CAB-Hilfsprogramm der Reihe nach, Datei für Datei, dekomprimiert. Der beim Abonnenten benötigte Speicherplatz entspricht der Größe der komprimierten Datei plus der größten unkomprimierten Datei.

Hinweis

Komprimierte Momentaufnahmen können in einigen Fällen die Leistung beim Übertragen der Momentaufnahmedateien im Netzwerk verbessern. Beim Komprimieren der Momentaufnahme fällt jedoch zusätzlicher Verarbeitungsaufwand für den Momentaufnahme-Agent an, wenn die Momentaufnahmedateien erstellt werden, sowie für den Verteilungs-Agent oder den Merge-Agent, wenn die Momentaufnahmedateien angewendet werden. Dies könnte das Erstellen von Momentaufnahmen verlangsamen und den Zeitaufwand für das Anwenden einer Momentaufnahme in manchen Fällen erhöhen. Darüber hinaus kann das Übertragen komprimierter Momentaufnahmen bei einem Netzwerkausfall nicht wieder aufgenommen werden, weshalb sie sich nicht für unzuverlässige Netzwerke eignen. Wägen Sie die Vor- und Nachteile sorgfältig ab, wenn Sie komprimierte Momentaufnahmen in einem Netzwerk verwenden.

Verwenden von SQL Server Management Studio

  1. Auf der Seite "Momentaufnahme " des Dialogfelds "Publikationseigenschaften <- Publikation> ":

    1. Aktivieren Sie Dateien im folgenden Ordner speichern, und klicken Sie dann auf Durchsuchen , um ein Verzeichnis auszuwählen, oder geben Sie den Pfad zu dem Verzeichnis ein, in dem Sie die Momentaufnahmedateien speichern möchten.

      Hinweis

      Der Snapshot-Agent muss Schreibberechtigungen für das von Ihnen angegebene Verzeichnis haben, und der Verteilungs-Agent oder Merge-Agent muss über Leseberechtigungen verfügen. Wenn Pullabonnements verwendet werden, müssen Sie ein freigegebenes Verzeichnis als Pfad in der Universal Naming Convention (UNC) angeben, beispielsweise \\computername\snapshot. Weitere Informationen finden Sie unter Sichern Sie den Snapshot-Ordner

    2. Deaktivieren Sie Dateien im Standardordner speichern, es sei denn, Snapshot-Dateien müssen an beiden Speicherorten geschrieben werden.

      Hinweis

      Wenn dieses Kontrollkästchen aktiviert ist, werden die im Standardordner gespeicherten Dateien nicht komprimiert. Komprimierte Dateien können nur im alternativen im vorigen Schritt angegebenen Speicherort gespeichert werden.

  2. Wählen Sie Momentaufnahmedateien in diesem Ordner komprimierenaus.

  3. Wählen Sie OK aus.

Verwenden von Transact-SQL

Wenn Sie Snapshot-Eigenschaften konfigurieren, geben Sie den Wert für compress_snapshot als True an.

Skripts vor und nach Anwendung des Snapshots ausführen

Sie können Skripte angeben, die beim Abonnenten vor oder nach dem Anwenden der Momentaufnahme ausgeführt werden. Skripts können aus verschiedenen Gründen verwendet werden, z. B. zum Erstellen von Anmeldedaten und Schemas (Objektbesitzern) bei jedem Abonnenten.

Sie geben einen Dateispeicherort für jedes Skript an, und der Momentaufnahme-Agent kopiert jeweils bei der Verarbeitung der Momentaufnahme die Skriptdateien in den aktuellen Momentaufnahmeordner. Der Verteilungs-Agent oder der Merge-Agent führt das Vor-Momentaufnahme-Skript vor allen Skripts für replizierte Objekte aus, wenn eine Momentaufnahme angewendet wird. Der Verteilungs-Agent oder der Merge-Agent führt das Skript nach der Snapshoterstellung aus, nachdem alle anderen Skripts für replizierte Objekte ausgeführt und alle Daten angewendet wurden. Nachdem die Momentaufnahmeanwendung abgeschlossen ist und Skriptdateien erfolgreich ausgeführt wurden, werden die Skriptdateien aus dem Arbeitsverzeichnis auf dem Abonnenten entfernt.

Das Skript wird ausgeführt, indem das Hilfsprogramm sqlcmd gestartet wird. Führen Sie das Skript vor der Bereitstellung mithilfe von sqlcmd aus, um sicherzustellen, dass es erwartungsgemäß ausgeführt wird. Der Inhalt von Skripts, die vor und nach dem Anwenden der Momentaufnahme ausgeführt werden, muss wiederholbar sein. Wenn Sie z. B. eine Tabelle im Skript erstellen, müssen Sie zuerst ihr Vorhandensein überprüfen und daraufhin die entsprechende Aktion vornehmen. Das Skript muss wiederholbar sein, denn beim erneuten Initialisieren eines Abonnements, für das das Skript bereits angewendet wurde, wird das Skript erneut angewendet, wenn die neue Momentaufnahme während der erneuten Initialisierung angewendet wird.

Wenn Sie die Momentaufnahmedatei komprimieren (indem Sie sie im Microsoft CAB-Dateiformat einfügen), werden die Skripts ebenfalls komprimiert und in der CAB-Datei platziert. Nachdem die komprimierte Snapshotdatei an den Abonnenten übertragen und in ein Arbeitsverzeichnis auf dem Abonnenten entpackt wurde, werden alle Skripts ausgeführt, die als Vorsnapshotskript angegeben sind. Ebenso werden alle Skripts nach der Snapshoterstellung dekomprimiert und beim Abonnenten als letzter Schritt beim Anwenden des Snapshots ausgeführt.

Ausführen eines Skripts

  1. Auf der Seite „Momentaufnahme“ des Dialogfelds „Publikationseigenschaften - <Publikation>“:
    • Wenn Sie ein Skript angeben möchten, das vor dem Anwenden der Momentaufnahme ausgeführt werden soll, klicken Sie auf Durchsuchen , um zum entsprechenden Skript zu navigieren, oder geben Sie im Textfeld Dieses Skript vor Anwenden der Momentaufnahme ausführen den Pfad zum gewünschten Skript ein.

      Hinweis

      Der Verteilungs-Agent bzw. Merge-Agent muss für das von Ihnen angegebene Verzeichnis Leseberechtigungen besitzen. Wenn Pullabonnements verwendet werden, müssen Sie ein freigegebenes Verzeichnis als UNC-Pfad (Universal Naming Convention) angeben, z. B. \\computername\scripts\myscript.sql.

    • Wenn Sie ein Skript angeben möchten, das nach dem Anwenden der Momentaufnahme ausgeführt werden soll, klicken Sie auf Durchsuchen , um zum entsprechenden Skript zu navigieren, oder geben Sie im Textfeld Dieses Skript nach Anwenden der Momentaufnahme ausführen den UNC-Pfad zum gewünschten Skript ein.

  2. Wählen Sie OK aus.