Einschränkungen bei der Replikation

Wenn Sie die Mergereplikation mit Abonnenten von Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) verwenden, gibt es verschiedene Einschränkungen beim Veröffentlichen. In diesem Abschnitt werden diese Einschränkungen beschrieben.

Einschränkungen bei Schemaänderungen auf dem Abonnenten

Sie können einige Schemaänderungen auf dem Abonnenten vornehmen, jedoch nicht alle. In der folgenden Tabelle werden die möglichen Schemaänderungen beschrieben, die auf dem Abonnenten ausgeführt bzw. nicht ausgeführt werden können.

Aktion Zulässig für eine replizierte Tabelle

Tabelle löschen

Nein

Tabelle umbenennen

Nein

Spalte hinzufügen, löschen oder entfernen

Nein

Ausgangswert oder Inkrementwert in einer Identitätsspalte ändern

Ja

Standard hinzufügen oder löschen

Ja

Primärschlüssel hinzufügen oder löschen

Nein

Fremdschlüssel hinzufügen oder löschen

Nein

Index hinzufügen oder löschen

Vorsicht:
Indizes für Replikationsspalten von Benutzertabellen sollten nicht hinzugefügt oder gelöscht werden. Dies führt zu Fehlern bei der Synchronisierung, da Replikationsspalten wie Systemspalten behandelt werden.

Ja

Index umbenennen

Ja

Wichtig:
Schemaänderungen können nicht in Systemtabellen vorgenommen werden.

Zusätzliche Anforderungen

Die folgenden Regeln gelten für SQL Server Compact Edition-Abonnenten:

  • Arbeitsspeicherverbrauch
    Nachdem die Neuinitialisierung angefordert wurde, kann während der Synchronisierung die SQL Server Compact Edition-Datenbank vorübergehend auf die doppelte Größe der tatsächlichen Datenbank anwachsen, sie wird jedoch nach Abschluss der Synchronisierung wieder verkleinert (basierend auf den jeweiligen Richtlinien für die automatische Verkleinerung.)
  • Abonnementfilterüberprüfung
    Die Filterüberprüfung ermöglicht es dem Verleger, den Filterwert eines Abonnenten vor dem Synchronisieren der Daten zu überprüfen. Wenn sich der Filterwert auf dem Abonnenten geändert hat, erfordert der Verleger eine Neuinitialisierung auf dem Abonnenten. Beim Synchronisieren von Daten mit SQL Server 2005 kann SQL Server Compact Edition die Filterüberprüfung verwenden.
    Hinweis:
    Die HostName-Eigenschaft gibt den Wert des dynamischen Filters für das Abonnement an. Wenn Sie den Wert des dynamischen Filters für den Abonnenten durch Angeben einer neuen HostName-Eigenschaft ändern möchten, müssen Sie vor dem Synchronisieren die Reinitialize -Methode aufrufen.
  • Unterscheidung von Groß-/Kleinschreibung
    SQL Server Compact Edition-Datenbanken unterscheiden nicht nach Groß- und Kleinschreibung. Objekte und Daten werden in einer SQL Server Compact Edition-Datenbank anders behandelt als in einer SQL Server-Datenbank. Beispielsweise werden die beiden Tabellen MYTABLE und mytable in einer SQL Server-Datenbank, bei der nach Groß- und Kleinschreibung unterschieden wird, als unterschiedliche Objekte behandelt. Die gleichen Tabellennamen verursachen in einer SQL Server Compact Edition-Datenbank einen Namenskonflikt. Ebenso würden die beiden Werte MYVALUE und myvalue in SQL Server Compact Edition eine Primärschlüsselverletzung verursachen, während dies in einer SQL Server-Datenbank, bei der nach Groß- und Kleinschreibung unterschieden wird, nicht der Fall wäre.
  • Anzahl der Spalten in einer Tabelle
    SQL Server Compact Edition stellt sieben Systemspalten für die Nachverfolgung bereit. Diese Systemtabellen werden jedoch nicht auf das Spaltenlimit angerechnet.
  • NOT FOR REPLICATION-Einschränkungen
    SQL Server Compact Edition unterstützt die Option NOT FOR REPLICATION nicht. Erstellen Sie mit dieser Option keine Einschränkungen. Falls Einschränkungen in einer Datenbank über die Option NOT FOR REPLICATION verfügen, entfernen Sie die Einschränkung, und erstellen Sie sie anschließend neu. Bei Angabe der Option NOT FOR REPLICATION wird die Einschränkung zwar auf dem SQL Server Compact Edition-Abonnenten erstellt, sie enthält jedoch keine NOT FOR REPLICATION-Syntax.
  • Verbindungstimeout
    SQL Server Compact Edition-Abonnements werden nach Kommunikationsfehlern wiederhergestellt. Dabei wird mit dem letzten erfolgreich übermittelten Datenblock begonnen. Die Voraussetzung ist, dass die Verbindung innerhalb des vom Benutzer konfigurierbaren Timeoutzeitraums wiederhergestellt wird. Auf diese Weise ist eine Synchronisierung möglich, selbst wenn die zugrunde liegende Transportsoftware unzuverlässig oder vorübergehend nicht verfügbar ist.
  • Snapshots
    SQL Server Compact Edition unterstützt sowohl die standardmäßige als auch die alternative Option für den Snapshotspeicherort. Zum Angeben eines alternativen Snapshotspeicherorts können Sie diese Option festlegen, indem Sie entweder die gespeicherte Prozedur sp_addmergepublication verwenden oder mithilfe von SQL Server Management Studio die Eigenschaften einer vorhandenen Publikation ändern.
    • So verwenden Sie die gespeicherte Prozedur sp_addmergepublication
      Legen Sie die Option @snapshot_in_defaultfolder auf FALSE fest, und geben Sie für @alt_snapshot_folder den Speicherort des alternativen Ordners für den Snapshot an.
    • So ändern Sie die Publikationseigenschaften einer vorhandenen Publikation
      Deaktivieren Sie im Abschnitt Snapshot des Dialogfelds Eigenschaften für die Publikation das Kontrollkästchen Dateien im Standardordner speichern, aktivieren Sie das Kontrollkästchen Dateien im folgenden Ordner speichern, und geben Sie dann den neuen Speicherort an.
    Hinweis:
    SQL Server Compact Edition unterstützt die Option für komprimierte Snapshots nicht.

Weitere Informationen zu Snapshots finden Sie unter Konfigurieren des Snapshotordners.

Informationen, die nicht an einen Abonnenten von SQL Server Compact Edition weitergegeben werden

Sie können die folgenden Elemente in eine SQL Server-Publikation einfügen, sie werden jedoch nicht an den SQL Server Compact Edition-Abonnenten weitergegeben:

  • CHECK-Einschränkungen
  • Erweiterte Eigenschaften
  • Gespeicherte Prozeduren
  • Sichten
  • Benutzerdefinierte Funktionen
  • Trigger

Da die SQL Server Compact Edition-Replikation diese Elemente nicht weitergeben kann, müssen Sie äquivalente Logik in eine SQL Server Compact Edition-basierte Anwendung implementieren. Dadurch stellen Sie sicher, dass die SQL Server Compact Edition-Datenbank mit der SQL Server-Datenbank konsistent bleibt. Wenn die SQL Server-Datenbank z. B. eine CHECK-Einschränkung einschließt, muss die SQL Server Compact Edition-basierte Anwendung die entsprechende Überprüfung im Anwendungscode implementieren.

Erstellen von Indizes für eine lokale Datenbank von SQL Server Compact Edition

Sie können eindeutige Indizes für eine lokale SQL Server Compact Edition-Datenbank erstellen, selbst wenn diese Datenbank Abonnent einer Publikation ist. Dies ist hilfreich, kann jedoch zu Problemen führen, wenn der Verleger, der keine UNIQUE-Einschränkung für eine Spalte aufweist, nicht eindeutige Daten an den Abonnenten sendet. Beispiel: Eine Tabelle T enthält die Spalten C1 und C2, und der Primärschlüssel befindet sich in C1.

C1

C2

A

1

B

2

C

3

Für die SQL Server Compact Edition-Datenbank findet eine Erstsynchronisierung statt. Nach dieser Synchronisierung wird ein eindeutiger Index C2 in der Abonnementdatenbank hinzugefügt. An der Publikationsdatenbank werden keine Änderungen vorgenommen.

Während der nächsten Synchronisierung fügt SQL Server folgende Zeilen ein:

D

3

E

3

In diesem Fall tritt ein Fehler bei der Synchronisierung auf, da der Verleger versucht hat, nicht eindeutige Werte für C2 einzufügen. Bei der Synchronisierung werden weiterhin Fehler auftreten, bis die UNIQUE-Einschränkung aus der Abonnementdatenbank entfernt wird.

Siehe auch

Hilfe und Information

Informationsquellen für SQL Server Compact Edition