Konfigurationsoptionen für Protokolldateitabellen in PostgreSQL-Geodatabases

Es gibt vier verschiedene ArcSDE-Protokolldateioptionen: freigegeben, sitzungsbasiert, eigenständig, und Gruppen sitzungsbasierter oder eigenständiger Protokolldateien. Jede Option wird in diesem Thema in einem eigenen Abschnitt erläutert.

In den meisten Fällen reicht die Standardtabellenkonfiguration der ArcSDE-Protokolldateien für Ihr Datenbankmanagementsystem (DBMS) aus und wird als Einstellung empfohlen.

In der Standardkonfiguration werden für PostgreSQL gemeinsame ArcSDE-Protokolldateien verwendet.

Zum Festlegen von Protokolldateioptionen werden spezifische Parameter in den Tabellen "sde_server_config" und "sde_dbtune" verwendet.

Zum Ändern von Parametern in diesen Tabellen verwenden Sie den Befehl "sdeconfig" bzw. "sdedbtune". Diese Befehle und die anderen Werkzeuge für ArcSDE-Verwaltungsbefehlszeilen müssen vom Esri Customer Care-Portal mit dem ArcSDE-Anwendungsserver heruntergeladen werden. Informationen zur Syntax und Beispiele zur Verwendung der Befehle finden Sie in der ArcSDE Administration Command Reference, die zusammen mit der ArcSDE-Anwendungsserverinstallation zur Verfügung gestellt wird.

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 bei einer großen Anzahl gleichzeitiger Sitzungen, wobei jede Sitzung über ein eigenes DBMS-Benutzerkonto verbunden wird (die empfohlene Methode zur Verbindung mit der Geodatabase).

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 ArcIMS-Service verwenden, der mehrere Verbindungen mit denselben Anmeldedaten herstellt. Dies kann zu Konkurrenzbetrieb und 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. Für ArcGIS for Desktop ist dieser Schwellenwert auf 100 Datensätze festgelegt.

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 Benutzersitzung beendet wird. Sowohl die Tabelle SDE_LOGFILE_DATA als auch die Tabelle SDE_LOGFILES verbleiben im Benutzerschema.

Einstellungen zur Verwendung von gemeinsamen Protokolldateien

Die folgenden Einstellungen werden in der Tabelle SERVER_CONFIG benötigt, um freigegebene Protokolldateitabellen zu erstellen:

  • MAXSTANDALONELOGS = 0
  • ALLOWSESSIONLOGFILE = FALSE
  • LOGFILEPOOLSIZE = 0

Einstellungen zur Steuerung der Speichermethode für gemeinsame Protokolldateitabellen und Indizes

Zum Schlüsselwort LOGFILE_DEFAULTS der Tabelle DBTUNE gehören mehrere Parameter, mit denen Sie steuern können, wie und wo Protokolldateitabellen in der Datenbank gespeichert werden. Zur Verwendung von gemeinsamen Protokolldateien müssen diese Parameter nicht festgelegt werden, Sie können sie jedoch verwenden, um die Speichermethode für die Tabellen SDE_LOGFILES und SDE_LOGFILE_DATA sowie für die Indizes in der Datenbank zu ändern.

Für PostgreSQL stehen folgende Parameter zur Verfügung:

  • LD_INDEX_ALL
  • LD_STORAGE
  • LF_INDEX_ID
  • LF_INDEX_NAME
  • LF_STORAGE

Weitere Informationen finden Sie unter DBTUNE-Konfigurationsparameter für PostgreSQL.

Erforderliche Benutzerberechtigungen zur Verwendung gemeinsamer 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 nötig, wenn der Benutzer nur schreibgeschützten Zugriff auf ArcSDE hat oder ArcSDE als schreibgeschützt eingestellt ist. Ohne diese Berechtigungen erhalten Benutzer eine Fehlermeldung, wenn sie zum ersten Mal einen Auswahlsatz erstellen, der größer als der Grenzwert 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 Tabellen SDE_LOGFILES und SDE_LOGFILE_DATA in der ArcSDE for SQL Server-Geodatabase der Stadt erstellen kann, benötigt er die Berechtigung zum Erstellen von Tabellen in der Geodatabase.

Der Geodatabase-Administrator entscheidet, Jan Müller keine zeitlich uneingeschränkte Berechtigung zum Erstellen von Tabellen zu gewähren, sondern sich stattdessen selbst als Jan Müller bei der Geodatabase anzumelden, eine Auswahl zu treffen, die über dem Grenzwert liegt, und dann die Berechtigung zum Erstellen von Tabellen zu widerrufen.

Die folgenden Berechtigungen sind erforderlich, um gemeinsame Protokolldateitabellen in PostgreSQL verwenden zu können:

  • CONNECT
  • USAGE für das Benutzerschema
  • CREATE für das Benutzerschema

Sie erstellen für PostgreSQL-Benutzer in der Regel ein Schema und erteilen dem Benutzer die AUTHORIZATION-Berechtigung für dieses Schema, wodurch die USAGE- und CREATE-Berechtigungen für das Schema automatisch gewährt werden. Wenn Sie Benutzern jedoch reine Nur-Lesen-Berechtigungen erteilen möchten, sollten Sie den Benutzern keine AUTHORIZATION-Berechtigung für ihre Schemas erteilen. Stattdessen müssen Sie jedem Nur-Lesen-Benutzer die Berechtigungen USAGE und CREATE für das Schema gewähren. Sie können die CREATE-Berechtigung eines Benutzers für ein Schema widerrufen, nachdem die Protokolldateitabellen im Schema des Benutzers erstellt wurden. Die USAGE-Berechtigung muss erhalten bleiben, sodass die Benutzer die Protokolldateitabellen verwenden können.

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?

Es empfiehlt sich die Verwendung von sitzungsbasierten Protokolldateien, wenn zahlreiche Geodatabase-Verbindungen gleichzeitig mit denselben Anmeldedaten hergestellt werden.

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 Tabelle SDE_LOGFILES werden Informationen über den Auswahlsatz und ein Sitzungs-Tag <SDE_ID> gespeichert, das an den Namen der Tabelle SDE_SESSION angehängt wird. In der Tabelle SDE_SESSION werden die Feature-Kennung für den ausgewählten Satz und die Protokolldatei-ID gespeichert.

Die Tabellen SDE_LOGFILES und SDE_LOGFILE_DATA verbleiben in der Geodatabase. Die Tabelle SDE_LOGFILES wird abgeschnitten, wenn die verbindende Anwendung getrennt wird. Die Tabelle SDE_SESSION<SDE_ID> wird abgeschnitten, sobald die verbindende Anwendung die Protokolldateien löscht. Die Tabelle wird gelöscht, sobald die Sitzung getrennt wird.

Einstellungen zur Verwendung von sitzungsbasierten Protokolldateien (nicht in einem Pool)

In der Tabelle "sde_server_config" müssen folgende Einstellungen festgelegt sein, damit sitzungsbasierte Protokolldateitabellen, deren Besitzer nicht der ArcSDE-Administrator ist, erstellt werden können:

  • ALLOWSESSIONLOGFILE = TRUE
  • MAXSTANDALONELOGS = 0
  • LOGFILEPOOLSIZE = 0

Einstellungen zur Steuerung der Speichermethode für sitzungsbasierte Protokolldateitabellen und Indizes

Zum Schlüsselwort "LOGFILE_DEFAULTS" der Tabelle "sde_dbtune" 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.

Für PostgreSQL stehen folgende Parameter zur Verfügung:

  • LD_INDEX_ALL
  • LD_STORAGE
  • LF_INDEX_ID
  • LF_INDEX_NAME
  • LF_STORAGE
  • SESSION_INDEX
  • SESSION_STORAGE

Eine Beschreibung dieser Parameter finden Sie unter DBTUNE-Konfigurationsparameter für PostgreSQL.

Erforderliche Benutzerberechtigungen zur Verwendung von sitzungsbasierten 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 Protokolldateien in PostgreSQL verwenden zu können, müssen alle Benutzer die folgenden Berechtigungen haben:

  • CONNECT
  • USAGE für das Benutzerschema
  • CREATE für das Benutzerschema

Sie erstellen für PostgreSQL-Benutzer in der Regel ein Schema und erteilen dem Benutzer die AUTHORIZATION-Berechtigung für dieses Schema, wodurch die USAGE- und CREATE-Berechtigungen für das Schema automatisch gewährt werden. Wenn Sie Benutzern jedoch reine Nur-Lesen-Berechtigungen erteilen möchten, sollten Sie den Benutzern keine AUTHORIZATION-Berechtigung für ihre Schemas erteilen. Stattdessen müssen Sie jedem Nur-Lesen-Benutzer die Berechtigungen USAGE und CREATE für das Schema gewähren. Sie können die CREATE-Berechtigung eines Benutzers für ein Schema widerrufen, nachdem die Protokolldateitabellen im Schema des Benutzers erstellt wurden. Die USAGE-Berechtigung muss erhalten bleiben, sodass die Benutzer die Protokolldateitabellen verwenden können.

Eigenständige Protokolldateien

Eigenständige Protokolldateien werden in einer Sitzung für jeden Auswahlsatz erstellt, den die Anwendung speichern muss.

Eigenständige Protokolldateien generieren von allen Protokolldateioptionen die größte Anzahl an Tabellen. Denken Sie daran, ausreichend Speicherplatz für alle diese Protokolldateitabellen zu konfigurieren. In den meisten Datenbanksystemen dienen die DBTUNE-Parameter SESSION_STORAGE und SESSION_INDEX zur Zuweisung von Speicherplatz für die Tabellen und Indizes von eigenständigen Protokolldateien.

Verwendung von eigenständigen Protokolldateien

Wenn Sie keine Bedenken haben, allen Datenbankbenutzern Berechtigungen zum Erstellen von Tabellen in der Geodatabase zu erteilen, können Sie eigenständige Protokolldateitabellen verwenden.

Ein Vorteil von eigenständigen Protokolldateien besteht darin, dass beim Löschen eines Auswahlsatzes die Tabelle SDE_LOGDATA, in der sich die Auswahl befunden hat, nicht gelöscht, sondern nur abgeschnitten wird. Abschneidungen können schneller ausgeführt werden als Löschvorgänge, da keine interne SQL (Structured Query Language)-Anweisung ausgegeben werden muss. Es gibt allerdings nicht sehr viele Instanzen, bei denen diese Performance-Steigerung die Kosten für das Erstellen und Speichern einzelner Protokolldateitabellen für jeden Layer ausgleichen würde.

Wann ist die Verwendung von eigenständigen Protokolldateien nicht empfehlenswert?

Wenn Nur-Lesen-Verbindungen mit der Datenbank hergestellt werden, können Sie eigenständige Protokolldateien nicht verwenden. Die SDE_LOGDATA <SDE_ID>-Tabellen werden aus dem Schema des Benutzers gelöscht, wenn die Verbindung beendet wird. Sie müssen jedes Mal, wenn der Auswahlschwellenwert eines Layers überschritten wird, wiederhergestellt werden. Sie können also die CREATE-Berechtigungen für Benutzer nicht widerrufen, die eine Verbindung zur Geodatabase herstellen müssen.

Für eigenständige Protokolldateien erstellte Tabellen

Für jeden Auswahlsatz oberhalb des Auswahlgrenzwertes für eine Sitzung wird eine neue Tabelle SDE_LOGDATA<SDE_ID> für jeden Layer erstellt. Dadurch wird Konkurrenzbetrieb für die Tabelle SDE_LOGDATA vermieden. Da jedoch für jeden Auswahlsatz eine neue Tabelle erstellt und nach dem Trennen der Sitzung wieder gelöscht wird, werden die SQL-Anweisungen CREATE TABLE und DROP TABLE häufig generiert.

Die Tabellen SDE_LOGFILES und SDE_LOGFILE_DATA werden pro Verbindung im Benutzerschema erstellt. In der Tabelle SDE_LOGFILES werden die Auswahlsatzeigenschaften gespeichert, die Tabelle SDE_LOGFILE_DATA wird jedoch nicht verwendet.

Die SDE_LOGDATA<SDE_ID>-Tabellen werden abgeschnitten, wenn der Auswahlsatz für die Layer nicht mehr benötigt wird. Die Tabellen SDE_LOGDATA<SDE_ID> werden verworfen, sobald die Sitzung getrennt wird. Die Tabellen SDE_LOGFILES und SDE_LOGFILE_DATA bleiben im Schema des Benutzers, auch nachdem der Benutzer die Verbindung getrennt hat. Die Tabelle SDE_LOGFILES wird jedoch abgeschnitten.

Erforderliche Einstellungen zur Verwendung von eigenständigen Protokolldateien (nicht in einem Pool)

Der Parameter in der Tabelle "sde_server_config", mit dem die Anzahl der erstellbaren eigenständigen Protokolldateien festgelegt wird, ist "MAXSTANDALONELOGS". Standardmäßig ist "MAXSTANDALONELOGS" auf 0 festgelegt. Wenn Sie also eigenständige Protokolldateien verwenden möchten, müssen Sie "MAXSTANDALONELOGS" auf die Anzahl der eigenständigen Protokolldateien festlegen, die jeder Benutzer erstellen können soll.

Folgende Einstellungen sind zur Erstellung von eigenständigen Protokolldateitabellen erforderlich, deren Besitzer nicht der Geodatabase-Administrator ist:

  • MAXSTANDALONELOGS = <Maximale Anzahl der SDE_LOGDATA<SDE_ID>-Tabellen, die ein Benutzer erstellen kann>
  • LOGFILEPOOLSIZE = 0

Eigenständige Protokolldateien werden so lange verwendet, bis das Quota der Sitzung – definiert durch den Serverkonfigurationsparameter MAXSTANDALONELOGS – voll ausgeschöpft ist. Wenn der Benutzer keine weiteren eigenständigen Protokolldateien erstellen kann – wenn also die Anwendung gleichzeitig mehr Auswahlsätze (Protokolldateien) erstellen muss als in MAXSTANDALONELOGS festgelegt – versucht ArcSDE, eine sitzungsbasierte Protokolldatei zu erstellen. Dies ist allerdings nur möglich, wenn ALLOWSESSIONLOGFILE auf TRUE festgelegt ist. Wenn keine sitzungsbasierte Protokolldatei erstellt werden kann, wird versucht, eine gemeinsame Protokolldatei zu erstellen. Wenn keine gemeinsame Protokolldatei erstellt werden kann und keine eigenständigen Protokolldateien mehr vorhanden sind, gibt ArcSDE eine Fehlermeldung aus.

Beispiele zur Reihenfolge, in der die Protokolldateitypen verwendet werden, finden Sie unter In welcher Reihenfolge werden ArcSDE-Protokolldateien verwendet?

Einstellungen zur Steuerung der Speichermethode für eigenständige Protokolldateitabellen und Indizes

Zum Schlüsselwort "LOGFILE_DEFAULTS" der Tabelle "sde_dbtune" gehören mehrere Parameter, mit denen Sie steuern können, wie und wo Protokolldateitabellen in der Datenbank gespeichert werden. Zur Verwendung von eigenständigen 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_LOGDATA-Tabellen sowie für die Indizes in der Datenbank zu ändern.

Für PostgreSQL stehen folgende Parameter zur Verfügung:

  • LD_INDEX_ALL
  • LD_STORAGE
  • LF_INDEX_ID
  • LF_INDEX_NAME
  • LF_STORAGE
  • SESSION_INDEX
  • SESSION_STORAGE

Eine Beschreibung dieser Parameter finden Sie unter DBTUNE-Konfigurationsparameter für PostgreSQL.

Erforderliche Benutzerberechtigungen für die Verwendung von eigenständigen Protokolldateien (nicht in einem Pool)

Benutzerkonten, die eigenständige Protokolldateitabellen verwenden, müssen berechtigt sein, die notwendigen Datenbankobjekte zu erstellen. Im Gegensatz zu gemeinsamen Protokolldateien können Sie die Berechtigungen eines Benutzers nicht nach der Erstellung der Protokolldateitabellen widerrufen, da jedes Mal, wenn während einer Sitzung eine ausreichend große Auswahl erstellt wird, eine neue Tabelle pro Layer erstellt wird, deren Besitzer der Benutzer ist.

Um eigenständige Protokolldateitabellen in PostgreSQL verwenden zu können, müssen alle Benutzer die folgenden Berechtigungen haben:

  • CONNECT
  • USAGE für das Benutzerschema
  • CREATE für das Benutzerschema

Sie erstellen für PostgreSQL-Benutzer in der Regel ein Schema und erteilen dem Benutzer die AUTHORIZATION-Berechtigung für dieses Schema, wodurch die USAGE- und CREATE-Berechtigungen für das Schema automatisch gewährt werden. Wenn Sie Benutzern jedoch reine Nur-Lesen-Berechtigungen erteilen möchten, sollten Sie den Benutzern keine AUTHORIZATION-Berechtigung für ihre Schemas erteilen. Stattdessen müssen Sie jedem Nur-Lesen-Benutzer die Berechtigungen USAGE und CREATE für das Schema gewähren. Sie können die CREATE-Berechtigung eines Benutzers für ein Schema widerrufen, nachdem die Protokolldateitabellen im Schema des Benutzers erstellt wurden. Die USAGE-Berechtigung muss erhalten bleiben, sodass die Benutzer die Protokolldateitabellen verwenden können.

Die CONNECT-Berechtigung wird allen Benutzern standardmäßig gewährt. Somit müssen Sie diese Berechtigung nur explizit erteilen, wenn Sie sie aus PUBLIC widerrufen haben.

Protokolldatei-Pools, deren Besitzer der ArcSDE-Administrator ist

Der Geodatabase-Administrator kann einen Pool von Protokolldateien erstellen, die ausgecheckt und von anderen Benutzern verwendet werden können. Hierbei kann es sich um sitzungsbasierte oder eigenständige Protokolldateien handeln. Gemeinsame Protokolldateien können nicht aus einem ArcSDE-Protokolldatei-Pool ausgecheckt werden.

Durch das Verwenden eines Pools von ArcSDE-Protokolldateien kann vermieden werden, dass Benutzern die zum Erstellen von Objekten in der Datenbank notwendigen Berechtigungen erteilt werden müssen.

Verwendung von Protokolldatei-Pools, deren Besitzer der Geodatabase-Administrator ist

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.

Das Erstellen sitzungsbasierter Protokolldateien ist eine effizientere Art, die Ressourcen des Pools zu nutzen, da sie mehrere Auswahlsätze in eine einzige Tabelle schreiben. Eigenständige Protokolldateien verwenden dagegen für jeden passenden Auswahlsatz eine eigene Tabelle.

Wann wird die Verwendung von Protokolldatei-Pools, deren Besitzer der Geodatabase-Administrator ist, nicht empfohlen?

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 Protokolldatei-Pools, deren Besitzer der ArcSDE-Administrator ist, erstellte Tabellen

Durch den Wert des Parameters "LOGFILEPOOLSIZE" in der Tabelle"sde_server_config" wird die Anzahl der im Benutzerschema des ArcSDE-Administrators erstellten SDE_LOGPOOL_<table_ID>-Tabellen festgelegt. Wenn Sie den Parameter "LOGFILEPOOLSIZE" beispielsweise auf 5 festlegen, werden die folgenden Tabellen im Schema des ArcSDE-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 ArcSDE-Sitzung und eine Tabellen-ID aufgezeichnet. Der Teil "<table_ID>" im Namen der Tabelle SDE_LOGPOOL entspricht dem Wert der Spalte "table_ID" in der Tabelle SDE_LOGFILE_POOL.

Wenn Sie einen Pool mit sitzungsbasierten Protokolldateien verwenden, wird für jede Sitzung, in der eine Auswahl erstellt wird, deren Größe den Auswahlschwellenwert überschreitet, ein Datensatz zur Tabelle SDE_LOGFILE_POOL hinzugefügt, und die Sitzung wird einer der SDE_LOGPOOL_<table_ID>-Tabellen zugewiesen. 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 Sie einen Pool mit eigenständigen Protokolldateien verwenden, wird für jede Protokolldatei (Auswahlsatz mit der erforderlichen Größe) ein neuer Datensatz in der Tabelle SDE_LOGFILE_POOL erstellt und eine der SDE_LOGPOOL-Tabellen verwendet. Beispiel: Wenn Sie in einer ArcMap-Sitzung (1) aus einer Feature-Class mit Informationen zu Geschäften alle Geschäfte mit einer Lizenz zum Verkauf von Speisen und (2) aus einer Feature-Class mit Informationen zu Gullys alle Auffangbecken im Umkreis von einem Kilometer zu einem Restaurant auswählen, werden der Tabelle SDE_LOGFILE_POOL zwei Datensätze hinzugefügt: ein Datensatz für den Auswahlsatz der Geschäfte und ein Datensatz für den Auswahlsatz der Auffangbecken. Jedem Auswahlsatz wird eine eigene SDE_LOGPOOL-Tabelle zugewiesen.

Wenn eine Protokolldatei (ein Auswahlsatz) gelöscht wird, wird die entsprechende SDE_LOGPOOL-Tabelle abgeschnitten.

Erforderliche Einstellungen zur Verwendung von Protokolldatei-Pools, deren Besitzer der ArcSDE-Administrator ist

Die Parameter "LOGFILEPOOLSIZE" und "HOLDLOGPOOLTABLES" in der Tabelle "sde_server_config" beziehen sich speziell auf Protokolldatei-Pools.

Um einen Protokolldatei-Pool zu erstellen, müssen Sie den Konfigurationsparameter LOGFILEPOOLSIZE auf die Anzahl der Protokolldateien (d. h. auf die Anzahl der SDE_LOGPOOL-Tabellen) festlegen, die voraussichtlich erstellt werden müssen. Die Anzahl sollte die Anzahl an Sitzungen wiedergeben, die mit Ihrem Server verbunden werden, und zusätzlich die Anzahl der eigenständigen Protokolldateien, falls zugelassen.

Verwenden Sie für die Berechnung der Gesamtanzahl an Protokolldateien für den Protokolldatei-Pool die folgenden Formeln:

  • Falls sitzungsbasierte, aber keine eigenständigen Protokolldateien zugelassen sind

    LOGFILEPOOLSIZE = Gesamtanzahl an erwarteten Sitzungen

    Beispiel: Wenn MAXSTANDALONELOGS auf 0 und ALLOWSESSIONLOGFILE auf TRUE festgelegt ist und voraussichtlich höchstens 30 gleichzeitige Verbindungen mit der Geodatabase hergestellt werden, legen Sie LOGFILEPOOLSIZE auf 30 fest.

  • Falls eigenständige, aber keine sitzungsbasierten Protokolldateien zugelassen sind

    LOGFILEPOOLSIZE = MAXSTANDALONELOGS * Gesamtanzahl an erwarteten Sitzungen

    Beispiel: Wenn MAXSTANDALONELOGS auf 5 und ALLOWSESSIONLOGFILE auf FALSE festgelegt ist und voraussichtlich höchstens 10 gleichzeitige Verbindungen mit der Geodatabase hergestellt werden, legen Sie LOGFILEPOOLSIZE auf 50 fest.LOGFILEPOOLSIZE = 5 * 10.

  • Falls sowohl eigenständige als auch sitzungsbasierte Protokolldateien zugelassen sind

    LOGFILEPOOLSIZE = (MAXSTANDALONELOGS +1) * Gesamtanzahl an erwarteten Sitzungen

    Beispiel: Wenn MAXSTANDALONELOGS auf 8 und ALLOWSESSIONLOGFILE auf TRUE festgelegt ist und voraussichtlich höchstens 20 gleichzeitige Verbindungen mit der Geodatabase hergestellt werden, legen Sie LOGFILEPOOLSIZE auf 180 fest.LOGFILEPOOLSIZE = (8 + 1) * 20.

Wenn der Pool ausgeschöpft ist und eine weitere Protokolldateitabelle benötigt wird, versucht ArcSDE, diese im Schema des Benutzers zu erstellen. Wenn die Protokolldateitabelle im Benutzerschema nicht erstellt werden kann, wird eine Fehlermeldung ausgegeben.

Die SDE_LOGPOOL_<table_ID>-Tabellen werden erstellt bzw. gelöscht, sobald der Parameter LOGFILEPOOLSIZE geändert wird. Im vorigen Beispiel, in dem LOGFILEPOOLSIZE auf 180 festgelegt ist, werden 180 SDE_LOGPOOL_<table_ID>-Tabellen erstellt. Wenn Sie den Wert des Parameters LOGFILEPOOLSIZE in 100 ändern, werden 80 dieser Tabellen gelöscht.

Mit dem anderen Parameter für Protokolldatei-Pools, HOLDLOGPOOLTABLES, wird festgelegt, wann eine SDE_LOGPOOL-Tabelle in den Pool zurückgeführt wird und von anderen Benutzern verwendet werden kann. Wenn HOLDLOGPOOLTABLES auf TRUE festgelegt ist (Standardeinstellung), verbleiben die Datensätze in der Tabelle SDE_LOGFILE_POOL, und die SDE_LOGPOOL-Tabellen bleiben gesperrt, bis die verbindende Sitzung beendet wird. Wenn HOLDLOGPOOLTABLES auf FALSE festgelegt ist, werden die Protokolldateitabellen freigegeben, und die Tabelle SDE_LOGFILE_POOL wird abgeschnitten, sobald ein Auswahlsatz nicht mehr benötigt wird. Dieses Verhalten gilt sowohl für Pools mit eigenständigen als auch mit sitzungsbasierten Protokolldateien.

Einstellungen zur Steuerung der Speichermethode für Pools von Protokolldateitabellen und Indizes, deren Besitzer der ArcSDE-Administrator ist

Zum Schlüsselwort "LOGFILE_DEFAULTS" der Tabelle "sde_dbtune" 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.

ArcSDE for PostgreSQL verwendet die Parameter "LD_STORAGE" und "LD_INDEX_ALL" in der Tabelle "sde_dbtune", um die Speichermethode für die SDE_LOGPOOL<SDE_ID>-Tabellen und die zugehörigen Indizes festzulegen. Mit diesen beiden Parametern wird auch die Speicherung der Tabelle "SDE_LOGFILE_DATA" und der zugehörigen Indizes gesteuert. Eine Beschreibung dieser Parameter finden Sie unter DBTUNE-Konfigurationsparameter für PostgreSQL.

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.

Erforderliche Benutzerberechtigungen zur Verwendung von Protokolldatei-Pools, deren Besitzer der ArcSDE-Administrator ist

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 ArcSDE-Administrators zu verwenden.

Die folgenden Berechtigungen sind erforderlich, um Protokolldatei-Pools in PostgreSQL verwenden zu können:

  • CONNECT
  • USAGE für das Benutzerschema
HinweisHinweis:

Wenn die PostgreSQL-Datenbank ausschließlich für Ihre Geodatabase verwendet wird, erteilen Sie der Gruppe "PUBLIC" die Berechtigung "USAGE" für das SDE-Schema, um sie nicht jeder einzelnen Rolle oder Gruppe einzeln erteilen zu müssen. Benutzer benötigen die USAGE-Berechtigung für das SDE-Schema, um auf die Geodatabase zugreifen zu können.

HinweisHinweis:

Die CONNECT-Berechtigung wird allen Benutzern standardmäßig gewährt. Somit müssen Sie diese Berechtigung nur explizit erteilen, wenn Sie sie aus PUBLIC widerrufen haben.

Verwandte Themen

9/11/2013