Migrieren von Geometrie von einem Speichertyp in einen anderen mithilfe von ArcSDE-Befehlen
Sie können den für eine Feature-Class in einer Oracle- oder Microsoft SQL Server-Geodatabase verwendeten Geometriespeichertyp mithilfe der Operation "migrate" des Befehls "sdelayer" ändern. Durch die Operation "migrate" wird der Geometriespeichertyp der Feature-Class in den Geometriespeichertyp im DBTUNE-Konfigurationsschlüsselwort geändert, das Sie mit der Option –k angeben.
Es ist wichtig, dass das Schlüsselwort korrekt erstellt wird und den richtigen Parameter und Wert enthält. Wenn Sie ein Schlüsselwort mit falschen oder fehlenden Informationen angeben, werden die Informationen aus dem Schlüsselwort DEFAULTS gelesen. Aus diesem Grund empfiehlt Esri, dass Sie ein benutzerdefiniertes Schlüsselwort speziell für die Migration erstellen. Achten Sie darauf, dass das Schlüsselwort den Parameter und den Wert für den Speichertyp enthält, in den Sie die Daten migrieren, sowie einen UI_TEXT-Parameter. Der Parameter UI_TEXT macht das Schlüsselwort zur Verwendung durch ArcGIS-Clients verfügbar.
Der Befehl "sdelayer" mit der Operation "migrate" hat folgende Syntax:
sdelayer –o migrate –l <table,column> –k <config_keyword> [–i {<service> | <direct_connect>}] [–s <server>] -D [<database_name>] –u <user_name> [–p <user_password>] [–N] [–q]
Verwenden Sie die Optionen wie folgt:
Option |
Beschreibung |
---|---|
–D | Mit dieser Option geben Sie den Namen der Datenbank an. Bei Oracle-Datenbanken wird diese Option nicht verwendet. |
–o |
Diese Option gibt die ausgeführte Operation an, in diesem Fall "migrate". |
–l |
Geben Sie mit dieser Option den Namen der Business-Tabelle der Feature-Class und den Namen der Shape-Spalte an, für die Sie den Geometrietyp migrieren. Die beiden Namen werden durch ein Komma (ohne Leerzeichen) getrennt. |
–k |
Diese Option legt das DBTUNE-Konfigurationsschlüsselwort für den Geometriespeichertyp fest, zu dem Sie die Feature-Class migrieren. Das Schlüsselwort muss einen GEOMETRY_STORAGE-Parameter enthalten, der in Oracle-Datenbanken auf SDELOB oder ST_GEOMETRY bzw. in SQL Server-Datenbanken auf GEOMETRY oder GEOGRAPHY festgelegt ist. |
–i |
Geben Sie entweder die Syntax der Direktverbindung oder die Portnummer bzw. den Namen des ArcSDE-Diensts an, über den Sie eine Verbindung mit der Geodatabase herstellen. Die Syntax der Direktverbindung finden Sie unter Direkte Verbindungen von ArcSDE-Befehlen zu einer Oracle-Geodatabase oder Direkte Verbindungen von ArcSDE-Befehlen zu einer SQL Server-Geodatabase. |
–s |
Geben Sie den Namen des Servers an, auf dem sich die Datenbank befindet. |
–u |
Geben Sie den Benutzernamen des Feature-Class-Besitzers an, um sich an der Datenbank anzumelden. |
–p |
Geben Sie das Kennwort des Benutzers an. |
–N |
Wählen Sie diese Option aus, wenn die Eingabeaufforderung zum Bestätigen der Operation nicht angezeigt werden soll. |
–q |
Geben Sie diese Option an, wenn Sie alle Titel und Warnungen unterdrücken möchten. |
Wenn Sie den Befehl "sdelayer" mit der Operation "migrate" ausführen und eine der folgenden Bedingungen zutrifft, wird eine Fehlermeldung angezeigt:
- Die Daten sind mit grundlegender Genauigkeit gespeichert.
- Der mit der Option –u angegebene Benutzer ist nicht der Tabellenbesitzer.
- Der aktuelle Speichertyp der Feature-Class und das angegebene DBTUNE-Schlüsselwort sind identisch. (Für die Tabelle wird bereits der Speichertyp verwendet, den Sie mit dem Schlüsselwort angegeben haben, sodass keine Migration erforderlich ist.)
- Die Business-Tabelle enthält kein ObjectID-Feld.
- Sie versuchen, die Operation "migrate" in einer ArcSDE-Geodatabase vor Version 9.2 auszuführen.
- Sie versuchen, die Operation "migrate" in einem anderen DBMS als Oracle oder SQL Server auszuführen.
- Sie versuchen, eine Feature-Class mit dem Typ "SDO_Geometry" zu migrieren, die 3D-Features enthält. Da Oracle Spatial das Generieren von Well-Known Binary oder Well-Known Text aus 3D-Geometrie von Oracle Spatial nicht unterstützt, können diese Daten mit dem Befehl "sdelayer" nicht migriert werden.
Wie im ersten Aufzählungspunkt angegeben, müssen Sie zunächst die Feature-Class von grundlegender zu hoher Genauigkeit migrieren, bevor Sie den Geometriespeichertyp migrieren. Verwenden Sie hierzu entweder den Befehl "sdelayer" in Verbindung mit der Operation "alter" oder das Geoverarbeitungswerkzeug Raumbezug aktualisieren.
Wenn Sie Datenspeichertypen in einer Oracle-Datenbank mit der Operation "migrate" migrieren, wird in der Datenbank, in die die Daten kopiert werden, ein neues Segment erstellt. Nach Abschluss der Migration verweisen die Metadaten auf das neue Segment, und das alte Segment wird gelöscht. Das bedeutet, dass während der Migration kurzfristig zwei Kopien der Daten vorhanden sind. In der Datenbank muss daher genügend Speicherplatz für die Speicherung von zwei Kopien vorhanden sein.
-
Erstellen Sie eine Sicherung der zu migrierenden Daten.
Durch das Erstellen einer Sicherungskopie der zu migrierenden Daten stellen Sie sicher, dass die Originaldaten verfügbar sind, sollte die Migration aus irgendeinem Grund fehlschlagen.
- Öffnen Sie eine DOS-Eingabeaufforderung (Windows) oder eine Shell (UNIX oder Linux).
-
Führen Sie den Befehl "sdelayer" mit der Operation "migrate" aus. Beispiel:
sdelayer –o migrate –l colpts,geometry –k ST_GEOMETRY –i 68910 –s mainserver –u bjar –p mine.all.min
Stellen Sie sicher, dass Sie ein Konfigurationsschlüsselwort angeben, das den GEOMETRY_STORAGE-Wert enthält, zu dem Sie die Daten konvertieren möchten.