HOW TO

Überprüfung von Verzweigungs-Wiederherstellungsversionen nach dem Aktualisieren einer Enterprise-Geodatabase

Last Published: November 1, 2024

Zusammenfassung

Es wurden Workflows identifiziert, die zu Inkonsistenzen in den Systemtabellen der Verzweigungsversionierung führen können. Wenn ein solches Problem auftritt, können Features mit fehlenden Metadaten für die Verzweigungsversionierung zu Dateninkonsistenzen führen, wenn die Version abgeglichen, zurückgeschrieben und/oder gelöscht wird.

Das Problem resultiert daraus, wie die Metadaten für die Verzweigungsversionierung beim Speichern von Änderungen, Abgleichen und Zurückschreiben verwaltet werden. Während dieser Operationen können Metadaten für die Verzweigungsversionierung aus der Geodatabase entfernt werden. Wenn die Metadaten für die Verzweigungsversion fälschlicherweise entfernt werden, können Features möglicherweise nicht korrekt an zukünftigen Vorgängen wie dem Abgleichen, Zurückschreiben und Löschen von Versionen teilnehmen, was zu inkonsistenten Daten führt. Dieses Problem trat in Wettlaufsituationen auf, bei denen konkurrierende Anforderungen dazu führten, dass Metadaten der Verzweigungsversionierung für gültige Features fälschlicherweise entfernt wurden.

Operationen, die bei falschen Metadaten der Verzweigungsversionierung ausgeführt werden, könnten zu folgenden Situationen führen:

  • Nach Verzweigung versionierte Daten referenzieren eine inzwischen gelöschte Version und
  • nach Verzweigung versionierte Daten referenzieren einen Zeitpunkt vor dem Zeitpunkt des gemeinsamen Vorgängers.

Diese Systemtabelleninkonsistenzen werden in den folgenden Versionen verhindert und korrigiert:

Beim Aktualisieren einer Enterprise-Geodatabase wird zusätzlich auf etwaige Dateninkonsistenzen in Bezug auf nach Verzweigung versionierte Daten geprüft. Inkonsistenzen werden während der Aktualisierung behoben, indem entweder neue Versionen mit reparierten Daten erstellt oder vorhandene Versionen aktualisiert werden. Diese Versionen sollten überprüft werden, um zu ermitteln, ob einige der Daten in die Default-Version zurückgeschrieben sollten.

In diesem Artikel wird der Workflow zur Überprüfung von Inkonsistenzen, die nach einer Aktualisierung der Geodatabase behoben wurden, beschrieben. Wie bereits erwähnt, können die Daten bei der Aktualisierung auf zwei Arten repariert werden: durch Erstellen einer neuen Wiederherstellungsversion oder durch Aktualisieren einer vorhandenen Version. Für diesen Artikel werden diese Versionen als neue Wiederherstellungsversionen bzw. vorhandene Versionen mit wiederhergestellten Zeilen bezeichnet. Die im Artikel überprüfte Geodatabase verfügt über zwei Versionen, die abgerufen und überprüft werden. Die Namen der Versionen lauten:

  • RECOVERY_VERSION_BR_1 (neue Wiederherstellungsversion)
  • EXISTING_VERSION (vorhandene Version mit wiederhergestellten Zeilen)

Der beschriebene Workflow enthält Informationen dazu, wo die Informationen zu diesen Versionen gesammelt werden können, wie eine Verbindung zu diesen Versionen hergestellt wird und welche Aktionen für diese Versionen in ArcGIS Pro erforderlich sein können.

Hier der Workflow im Überblick:

  1. Das Werkzeug "Geodatabase aktualisieren" oder die Funktion "arcpy.UpgradeGDB_management" wurde verwendet, und es wurde eine Warnung ausgegeben.
WARNING 003929: During the upgrade recovery versions (<value>) were created that require further review. Review <value> for more detail.
  1. Überprüfen Sie die Datei "sde_setup.log" auf eine Liste der Versionen.
  2. Bereiten Sie den Zugriff auf die Versionen vor:
    1. Aktualisieren Sie die Tabelle der internen Systemverzweigungen, um einen Service-Namen aufzunehmen.
    2. Stellen Sie sicher, dass Feature-Services in Ihrem ArcGIS Enterprise-Portal mit den Datasets vorhanden sind, die Änderungen für die Versionen enthalten.
  3. Verwenden Sie die Ansicht "Unterschiede".
  4. Führen Sie die Vorgänge zum Bearbeiten/Abgleichen/Zurückschreiben aus.
  5. Löschen Sie Versionen.

Vorgehensweise

Überprüfen der Ergebnisse des Werkzeugs "Geodatabase aktualisieren" und der Datei "sde_setup.log"

Wenn während des Aktualisierungsvorgangs Inkonsistenzen erkannt werden, gibt das Werkzeug "Geodatabase aktualisieren" eine Warnung zurück. Darin wird angegeben, wie viele Versionen wiederhergestellt wurden und wo die Datei "sde_setup.log" gespeichert ist, wie in der folgenden Abbildung gezeigt. Meldungen zu Geodatabase-Aktualisierungen werden in der Datei "sde_setup.log" gespeichert. Diese wird in dem Verzeichnis erstellt, das für die Variable "%TEMP%" auf dem Computer angegeben wurde, auf dem das Werkzeug ausgeführt wird. Die Anzahl der Versionen bezieht sich sowohl auf neue Wiederherstellungsversionen als auch auf vorhandene Versionen mit wiederhergestellten Zeilen. Die Datei "sde_setup.log" enthält zusätzliche Informationen zu den reparierten Versionen.

000032501a.png

Note:
If using Python to upgrade the geodatabase, use the following example to ensure that warnings are properly returned to report recovery versions. If no warning is returned, no data inconsistencies were found in the geodatabase and no further action is required.
import arcpy
 
arcpy.UpgradeGDB_management(
    input_workspace=r"C:\temp\sysadmin_connection.sde",
    input_prerequisite_check="PREREQUISITE_CHECK",
    input_upgradegdb_check="UPGRADE"
    )
   
warnings = arcpy.GetMessages(1)
errors = arcpy.GetMessages(2)
 
if "WARNING 003929" in warnings:
    print(warnings)
elif "Recovery versions" in warnings:
    recovery_versions = warnings[warnings.find("Recovery versions"):warnings.find(")") + 1]
    
    for item in warnings.split("\n"):
        if "sde_setup.log" in item:
            logfile_loc = item.strip()
    
    print("--------------------------------------------------------------------------------------------------")
    print(f"WARNING 003929: During the upgrade {recovery_versions} were created that require further review.")
    print(f"Review {logfile_loc} for more detail.")
    print("--------------------------------------------------------------------------------------------------")
if errors:
  print(errors)

Falls erforderlich, laden Sie die Beispieldatei sde_setup_howto.log in einen Texteditor herunter, und öffnen Sie sie. Die Abschnitte dieser Datei werden in den folgenden Schritten referenziert.

  1. Öffnen Sie die Datei sde_setup.log auf dem Computer.
  2. Überprüfen Sie die Datei "sde_setup.log" auf neue Wiederherstellungsversionen und vorhandene Versionen mit wiederhergestellten Zeilen:
  3. Durchsuchen Sie die Datei "sde_setup.log-Datei" nach dem Abschnitt Created recovery version(s).
    • In der Datei "sde_setup.log" sind die neu erstellten Versionen mit der Namenskonvention "sde.RECOVERY_VERSION_BR_<branch_id>" aufgeführt. Diese werden auch als neue Wiederherstellungsversionen bezeichnet. Dies ist im folgenden Abschnitt der Protokolldatei zu sehen:
[08:51:34.091] ==================================================================
[08:51:34.091] Begin recovery of branch versioned data associated with a missing branch...
[08:51:37.302] Created recovery version(s):
[08:51:37.302] sde.RECOVERY_VERSION_BR_1 with edits to:
[08:51:37.302]     - CREATOR1.POINT
[08:51:37.302]     - CREATOR1.LINE
[08:51:37.302]     - CREATOR1.POLYGON
[08:51:37.302] Completed recovery of branch versioned data associated with a missing branch.
[08:51:37.302] An administrator must update the service_name for the above versions in the sde.SDE_branches table in order for users to connect and review.
[08:51:37.303] ==================================================================
  1. Beachten Sie die Datasets mit wiederhergestellten Daten in den jeweiligen Versionen. Änderungen in diesen Versionen werden in den letzten Schritten dieses Artikels behandelt.
  2. Durchsuchen Sie die Datei "sde_setup.log" nach dem Abschnitt Recovered rows in version(s). Dies ist im folgenden Abschnitt zu sehen:
[08:51:37.304] Begin recovery of branch versioned data associated with an invalid common ancestor moment...
[08:51:37.622] Recovered rows in version(s):
[08:51:37.622] ADMIN.EXISTING_VERSION (service: Post_DataLoss) with edits to:
[08:51:37.622]     - CREATOR1.POINT
                           Object ID(s) : {46,436}
[08:51:37.622]     - CREATOR1.POLYGON
                           Object ID(s) : {462}
[08:51:37.622] Completed recovery of branch versioned data associated with an invalid common ancestor moment.
[08:51:37.622] A portal user must connect and review the above version(s).
  • In der Protokolldatei "sde_setup" werden die vorhandenen Versionen aufgeführt, die aktualisiert wurden. Diese werden auch als vorhandene Versionen mit wiederhergestellten Zeilen bezeichnet.
  • Beachten Sie die Objekt-ID(s) der Datasets mit wiederhergestellten Daten in den jeweiligen Versionen. Diese spezifischen Objekt-IDs werden in späteren Schritten dieses Artikels behandelt.

Vorbereiten von Wiederherstellungsversionen

Es sind einige Schritte erforderlich, bevor die Wiederherstellungsversionen überprüft werden können. Im folgenden Abschnitt wird der Prozess zur Vorbereitung sowohl der neuen Wiederherstellungsversionen als auch der vorhandenen Versionen mit wiederhergestellten Zeilen für den Zugriff und die Überprüfung beschrieben.

Gehen Sie folgendermaßen vor, um jede neue Wiederherstellungsversion mit der Namenskonvention "RECOVERY_VERSION_BR_<branch_id>" vorzubereiten:

  1. Überprüfen Sie die Datei "sde_setup.log", und untersuchen Sie die Liste der Datasets für die entsprechende Version.
  2. Stellen Sie sicher, dass in Ihrem ArcGIS Enterprise-Portal ein Service mit den entsprechenden in der Datei "sde_setup.log" aufgeführten Datasets vorhanden ist.
Note:
If a service does not exist in your portal with these datasets referenced, a new service must be published. Add these distinct datasets to a new map as the dataset owner, and publish a web feature layer with the version management capability enabled (Share branch versioned data).
  1. Aktualisieren Sie die Systemtabelle "SDE_branches" (oder "branches") mit dem entsprechenden Service-Namen, der im vorherigen Schritt für jede der RECOVERY_VERSION_BR_<branch_id>-Versionen mit Structured Query Language (SQL) identifiziert wurde, in einer geeigneten Datenbankmanagement-Softwarelösung.
    Verwenden Sie das folgende Beispiel, und ersetzen Sie die Ergebnisse aus der Datei "sde_setup.log":
UPDATE sde.sde_branches
SET service_name = 'my_service_name'
WHERE name = 'RECOVERY_VERSION_BR_1';
  1. Gehen Sie folgendermaßen vor, um jede vorhandene Version mit wiederhergestellten Zeilen vorzubereiten:
    1. Überprüfen Sie die Datei "sde_setup.log", und untersuchen Sie (Service : <service_name>) für die entsprechende Version.
    2. Stellen Sie sicher, dass der Service nach wie vor in Ihrem ArcGIS Enterprise-Portal mit den entsprechenden in der Datei "sde_setup.log" aufgeführten Datasets vorhanden ist.
Note:
If a service does not exist in your portal with these datasets referenced, a new service must be published. Add these distinct datasets to a new map as the dataset owner, and publish a web feature layer with the version management capability enabled (Share branch versioned data), using the same service name.

Zugreifen auf und Überprüfen von Wiederherstellungsversionen

Die Versionen werden nun für die Verwendung zur Prüfung der reparierten Daten vorbereitet.

  1. Fügen Sie einer neuen Karte in ArcGIS Pro einen Web-Feature-Layer aus den Services hinzu, die neue Wiederherstellungsversionen und/oder vorhandene Versionen mit wiederhergestellten Zeilen enthalten.
  2. Wechseln Sie zu der Version, und öffnen Sie die in der nächsten Abbildung gezeigte Ansicht Unterschiede:
    • Wenn die verbundene Version eine neue Wiederherstellungsversion ist, sind alle Unterschiede reparierte Änderungen und müssen wie in den nächsten Schritten dieses Artikels (Schritte 3 und 4) angegeben überprüft werden.
    • Wenn die verbundene Version eine vorhandene Version mit wiederhergestellten Zeilen ist, kann sie Unterschiede bei der Referenzierung von Objekt-IDs aus vorhandenen Änderungen sowie Unterschiede bei der Referenzierung der Objekt-IDs aus der Datei "sde_setup.log", die während der Aktualisierung wiederhergestellt wurden, enthalten. Obwohl alle Unterschiede überprüft werden sollten, müssen diejenigen Unterschiede, die während der Aktualisierung wiederhergestellt wurden, wie in den nächsten Schritten in diesem Artikel (Schritte 3 und 4) beschrieben überprüft werden.

000032501d.png

Note:
If a new recovery version only has edits to dataset system tables, for example: only Utility Network system tables, the Differences view may not display changes; therefore, the version can be deleted.
  1. Überprüfen und untersuchen Sie die Änderungen.
    1. Überprüfen Sie Benutzerattribute und vom System verwaltete Attribute, z. B. Editor-Tracking-Attribute.
    2. Überprüfen Sie "Änderungen anzeigen" auf Unterschiede in der Shape-Spalte.
  2. Entscheiden Sie basierend auf der Überprüfung in Schritt 3, ob die Änderungen beibehalten werden sollen.
    • Um die Änderungen beizubehalten, gleichen Sie die versionierte Version mit der Default-Version ab, und schreiben Sie sie zurück.
      • Wenn nur eine Teilmenge der Änderungen gewünscht ist, nehmen Sie die entsprechenden Änderungen vor dem Abgleichen/Zurückschreiben vor.
    • Gehen Sie folgendermaßen vor, um die Änderungen zu verwerfen:
      • Bei neuen Wiederherstellungsversionen kann die Version gelöscht werden.
      • Bei vorhandenen Versionen mit wiederhergestellten Zeilen bearbeiten Sie die verknüpften Objekt-IDs so, dass sie die gleichen Attribute und das gleiche Shape wie die Default-Repräsentation aufweisen. Andernfalls kann die Version gelöscht und die vor der Reparatur durchgeführte Arbeit in einer anderen Version erneut ausgeführt werden.

Artikel-ID: 000032501

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln