Replikation mit Abonnenten von speicheroptimierten Tabellen
Gilt für: SQL Server Azure SQL Managed Instance
Die Tabellen, die als Momentaufnahmen- und Transaktionsreplikationsabonnenten fungieren, können (mit Ausnahme der Peer-zu-Peer-Transaktionsreplikation) als speicheroptimierte Tabellen konfiguriert werden. Andere Replikationskonfigurationen sind mit speicheroptimierten Tabellen nicht kompatibel. Dieses Feature ist ab SQL Server 2016 (13.x) verfügbar.
Zwei Konfigurationen sind erforderlich.
Konfigurieren der Abonnentendatenbank für die Unterstützung der Replikation in speicheroptimierte Tabellen
Legen Sie die memory_optimized-Eigenschaft auf true fest, indem Sie sp_addsubscription (Transact-SQL) oder sp_changesubscription (Transact-SQL) verwenden.
Konfigurieren des Artikels für die Unterstützung der Replikation in speicheroptimierte Tabellen
Legen Sie die
@schema_option = 0x40000000000
-Option für den Artikel mit sp_addarticle (Transact-SQL) oder sp_changearticle (Transact-SQL) fest.
So konfigurieren Sie eine speicheroptimierte Tabelle als Abonnent
Erstellen Sie eine Transaktionsveröffentlichung. Weitere Informationen finden Sie unter Create a Publication.
Fügen Sie der Veröffentlichung Artikel hinzu. Weitere Informationen finden Sie unter Definieren eines Artikels.
Falls die Konfiguration mit Transact-SQL erfolgt, legen Sie den schema_option-Parameter der gespeicherten Prozedur sp_addarticle folgendermaßen fest:
0x40000000000.Legen Sie im Fenster mit den Artikeleigenschaften Enable Memory optimization auf truefest.
Starten Sie den Auftrag des Momentaufnahme-Agents, um die Anfangsmomentaufnahme für diese Veröffentlichung zu generieren. Weitere Informationen finden Sie unter Create and Apply the Initial Snapshot.
Erstellen Sie dann ein neues Abonnement. Legen Sie im Assistenten für neue AbonnementsMemory Optimized Subscription auf truefest.
Speicheroptimierte Tabellen empfangen nun Updates vom Verleger.
Neukonfiguration einer vorhandenen Transaktionsreplikation
Gehen Sie in Management Studio zu den Abonnementeigenschaften, und legen Sie Speicheroptimiertes Abonnement auf true fest. Die Änderungen werden erst nach der erneuten Initialisierung des Abonnements wirksam.
Falls Sie die Konfiguration mit Transact-SQL vornehmen, legen Sie den neuen memory_optimized-Parameter der gespeicherten Prozedur sp_addsubscription auf true fest.
Gehen Sie in Management Studio zu den Artikeleigenschaften einer Veröffentlichung, und legen Sie Speicheroptimierung aktivieren auf „true“ fest.
Falls die Konfiguration mit Transact-SQL erfolgt, legen Sie den schema_option-Parameter der gespeicherten Prozedur sp_addarticle folgendermaßen fest:
0x40000000000.Speicheroptimierte Tabellen unterstützen keine gruppierten Indizes. Daher müssen gruppierte Indizes bei der Replikation auf dem Ziel in nicht gruppierte Indizes konvertiert werden. Hierzu muss der Parameter Convert clustered index to nonclustered for memory optimized article auf "true" festgelegt werden.
Falls die Konfiguration mit Transact-SQL erfolgt, legen Sie den @schema_option-Parameter der gespeicherten Prozedur sp_addarticle auf 0x0000080000000000 fest.
Generieren Sie die Momentaufnahme erneut.
Initialisieren Sie das Abonnement erneut.
Hinweise und Einschränkungen
Es wird nur die unidirektionale Transaktionsreplikation unterstützt. Die Peer-zu-Peer-Transaktionsreplikation wird nicht unterstützt.
Speicheroptimierte Tabellen können nicht veröffentlicht werden.
Replikationstabellen auf dem Verteiler können nicht als speicheroptimierte Tabellen konfiguriert werden.
Die Mergereplikation kann speicheroptimierte Tabellen einschließen.
Auf dem Abonnenten können die Tabellen, die bei einer Transaktionsreplikation berücksichtigt werden, als speicheroptimierte Tabellen konfiguriert werden. Die Abonnententabellen müssen jedoch die Anforderungen für speicheroptimierte Tabellen erfüllen. Dies erfordert folgende Einschränkungen.
Tabellen, die mit speicheroptimierten Tabellen auf Abonnenten repliziert werden, sind auf die Datentypen beschränkt, die für speicheroptimierte Tabellen zulässig sind. Weitere Informationen finden Sie unter Unterstützte Datentypen für In-Memory OLTP.
Nicht alle Transact-SQL-Funktionen werden von speicheroptimierten Tabellen unterstützt. Weitere Einzelheiten finden Sie unter Von In-Memory OLTP nicht unterstützte Transact-SQL-Konstrukte .
Ändern einer Schemadatei
Bei Verwendung der Option für speicheroptimierte Tabellen
DURABILITY = SCHEMA_AND_DATA
muss die Tabelle einen nicht gruppierten Primärschlüsselindex aufweisen.ANSI_PADDING muss auf ON festgelegt sein.