Mit der Standard- oder Advanced-Lizenz verfügbar.
Wenn ein Replikat erstellt wird, werden Daten und Schemas aus der Parent-Geodatabase in die Child-Geodatabase kopiert. Die Daten enthalten die Zeilen, die aus den Datasets im Replikat repliziert werden sollen. Das Schema besteht aus den Feldern, Domänen, Subtypes und anderen Eigenschaften, die die replizierten Daten beschreiben.
Ursprünglich sind die Schemas auf beiden Replikaten identisch. Mit der Zeit können jedoch Änderungen auf jedes Replikatschema angewendet werden. Beispielsweise erfordert ein Replikat zusätzliche Felder, um ein Projekt abzuschließen, während das relative Replikat möglicherweise eine neue Domäne auf ein bestehendes Feld anwenden muss. In diesem Fall sind die Schemas der Replikate nicht mehr identisch.
Folgendes wurde zum Arbeiten mit Schemaabweichungen in Replikaten bereitgestellt:
Verwalten von Schemaabweichungen: Sie können zulassen, dass Replikate Schemaänderungen unabhängig voneinander vornehmen. Geodatabase-Replikation wurde entwickelt, um die meisten Schemaabweichungen zwischen Replikaten zu ermöglichen, wobei die Datensynchronisierung in den meisten Fällen weiterhin funktioniert.
Wenn Sie eine Schemaänderung auf ein Replikat, jedoch nicht auf das andere anwenden, sollten Sie mit folgenden Schwierigkeiten rechnen:
- Bearbeitungen, die nicht synchronisiert werden: Bei der Datensynchronisierung werden nur Änderungen für Tabellen und Felder importiert, die beide Replikate gemeinsam haben. Wenn ein Bearbeitung an einem Feld vorgenommen wird, das sich nicht im relativen Replikat befindet, wird es beim Importieren der Änderungen nicht angewendet. Ein weiteres Beispiel ist der Fall, wenn ein geometrisches Netzwerk auf einem Replikat, jedoch nicht auf dem anderen angelegt wird. In diesem Fall wird die unverbundene Knotenklasse entfernt, weswegen Änderungen aus der relativen unverbundenen Knotenklasse nicht angewendet werden.
- Ungültige Werte: Änderungen, die Domänen, Subtypes, Konnektivitätsregeln und Beziehungsregeln verletzen, werden beim Synchronisieren von Änderungen angewendet. Mit den Validierungswerkzeugen auf dem Editor können die neu importierten Werte geprüft werden.
- Fehler bei der Datensynchronisierung: Dieser Fall kann eintreten, wenn Sie manuell eine Schemaänderung an beiden Replikaten vornehmen. Beispiel: Sie möchten ein Feld zu einer Tabelle hinzufügen. Stellen Sie in diesem Fall sicher, dass Sie immer genau die gleichen Schemaänderungen vornehmen. Wenn es einen Unterschied gibt (zum Beispiel, wenn ein Feld auf dem einen Replikat eine Zeichenfolge, auf dem anderen jedoch eine Ganzzahl ist), kommt es zu einem Fehler bei der Datensynchronisierung.
- Nicht unterstützte Änderungen: Einige Schemaänderungen können können dafür sorgen, dass die Synchronisierung fehlschlägt, es wird aber keine Warnung angezeigt, wenn Sie die Änderung vornehmen. Diese Änderungen können vom Geodatabase-Replikationssystem nicht erkannt werden. Sie enthalten Vorgänge auf Datenbankebene, wie das Ändern von Berechtigungen auf Tabellen in der Datenbank. Wenn Berechtigungen für replizierte Daten in schreibgeschützt geändert werden, kommt es zu Fehlern, wenn versucht wird, Änderungen aus dem relativen Replikat zu importieren.
Anwenden von Schemaänderungen replikatübergreifend: Beim Ändern des Schemas eines Replikats zur Anpassung an das Schema eines relativen Replikats handelt es sich um einen von der Datensynchronisierung vollständig getrennten Prozess. Zu diesem Zweck werden drei Werkzeuge bereitgestellt: "Replikatschema vergleichen", "Replikatschema importieren" und "Replikatschema exportieren". Die Werkzeuge sind in ArcMap auf der Werkzeugleiste "Verteilte Geodatabase", im Untermenü "Verteilte Geodatabase" im Kataloginhaltsverzeichnis und als Geoverarbeitungswerkzeug verfügbar.
Die Werkzeuge werden in einem zweistufigen Prozess verwendet, bei dem zuerst das Werkzeug "Replikatschema vergleichen" ausgeführt werden muss, um eine XML-Datei mit den Schemaänderungen zu generieren, und diese Änderungen anschließend mit dem Werkzeug "Replikatschema importieren" importiert werden. Wenn Sie in einer nicht verbundenen Umgebung arbeiten, müssen Sie zuerst das Werkzeug Replikatschema exportieren ausführen, um das Schema mit den Änderungen in eine XML-Datei zu exportieren. Diese Datei kann dann auf Medien wie CDs oder DVDs übertragen werden, um die Eingabe in das Werkzeug "Replikatschema vergleichen" zu ermöglichen.
Nachfolgend finden Sie eine Liste der Schemaänderungen und Informationen, ob diese angewendet werden können:
Hinzufügen | Ändern | Entfernen | |
Feld | Ja | Ja (Domänen) | Ja |
Domäne | Ja | Ja | Ja |
Tabelle/Feature-Class | Ja | Ja (Domänen, Felder hinzufügen/entfernen) | Ja |
Geometrisches Netzwerk | Nein | Nein | Ja |
Topologie | Nein | Nein | Ja |
Feature-Dataset | Nein | Nein | Ja |
Beziehungsklasse | Nein | Ja (Felder hinzufügen/entfernen, Domänen) | Ja |
Mit den oben erwähnten Werkzeugen kann keine Feature-Class oder Tabelle zu einem Replikat hinzugefügt werden. Stattdessen müssen Sie den ArcObjects-Code ausführen. Ein Beispiel für diesen Code anzeigen
Entfernen von Daten aus einem Replikat: Eine Liste der Datasets in jedem Replikat wird in einer Replikat-Geodatabase gespeichert. Wenn Sie eines dieser Datasets löschen, wird eine Warnung angezeigt. Wenn Sie mit dem Löschen fortfahren, wird das Dataset aus der Dataset-Liste des Replikats entfernt. Mit der ArcObjects-API können Sie Daten wieder zu einem Replikat hinzufügen. Beachten Sie außerdem Folgendes:
- Wenn Sie eine Tabelle oder Feature-Class entfernen und diese wieder zum Replikat hinzufügen möchten, müssen Sie dazu Code ausführen. Es ist nicht möglich, sie einfach neu zu erstellen.
- Wenn Sie ein geometrisches Netzwerk oder eine Topologie entfernen, können Sie dieses bzw. diese nicht wieder zum Replikat hinzufügen. Die Replikate werden nach wie vor synchronisiert, die Synchronisierung von Topologieausnahmen wird jedoch nicht unterstützt und Sie können auch keine Änderungen an der unverbundenen Knotenklasse synchronisieren.
- Es hat keine Auswirkungen, wenn ein Feature-Dataset entfernt und die Klassen wieder zum Replikat hinzugefügt werden.
- Sie können keine Beziehungsklassen entfernen und diese wieder zum Replikat hinzufügen.
Identifizieren von Schemaänderungen: Wenn Sie Schemaabweichungen genau überwachen möchten, können Sie die Werkzeuge zum Vergleichen von Replikat-Schemas verwenden, um die Änderungen zu identifizieren. Der Assistent "Replikatschema importieren" listet die Schemaabweichungen auf.
Empfehlungen
Im Allgemeinen sollten Schemaänderungen vermieden werden. Schemaänderungen können zu Inkonsistenzen zwischen Replikaten führen, und das zusätzlich notwendige Anwenden von Schemaänderungen kann Performance-Einbußen verursachen. Es gibt allerdings Fälle, in denen Schemaänderungen angewendet werden müssen.
Im Folgenden finden Sie Empfehlungen für das Arbeiten mit Schemaänderungen:
- System sperren: Stellen Sie sicher, dass die Personen, die das System verwenden, mit den entsprechenden Berechtigungen arbeiten. Möglicherweise müssen Anwendungen programmiert werden, die bestimmte Typen von ungeplanten Schemaänderungen verhindern, wie das Hinzufügen oder Entfernen einer Spalte.
- Regelmäßige Schemavergleiche anwenden: Nachdem die Replikation fehlertolerant ist, werden Systeme, die Synchronisierungen durchführen, höchstwahrscheinlich nicht durch Schemaänderungen unterbrochen. Es empfiehlt sich allerdings, regelmäßig einen Schemavergleich durchzuführen, um sicherzustellen, dass keine nicht geplanten Schemaänderungen angewendet wurden.
- Nicht synchronisieren, bis eine Wartungsaufgabe abgeschlossen wurde: Es ist manchmal notwendig, vorübergehende Schemaänderungen anzuwenden, um eine Wartungsaufgabe abzuschließen. Beispielsweise verlangen einige Organisationen, dass ein geometrisches Netzwerk entfernt, unversioniert und anschließend neu erstellt und erneut versioniert wird. Die Datensynchronisierung funktioniert erst wieder, wenn das Netzwerk neu versioniert wurde.
- Systemweite Schemaänderungen anwenden: Wenn Schemaänderungen angewendet werden müssen, tun Sie dies systemweit und auf organisierte Art und Weise. Gehen Sie beispielsweise von oben nach unten vor, wobei die Änderungen am Stammreplikat angewendet und nach unten weitergegeben werden.