Enterprise-Geodatabases verwenden Protokolldateitabellen, um eine Liste ausgewählter Datensätze zu führen. Datensätze werden in den folgenden Situationen zur späteren Verwendung von der Anwendung in Protokolldateitabellen geschrieben:
- Sie (oder von Ihnen verwendete Werkzeuge bzw. Prozesse) erstellen einen Auswahlsatz mit einer bestimmten Größe – mehr als 100 Datensätze in ArcMap, mehr als 1.000 Datensätze in ArcGIS Pro, mehr als 1.000 Datensätze, wenn ObjectIDs von einem Feature-Service angefordert werden.
- Sie nehmen einen Abgleich vor oder schreiben in eine versionierte Geodatabase zurück.
- Eine Client-Anwendung checkt Daten für die entkoppelte Bearbeitung aus.
In den Protokolldateitabellen werden die IDs der ausgewählten Features gespeichert, damit sie nochmals angezeigt werden können. Dadurch können Daten schneller analysiert und verarbeitet werden.
Es gibt drei Protokolldateioptionen: gemeinsame, sitzungsbasierte und Gruppen sitzungsbasierter Protokolldateien. Jede Option wird in diesem Thema in einem eigenen Abschnitt erläutert.
Geodatabases in Oracle verwenden standardmäßig gemeinsame Protokolldateitabellen. Wenn ein verbindender Benutzer über keine ausreichenden Berechtigungen zum Erstellen von Tabellen oder Sequenzen verfügt, wird die Protokolldateitabelle als globale temporäre Tabelle im Besitz des Geodatabase-Administrators erstellt. Dies ist bei den meisten Bereitstellungen ausreichend, aber Sie können mit dem Geoverarbeitungswerkzeug Geodatabase-Protokolldateitabellen konfigurieren bei Bedarf die Einstellungen für Protokolldateitabellen ändern.
Gemeinsame Protokolldateien
Gemeinsame Protokolldateien können von allen Sitzungen gemeinsam verwendet werden, die als derselbe Benutzer verbunden sind. Wenn mehrere Benutzer eine Verbindung über dasselbe Benutzerkonto herstellen, werden von all diesen Sitzungen Datensätze in dieselbe Protokolldateitabelle eingefügt und daraus gelöscht.
Wann werden gemeinsame Protokolldateien verwendet?
Verwenden Sie gemeinsame Protokolldateien, wenn jeder Client und Benutzer eine Verbindung mit einem anderen Datenbankbenutzerkonto herstellt.
Wann ist die Verwendung von gemeinsamen Protokolldateien nicht empfehlenswert?
In einigen Fällen ist die Verwendung gemeinsamer Protokolldateien nicht empfehlenswert, z. B., wenn Sie einen Feature-Service veröffentlichen, wodurch mehrere Verbindungen mit denselben Anmeldedaten hergestellt werden. Wenn viele Ihrer Benutzer Attributabfragen für denselben Feature-Service ausführen, kann dies zu Konflikten und längeren Wartezeiten für die SDE_LOGFILE_DATA-Tabelle führen. In diesen Fällen kann es sinnvoll sein, sitzungsbasierte Protokolldateien zu verwenden.
Für gemeinsame Protokolldateien erstellte Tabellen
Für diese Option werden die Protokolldateitabellen "SDE_LOGFILES" und "SDE_LOGFILE_DATA" verwendet. Diese werden im Schema des verbindenden Benutzers erstellt, wenn dieser das erste Mal eine Auswahl trifft, die den Auswahlschwellenwert überschreitet.
In "SDE_LOGFILES" werden Informationen über jeden erstellten Auswahlsatz (Protokolldatei) gespeichert. Die Spalten "logfile_name" und "logfile_id" in dieser Tabelle identifizieren eindeutig den Namen der Protokolldatei. Die Spalte "logfile_id" verknüpft außerdem den Protokolldatei-Datensatz mit der Tabelle "SDE_LOGFILE_DATA". Die Tabelle "SDE_LOGFILE_DATA" enthält die "logfile_data_id" sowie die Feature-Kennung für die ausgewählten Datensätze.
Alle Datensätze werden sofort gelöscht, wenn eine Auswahl gelöscht wird, damit die Tabelle "SDE_LOGFILE_DATA" nicht zu groß wird. Die Tabelle "SDE_LOGFILES" wird abgeschnitten, wenn die Sitzung beendet wird. Sowohl die Tabelle "SDE_LOGFILE_DATA" als auch die Tabelle "SDE_LOGFILES" verbleiben im Benutzerschema.
Erforderliche Berechtigungen für gemeinsame Protokolldateien
Da der Besitzer der Protokolldateitabellen der Benutzer ist, der die Verbindung herstellt, müssen Benutzern Berechtigungen erteilt werden, mit denen sie die erforderlichen Datenobjekte (z. B. Tabellen) erstellen können. Dies ist auch dann erforderlich, wenn der Benutzer nur schreibgeschützten Zugriff auf die Geodatabase hat. Ohne diese Berechtigungen erhalten Benutzer eine Fehlermeldung, wenn sie zum ersten Mal einen Auswahlsatz erstellen, der größer als der Schwellenwert für diese bestimmte Client-Anwendung ist. Nachdem die Tabellen SDE_LOGFILES und SDE_LOGFILE_DATA für einen Benutzer erstellt wurden, kann der Geodatabase-Administrator die Berechtigungen jedoch widerrufen.
Beispiel: Jan Müller ist Städteplaner, der nur Daten aus der Geodatabase auswählt, um Analysen für seine Arbeit zu erstellen. Aus diesem Grund ist er ein Benutzer mit schreibgeschütztem Zugriff. Damit er die SDE_LOGFILES- und SDE_LOGFILE_DATA-Tabellen in der Enterprise-Geodatabase der Stadt erstellen kann, benötigt er die Berechtigung zum Erstellen von Tabellen in der Geodatabase.
Der Geodatabase-Administrator bittet Jan Müller, sich bei der Geodatabase anzumelden und eine Auswahl zu treffen, die über dem Auswahlgrenzwert liegt, anstatt ihm eine zeitlich uneingeschränkte Berechtigung zum Erstellen von Tabellen zu gewähren. Anschließend widerruft der Geodatabase-Administrator die Berechtigung zum Erstellen von Tabellen für Jan Müller.
Die folgenden Berechtigungen sind erforderlich, um gemeinsame Protokolldateitabellen in Oracle verwenden zu können:
- CREATE SESSION
- CREATE TABLE
- CREATE SEQUENCE
Optionale Speichersteuerung für gemeinsame Protokolldateien
In Oracle wird die Speichermethode für gemeinsame Protokolldateitabellen und Indizes mit den folgenden Parametern gesteuert:
- LD_INDEX_DATA_ID
- LD_INDEX_ROW_ID
- LD_STORAGE
- LF_INDEXES
- LF_STORAGE
Eine Beschreibung dieser Parameter finden Sie unter Konfigurationsparameter für Oracle.
Sitzungsbasierte Protokolldateien
Sitzungsbasierte Protokolldatei-Datentabellen beziehen sich auf eine einzelne Sitzung und können mehrere Auswahlsätze (Protokolldateien) enthalten. Jede angemeldete Sitzung benötigt einen Tabellensatz für Auswahlen.
Wann werden sitzungsbasierte Protokolldateien verwendet?
Die Verwendung von sitzungsbasierten Protokolldateien empfiehlt sich, wenn gleichzeitig mehrere Geodatabase-Verbindungen mit denselben Anmeldedaten hergestellt werden. Wenn beispielsweise viele Services auf die Daten in Ihrer Datenbank verweisen, können Sie sitzungsbasierte Protokolldateien verwenden.
Wann ist die Verwendung von sitzungsbasierten Protokolldateien nicht empfehlenswert?
Wenn Nur-Lesen-Verbindungen mit der Datenbank hergestellt werden, können Sie sitzungsbasierte Protokolldateien nicht verwenden.
Die Sitzungstabelle wird aus dem Schema des Benutzers gelöscht, wenn die Sitzung beendet wird. Das heißt, sie muss bei Bedarf wiederhergestellt werden. Aus diesem Grund müssen Benutzer über die Berechtigung zum Erstellen von Tabellen verfügen, damit sitzungsbasierte Protokolldateien verwendet werden können.
Für sitzungsbasierte Protokolldateien erstellte Tabellen
Es werden drei Tabellen erstellt: SDE_LOGFILES, SDE_LOGFILE_DATA und SDE_SESSION <SDE_ID >. "SDE_LOGFILE_DATA" wird in diesem Fall nicht verwendet, aber automatisch erstellt. In der SDE_LOGFILES-Tabelle werden Informationen über den Auswahlsatz und das Sitzungs-Tag "<SDE_ID>" gespeichert, das an den Namen der SDE_SESSION-Tabelle angehängt wird. In der SDE_SESSION-Tabelle werden die Feature-Kennung für den ausgewählten Satz und die Protokolldatei-ID gespeichert.
Die SDE_LOGFILES- und SDE_LOGFILE_DATA-Tabellen verbleiben in der Geodatabase. Die SDE_LOGFILES-Tabelle wird abgeschnitten, wenn die verbindende Anwendung getrennt wird. Die SDE_SESSION<SDE_ID>-Tabelle wird abgeschnitten, sobald die verbindende Anwendung die Protokolldateien löscht. Die Tabelle wird gelöscht, sobald die Sitzung getrennt wird.
Erforderliche Berechtigungen für sitzungsbasierte Protokolldateien
Besitzer der sitzungsbasierten Protokolldateien ist der Benutzer, der die verbindende Sitzung gestartet hat. Das bedeutet, dass andere Benutzer Berechtigungen zum Erstellen der erforderlichen Datenbankobjekte benötigen.
Um sitzungsbasierte Protokolldateitabellen in Oracle verwenden zu können, müssen alle Benutzer die folgenden Berechtigungen haben:
- CREATE SESSION
- CREATE TABLE
- CREATE SEQUENCE
Optionale Steuerung für sitzungsbasierte Protokolldateitabellen und Indizes
Zum Schlüsselwort "LOGFILE_DEFAULTS" der DBTUNE-Tabelle gehören mehrere Parameter, mit denen Sie steuern können, wie und wo Protokolldateitabellen in der Datenbank gespeichert werden. Zur Verwendung von sitzungsbasierten Protokolldateien müssen diese Parameter nicht festgelegt werden, Sie können sie jedoch verwenden, um die Speichermethode für die SDE_LOGFILES-, SDE_LOGFILE_DATA- und SDE_SESSION-Tabellen sowie für die Indizes in der Datenbank zu ändern.
In Oracle wird die Speichermethode für sitzungsbasierte Protokolldateitabellen und Indizes mit den folgenden Parametern gesteuert:
- LD_INDEX_DATA_ID
- LD_INDEX_ROW_ID
- LD_STORAGE
- LF_INDEXES
- LF_STORAGE
- SESSION_INDEX
- SESSION_STORAGE
Eine Beschreibung dieser Parameter finden Sie unter Konfigurationsparameter für Oracle.
Protokolldatei-Pools, deren Besitzer der Geodatabase-Administrator ist
Der Geodatabase-Administrator kann einen Pool von sitzungsbasierten Protokolldateien erstellen, die ausgecheckt und von anderen Benutzern verwendet werden können. Gemeinsame Protokolldateien können nicht aus einem Protokolldatei-Pool ausgecheckt werden.
Durch das Verwenden eines Pools von Protokolldateien kann vermieden werden, dass Benutzern die zum Erstellen von Objekten in der Datenbank notwendigen Berechtigungen erteilt werden müssen.
Verwendung von Protokolldatei-Pools
Verwenden Sie einen Protokolldatei-Pool, wenn Sie Benutzern nicht die Möglichkeit geben können, Protokolldateitabellen in ihren eigenen Schemas zu erstellen. Die Benutzer benötigen jedoch trotzdem Berechtigungen zum Erstellen von Sitzungen bzw. zum Herstellen von Datenbankverbindungen.
Wann ist die Verwendung von Protokolldatei-Pools nicht empfehlenswert?
Schlussendlich ist der Wartungsaufwand bei der Verwendung von Protokolldatei-Pools geringfügig höher, da Sie die Anzahl der notwendigen Protokolldateitabellen berechnen müssen, und möglicherweise müssen Sie die Größe des Pools oder die Anzahl der verwendeten Pools anpassen. Beachten Sie, dass durch einen großen Protokolldatei-Pool oder durch eine große Anzahl an Protokolldatei-Pools die Performance negativ beeinflusst werden kann.
Für gemeinsame Protokolldatei-Pools erstellte Tabellen
Sie legen die Anzahl der SDE_LOGPOOL_<table_ID>-Tabellen fest, die vom Werkzeug Einstellungen für Protokolldateitabellen ändern im Schema des Geodatabase-Administrators erstellt werden. Wenn Sie beispielsweise 5 Tabellen festlegen, werden die folgenden Tabellen im Schema des Geodatabase-Administrators erstellt:
- SDE_LOGPOOL_1
- SDE_LOGPOOL_2
- SDE_LOGPOOL_3
- SDE_LOGPOOL_4
- SDE_LOGPOOL_5
In einer zusätzlichen Tabelle im Schema des Geodatabase-Administrators, SDE_LOGFILE_POOL, werden die SDE_ID der Sitzung und eine Tabellen-ID aufgezeichnet. Der Teil "<table_ID>" im Namen der SDE_LOGPOOL-Tabelle entspricht dem Wert der Spalte "table_ID" in der SDE_LOGFILE_POOL-Tabelle.
Jede Sitzung, für die eine Protokolldateitabelle erforderlich ist, fügt der SDE_LOGFILE_POOL-Tabelle einen Datensatz hinzu, und die Sitzung wird einer der SDE_LOGPOOL_<table_ID>-Tabellen zugeordnet. Wenn in derselben Sitzung zusätzliche Protokolldateien erstellt werden, wenn z. B. in einer ArcMap-Sitzung ein zweiter Auswahlsatz mit 300 Datensätzen erstellt wird, werden die neuen Protokolldateien derselben SDE_LOGPOOL-Tabelle hinzugefügt.
Wenn Protokolldateien gelöscht werden, wird die SDE_LOGPOOL-Tabelle, die für die Sitzung ausgecheckt wurde, abgeschnitten. Wenn beispielsweise der zweite Auswahlsatz in der ArcMap-Sitzung gelöscht wird, werden die 300 Datensätze aus der SDE_LOGPOOL-Tabelle entfernt, die Datensätze des ersten Auswahlsatzes bleiben jedoch erhalten. Wenn der erste Auswahlsatz gelöscht wird, werden die Datensätze des ersten Auswahlsatzes aus der SDE_LOGPOOL-Tabelle entfernt.
Wenn eine Protokolldatei (ein Auswahlsatz) gelöscht wird, wird die entsprechende SDE_LOGPOOL-Tabelle abgeschnitten.
Erforderliche Berechtigungen für Protokolldatei-Pools
Um die Protokolldateitabellen im Pool verwenden zu können, müssen Benutzer die Möglichkeit haben, eine Datenbankverbindung herzustellen und die Objekte im Schema des Geodatabase-Administrators zu verwenden. Daher wird für die Verwendung von Pools mit Protokolldateitabellen nur die Berechtigung CREATE SESSION benötigt.
Die CREATE SESSION-Berechtigung wird allen Benutzern standardmäßig gewährt. Somit müssen Sie diese Berechtigung nur explizit erteilen, wenn Sie sie aus PUBLIC widerrufen haben.
Optionale Speichersteuerung für Pools mit Protokolldateien
Zum Schlüsselwort "LOGFILE_DEFAULTS" gehören einige wenige Parameter, mit denen Sie steuern können, wie die SDE_LOGPOOL<SDE_ID>-Tabellen und die zugehörigen Indizes gespeichert werden.
Bei Geodatabases in Oracle werden die Parameter LD_STORAGE, LD_INDEX_ROWID und LD_INDEX_DATA_ID DBTUNE verwendet, um die Speichermethode für die SDE_LOGPOOL<SDE_ID>-Tabellen und die zugehörigen Indizes festzulegen. Mit diesen drei Parametern wird auch die Speicherung der SDE_LOGFILE_DATA-Tabelle und der zugehörigen Indizes gesteuert. Eine Beschreibung dieser Parameter finden Sie unter Konfigurationsparameter für Oracle.
Zur Verwendung von Protokolldatei-Pools müssen diese Parameter nicht festgelegt werden, Sie können sie jedoch verwenden, um die Speichermethode für die SDE_LOGPOOL<SDE_ID>-Tabellen sowie für die Indizes in der Datenbank zu ändern.