Das multiple Spatial-Database-Modell für SQL Server
Mit dem multiplen Spatial-Database-Modell einer Geodatabase in SQL Server wurden ArcSDE-Geodatabases in SQL Server anfänglich implementiert. Obwohl dieses Modell immer noch unterstützt wird, empfiehlt Esri, das einzelne Spatial-Database-Modell zu verwenden, in dem alle Geodatabase-Tabellen in einer SQL Server-Datenbank gespeichert werden.
Um räumliche Daten in einer ArcSDE-Geodatabase speichern zu können, muss eine Reihe von Tabellen, gespeicherten Prozeduren, Sichten und Funktionen (zusammen als ArcSDE-Repository bezeichnet) vorhanden sein. Die benutzerdefinierten Daten und das zugehörige ArcSDE-Repository bilden zusammen eine Geodatabase.
Vor ArcSDE 9 wurden Geodatabases in SQL Server immer mit dem multiplen Spatial-Database-Modell gespeichert. Für ArcSDE 9 und höher sollten Sie das einzelne Spatial-Database-Modell verwenden. Da das multiple Spatial-Database-Modell weiterhin unterstützt wird (auch wenn es nicht empfohlen wird), finden Sie im Folgenden eine Beschreibung dieses Modells.
Im multiplen Spatial-Database-Modell wird das ArcSDE-Repository in einer Datenbank mit dem Namen "sde" gespeichert. Benutzerdefinierte Daten, wie Feature-Classes, Raster und nicht räumliche Tabellen, befinden sich in anderen Datenbanken. Im ArcSDE-Repository in der sde-Datenbank werden Verweise auf den Speicherort aller benutzerdefinierten Daten für eine bestimmte ArcSDE-Instanz gespeichert. Die sde-Datenbank und andere verwandte Datenbanken bilden eine Geodatabase. Dieses Datenspeichermodell wird als multiples Spatial-Database-Modell bezeichnet, da eine ArcSDE-Geodatabase aus mehreren SQL Server-Datenbanken besteht.
Das einzelne Spatial-Database-Modell, das im vorherigen Abschnitt vorgestellt wurde, wird zur Speicherung Ihrer Geodatabases empfohlen. Wenn Sie jedoch das multiple Spatial-Database-Modell verwenden möchten, beachten Sie folgende Regeln und Richtlinien für die Verwendung und Erstellung.
Regeln für das Verwenden einer multiplen Spatial-Database-Instanz
- Die Datenbank, in der die ArcSDE-Metadaten gespeichert sind, muss "sde" heißen. Zusätzliche Datenbanken, in denen benutzerdefinierte Daten gespeichert sind, können einen beliebigen Namen haben, der den SQL Server-Regeln für Kennzeichner entspricht und nicht mit einer Zahl beginnt.
- In jeder SQL Server-Instanz kann sich nur eine multiple Spatial-Database-Instanz befinden. Die Namen von SQL Server-Datenbanken müssen eindeutig sein und unterstützen daher nur eine Datenbank mit dem Namen "sde". Wenn Sie mehrere Geodatabases in der gleichen SQL Server-Instanz speichern möchten, können Sie eine multiple Spatial-Database-Instanz und mehrere einzelne Spatial-Database-Instanzen haben.
- Bei multiplen Spatial-Database-Instanzen muss sich das ArcSDE-Repository im sde-Schema befinden. Diese Instanzen unterstützen keine ArcSDE-Repositorys in einem dbo-Schema. Eine Erläuterung der zwei Schematypen, die für das ArcSDE-Geodatabase-Repository verwendet werden können, finden Sie unter Vergleich von Geodatabase-Besitzern in SQL Server.
- In einer ArcSDE-Geodatabase muss der Besitzer von Systemtabellen der Benutzer "sde" sein. (Stellen Sie in SQL Server 2005 oder neueren Versionen sicher, dass das Standardschema des Benutzers "sde" den gleichen Namen – sde – aufweist.)
- Dem Benutzer "sde" muss Zugriff auf jede Datenbank gewährt werden, in der benutzerdefinierte ArcSDE-Daten gespeichert werden.
- Alle Benutzer, die eine Verbindung zu dieser Geodatabase-Instanz herstellen, müssen der sde-Datenbank hinzugefügt werden, selbst wenn keine benutzerdefinierten Daten in der sde-Datenbank gespeichert werden. Wenn Benutzer Daten in der sde-Datenbank speichern, muss in der sde-Datenbank ein neues Schema für diese Benutzer erstellt werden. Dabei müssen der Benutzer- und der Schemaname übereinstimmen.
- Wenn Sie eine Verbindung mit einer der Datenbanken herstellen, haben Sie Zugriff auf alle Feature-Classes in jeder der Datenbanken, auf die Ihnen Zugriff gewährt wurde, falls der Parameter CROSS_DB_QUERY_FILTER in der Tabelle "SDE_dbtune" auf 0 festgelegt wurde. Sie können jedoch nur auf nicht räumliche Tabellen zugreifen, die sich in der Datenbank befinden, die Sie in der Verbindung zur Spatial-Database festgelegt haben, unabhängig davon, wie der Parameter CROSS_DB_QUERY_FILTER eingestellt ist.
- Datenbankübergreifende Abfragen sind erlaubt und ArcSDE-Sichten können auf Daten von mehreren Datenbanken verweisen, falls der Parameter CROSS_DB_QUERY_FILTER in der Tabelle "SDE_dbtune" auf 0 festgelegt wurde.
- Die Anweisungen SELECT, INSERT, UPDATE und DELETE (auch als Data Manipulation Language (DML) oder Datenbearbeitungssprache bekannt) können datenbankübergreifend verwendet werden. Wenn Sie z. B. eine Verbindung zur Datenbank "public_works" herstellen, können Sie Daten aus der Planungsdatenbank anzeigen und bearbeiten. Sie können jedoch keine CREATE-, ALTER- und DROP (DDL)-Anweisungen über Datenbankgrenzen hinweg ausführen.
- Wenn Sie eine Verbindung mit einer multiplen Spatial-Database-Geodatabase herstellen, die eine direkte Verbindung verwendet, müssen Sie eine Datenbank angeben, mit der Sie eine Verbindung herstellen. Wenn Sie einen ArcSDE-Dienst verwenden, um eine Verbindung herzustellen, wird die sde-Datenbank in der Serverregistrierung als Standarddatenbank für die Verbindung festgelegt; daher müssen Sie keinen Datenbanknamen angeben, falls der Parameter CROSS_DB_QUERY_FILTER in der Tabelle "SDE_dbtune" auf 0 festgelegt wurde.
- Die sde-Datenbank und andere verwandte Datenbanken bilden eine Geodatabase. Ein Satz mit ArcSDE-Geodatabase-Systemtabellen enthält alle benutzerdefinierten Daten, auf die verwiesen wird. Daher müssen sich Sicherungs- und Wiederherstellungsvorgänge auf die gesamte Geodatabase beziehen. Wenn Sie nicht alle Datenbanken gleichzeitig sichern und wiederherstellen, kann es zu einer Beschädigung der Geodatabase kommen.
- Die sde- und andere verwandte Datenbanken müssen die gleiche Sortierung verwenden.
- Alle Spatial-Databases, die eine ArcSDE-XML-Spalte oder eine indizierte native SQL Server-XML-Spalte enthalten, müssen einen eigenen Volltextkatalog haben.
- Eine Liste der erforderlichen Berechtigungen für den Benutzer "sde" und andere Benutzer finden Sie unter Benutzerberechtigungen für Geodatabases in SQL Server.
Richtlinien für das Erstellen einer multiplen Spatial-Database-Instanz
Im Folgenden werden einige Richtlinien für das Erstellen einer Datenbank zum Speichern räumlicher Daten genannt.
- Verwenden Sie den ArcSDE Post Installation Wizard zum Erstellen der Datenbank, in der das ArcSDE-Repository gespeichert wird. Der Assistent erstellt die sde-Datenbank, gewährt dem sde-Konto Zugriff darauf und installiert die ArcSDE-Systemtabellen. Stellen Sie sicher, dass Sie diese Datenbank "sde" nennen.
- Legen Sie für die Datendateien eine hohe anfängliche Größe fest. Erhöhen Sie mit SQL Server Management Studio den Wert "autogrowth" der Datenbank und des Transaktionsprotokolls. Erstellen Sie zu diesem Zeitpunkt eine erste Sicherung.
- Um weitere Datenbanken zum Speichern benutzerdefinierter Daten zu erstellen, verwenden Sie SQL Server-Werkzeuge wie Management Studio. Der Benutzer "sde" muss jeder zusätzlichen Datenbank, die Sie erstellen, hinzugefügt werden. Dieser Benutzer benötigt keine besonderen Berechtigungen für diese Datenbanken. Die Berechtigungen werden dem Benutzer "sde" automatisch zugewiesen, wenn Datasets erstellt oder als versioniert registriert werden.
Migrieren vom multiplen zum einzelnen Spatial-Database-Modell
Wie zuvor erwähnt, wird für Ihre Geodatabases das einzelne Datenbankmodell empfohlen. Wenn bereits eine Geodatabase unter Verwendung des multiplen Datenbankmodells gespeichert wurde und Sie auf das einzelne Datenbankmodell umsteigen möchten, müssen Sie folgende Schritte ausführen:
- Erstellen Sie eine Datenbanksicherung aller ArcSDE-Datenbanken.
- Erstellen Sie mit dem Post Installation Wizard eine neue Geodatabase des einzelnen Datenbankmodells. Sie müssen den Post Installation Wizard für die Version ausführen, die Sie verwenden. Wenn Sie z. B. das multiple Datenbankmodell aus ArcSDE 9.1 verwenden und auf das einzelne Datenbankmodell umsteigen möchten, müssen Sie den Post Installation Wizard von Version 9.1 zum Erstellen der einzelnen Geodatabase ausführen. Führen Sie diese Schritte auch innerhalb der gleichen SQL Server-Instanz aus.Hinweis:
Wenn Sie zurzeit ArcSDE 8.3 verwenden, aktualisieren Sie zunächst mindestens auf ArcSDE 9, und migrieren Sie dann auf das einzelne Datenbankmodell.
- Verwenden Sie die ArcCatalog-Schnittstelle zum Übertragen von Daten in die neue Geodatabase des einzelnen Datenbankmodells.
Der Post Installation Wizard erstellt eine neue Datenbank in SQL Server. Erstellen Sie daher einen Dienst oder eine direkte Verbindung, mit der auf die neue Geodatabase zugegriffen werden kann. Starten Sie anschließend ArcMap, öffnen Sie das Katalogfenster und stellen Sie eine Verbindung zum alten multiplen und zum neuen einzelnen Datenbankmodell her. Übertragen Sie als Nächstes die Daten von einer Geodatabases zur anderen mithilfe von Kopieren/Einfügen, Importieren, Exportieren oder verschiedenen anderen Methoden für die Datenmigration.
Hinweis:Der Benutzer, der bei der neuen Geodatabase angemeldet wird, wenn Daten dahin übertragen werden, ist der Besitzer der Daten. Wenn Sie also den gleichen Datenbesitz beibehalten möchten, müssen einzelne Benutzer ihre eigene Daten übertragen.