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

 

Jeder Datenbank eindeutige Identifizierungsnummern zuordnen

Sie müssen jeder entfernten Datenbank eine unterschiedliche Identifizierungsnummer zuordnen. Es gibt mehrere Möglichkeiten, die Kennnummern zu erstellen und zu verteilen. Eine Methode besteht darin, die Werte in eine Tabelle zu platzieren und die entsprechende Zeile beim Download in die einzelnen Datenbanken anhand einer anderen eindeutigen Eigenschaft zuzuordnen, wie zum Beispiel eines Benutzernamens.

Die Option global_database_id verwenden

Die öffentliche Option global_database_id muss in jeder Datenbank als eindeutige, nicht-negative Ganzzahl eingestellt sein. Der Bereich der Standardwerte für eine bestimmte Datenbank liegt zwischen pn+ 1 und p(n + 1), wobei p die Partitionsgröße und n den Wert der öffentlichen Option global_database_id sind. Wenn zum Beispiel die Partitionsgröße 1000 und global_database_id auf 3 gesetzt sind, erstreckt sich der Bereich von 3001 bis 4000.

Wenn global_database_id auf eine nicht-negative Ganzzahl eingestellt ist, wählt SQL Anywhere Standardwerte aus, indem die folgenden Regeln angewendet werden:

  • Wenn die Spalte in der aktuellen Partition keine Werte enthält, ist der erste Standardwert pn + 1.

  • Wenn die Spalte in der aktuellen Partition Werte enthält, die alle weniger als p(n + 1) betragen, wird der nächste Standardwert um eins größer als der vorherige Höchstwert in diesem Bereich sein.

  • Standardspaltenwerte sind von Werten, die sich in der Spalte außerhalb der aktuellen Partition befinden, nicht betroffen; d.h. von Zahlen kleiner als pn + 1 oder größer als p(n + 1). Solche Werte können vorhanden sein, wenn sie von einer anderen Datenbank über MobiLink-Synchronisation repliziert wurden.

Wenn die öffentliche Option global_database_id auf den Standardwert 2147483647 gesetzt ist, wird NULL in die Spalte eingefügt. Falls NULL nicht zulässig ist, wird durch den Einfügeversuch ein Fehler verursacht. Dies geschieht etwa, wenn die Spalte im Primärschlüssel der Tabelle enthalten ist.

Da die öffentliche Option global_database_id nicht auf negative Werte eingestellt werden kann, sind die ausgewählten Werte immer positiv. Die maximale Identifizierungsnummer wird nur durch den Spaltendatentyp und die Partitionsgröße beschränkt.

Null-Standardwerte werden auch generiert, wenn der Vorrat von Werten innerhalb der Partition aufgebraucht ist. In diesem Beispiel sollte der Datenbank ein neuer global_database_id-Wert zugewiesen werden, damit Standardwerte aus einer anderen Partition gewählt werden können. Der Versuch, NULL einzufügen, bewirkt einen Fehler, wenn die Spalte NULL nicht zulässt. Um festzustellen, ob der Vorrat von ungenutzten Werten zu Ende geht, und um diese Situation zu beheben, erstellen Sie ein Ereignis vom Typ GlobalAutoincrement.

Sollten die Werte in einer bestimmten Partition zu Ende gehen, können Sie dieser Datenbank eine neue Datenbank-ID zuordnen. Sie können neue Datenbank-Identifizierungsnummern auf verschiedene Arten zuordnen. Eine Möglichkeit ist, einen Pool von nicht benutzten Datenbank-ID-Werten einzurichten. Dieser Pool wird auf dieselbe Weise wie ein Pool von Primärschlüsseln verwaltet.Primärschlüsselpools verwenden.

Sie können einen Event-Handler einstellen, um den Datenbankadministrator automatisch zu benachrichtigen (oder um eine andere Aktion auszuführen), wenn die Partition beinahe aufgebraucht ist. Weitere Hinweise finden Sie unter Triggerbedingungen für Ereignisse definieren.

Siehe auch

Den Wert global_database_id festlegen
Eindeutige Identifizierungsnummern beim Extrahieren von Datenbanken festlegen