Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Remote » SQL Remote-Replikationsplanung » SQL Remote-Replikation planen und einrichten » Einführung in die transaktionslogbasierte Replikation

 

UPDATE-Anweisungen replizieren

UPDATE-Anweisungen werden möglicherweise nicht genau so repliziert, wie sie in die Datenbank eingegeben werden. Die folgenden Szenarien beschreiben, wie eine UPDATE-Anweisung repliziert wird:

  • Wenn eine UPDATE-Anweisung bewirkt, dass eine Zeile einer gegebenen Subskription eines entfernten Benutzers aktualisiert wird, erfolgt ihre Sendung an diesen Benutzer als UPDATE-Anweisung.

  • Wenn eine UPDATE-Anweisung bewirkt, dass eine Zeile aus einer gegebenen Subskription eines entfernten Benutzers entfernt wird, erfolgt ihre Sendung an diesen Benutzer als DELETE-Anweisung.

  • Wenn eine UPDATE-Anweisung bewirkt, dass eine Zeile einer gegebenen Subskription eines entfernten Benutzers hinzugefügt wird, erfolgt ihre Sendung an diesen Benutzer als INSERT-Anweisung.

Um zu veranschaulichen, wie eine UPDATE-Anweisung repliziert werden kann, verwendet das folgende Beispiel eine konsolidierte Datenbank und drei entfernte Datenbanken für die Benutzer Ann, Marc und ManagerSteve.

Eine Publikation mit einer Rep-Spalte, die Marc und Ann enthält. Jeder Subskribent erhält die Zeilen, die mit seinem Namen gekennzeichnet sind.

In der konsolidierten Datenbank gibt es eine Publikation namens cons, die mit der folgenden Anweisung erstellt wird:

CREATE PUBLICATION "cons"."p1" (
 TABLE "DBA"."customers" ( "ID", "Rep") SUBSCRIBE BY repid
);

Ann und Marc subskribieren die cons-Publikation anhand ihrer jeweiligen Rep-Spaltenwerte. ManagerSteve subskribiert die cons-Publikation anhand der Rep-Spaltenwerte von Ann und Marc. Die folgenden Anweisungen subskribieren die drei Benutzer für die cons-Publikation:

CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Ann' ) 
  FOR "Ann";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Marc' ) 
  FOR "Marc";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Ann' ) 
  FOR "ManagerSteve";
CREATE SUBSCRIPTION 
  TO "cons"."p1"( 'Marc' ) 
  FOR "ManagerSteve";

In der konsolidierten Datenbank wird eine UPDATE-Anweisung, die den Rep-Wert einer Zeile von Marc zu Ann ändert, folgendermaßen repliziert:

  • Marc als DELETE-Anweisung..

  • Ann als INSERT-Anweisung.

  • ManagerSteve als UPDATE-Anweisung.

Der Inhalt der konsolidierten Datenbank und der entfernten Datenbanken nach der Replikation.

Diese Neuzuweisung von Zeilen wird manchmal als territoriale Neuaufteilung bezeichnet, da sie eine übliche Eigenschaft bei Anwendungen ist, die den Verkauf automatisieren und bei denen Kunden dem Verkaufspersonal regelmäßig neu zugeordnet werden.

Siehe auch