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

SQL Anywhere 12.0.0 (Deutsch) » SQL Remote » SQL Remote-Systeme erstellen » Einführung in die transaktionslogbasierte Replikation

 

Trigger replizieren

Üblicherweise sind bei entfernten Datenbanken dieselben Trigger wie bei der konsolidierten Datenbank definiert.

Standardmäßig repliziert SQL Remote die Aktionen nicht, die von Triggern durchgeführt werden. Wenn eine Aktion, die einen Trigger in der konsolidierten Datenbank auslöst, in der entfernten Datenbank repliziert wird, erfolgt eine automatische Auslösung des mehrfach vorhandenen Triggers in der entfernten Datenbank. Dadurch werden Berechtigungsprobleme verhindert und sichergestellt, dass keine Aktion zweimal eintritt. Es gibt einige Ausnahmen zu dieser Regel.

  • RESOLVE UPDATE-Trigger replizieren   Die von der Konfliktlösung oder den RESOLVE UPDATE-Trigger durchgeführten Aktionen werden von einer konsolidierten Datenbank an alle entfernten Datenbanken repliziert, einschließlich jene entfernte Datenbank, welche die Nachricht versendet hat, die den Konflikt erstellt hat. Siehe Standardlösung für Aktualisierungskonflikte.

  • Replikation von BEFORE-Triggern   Die Aktionen eines BEFORE-Triggers, der eine Zeile, die aktualisiert wird, ändert, werden vor den UPDATE-Anweisungsaktionen repliziert.

    So würde zum Beispiel ein BEFORE UPDATE-Trigger, der eine Zählungsspalte in der Zeile erhöht, um die Anzahl der Aktualisierungen einer Zeile zu protokollieren, eine doppelte Zählung bewirken, wenn er repliziert wird, da der BEFORE UPDATE-Trigger in der entfernten Datenbank ausgelöst wird, wenn die UPDATE-Anweisung repliziert wird.

    Ein BEFORE UPDATE-Trigger, der eine Spalte auf den Zeitpunkt der letzten Aktualisierung setzt, erhält auch den Zeitpunkt, an dem die UPDATE-Anweisung repliziert wird.

    Um dieses Problem zu vermeiden, müssen Sie sicherstellen, dass in der Subskribenten-Datenbank der BEFORE UPDATE-Trigger nicht vorhanden ist beziehungsweise die replizierte Aktion nicht ausführt.

 Eine Option, um Triggeraktionen zu replizieren
 Triggerfehler vermeiden
 Extraktionsdienstprogramm (dbxtract)
 Siehe auch