Konfigurationsoptionen für Protokolldateitabellen in SQL Server-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.
Standardmäßig wird für die Protokolldateikonfiguration in SQL Server die Erstellung von sitzungsbasierten Protokolldateien in der temporären Datenbank (tempdb) verwendet.
Protokolldateioptionen werden mit bestimmten Parametern in den Tabellen SDE_server_config und SDE_dbtune festgelegt.
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.
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?
Wenn Ihre Geodatabase in SQL Server gespeichert ist, sollten Sie diese Option auf jeden Fall wählen. In lokalen SQL Server-Datenbanken besteht die Möglichkeit, sitzungsbasierte Protokolldateien in der tempdb-Datenbank zu speichern, d. h. es müssen keine Tabellen in der Geodatabase verwaltet werden, es werden möglichst wenige Transaktionsprotokolle erstellt, und Sie müssen nicht allen Benutzern CREATE TABLE-Berechtigungen in der Datenbank gewähren. Da dies die Standardeinstellung für Geodatabases in lokalen SQL Server-Datenbanken ist, müssen Sie keine Einstellungen ändern, um diese Protokolldateioption verwenden zu können.
Wann ist die Verwendung von sitzungsbasierten Protokolldateien nicht empfehlenswert?
Wenn Sie ArcSDE for SQL Server (lokale Datenbank) verwenden, gibt es keinen Grund, keine sitzungsbasierten in tempdb erstellten Protokolldateitabellen zu verwenden.
Für sitzungsbasierte Protokolldateien erstellte Tabellen
Mit den Standardeinstellungen in SQL Server wird in tempdb eine Tabelle im Format ##SDE_SESSION<SDE_ID >_<DBID> erstellt. <SDE_ID> ist die eindeutige Sitzungs-ID aus der Tabelle "SDE_process_information". Die Variable <dbid> steht für die Datenbank-ID in SQL Server. Diese Tabelle wird abgeschnitten, sobald die verbindende Anwendung ihre Protokolldateien löscht. Die Tabelle wird gelöscht, sobald die Sitzung getrennt wird. Beachten Sie, dass temporäre Objekte nicht im Objektexplorer in Management Studio angezeigt werden können.
Wenn sitzungsbasierte Protokolldateitabellen direkt in der Geodatabase (nicht in tempdb) erstellt werden, 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 das 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 SQL Server stehen folgende Parameter zur Verfügung:
- LD_INDEX_ALL
- LD_STORAGE
- LF_CLUSTER_ID
- LF_CLUSTER_NAME
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
- SESSION_TEMP_TABLE
Der Parameter SESSION_TEMP_TABLE muss auf 1 (true) festgelegt werden, um die Erstellung der sitzungsbasierten Protokolldateitabellen in der temporären Datenbank "tempdb" zuzulassen.
Wenn Sie den Parameter SESSION_TEMP_TABLE auf 0 (false) festlegen, werden die Tabellen SDE_LOGFILES, SDE_LOGFILE_DATA und SDE_SESSION<SDE_ID> im Schema des verbindenden Benutzers erstellt. Hierfür muss der Benutzer über bestimmte Berechtigungen verfügen.
Erläuterungen zu diesen Parametern finden Sie unter DBTUNE-Konfigurationsparameter für SQL Server.
Erforderliche Benutzerberechtigungen zur Verwendung von sitzungsbasierten Protokolldateien
Wenn Sie die empfohlenen SQL Server-Einstellungen für lokale Datenbanken verwenden, benötigen Benutzer lediglich die Möglichkeit, eine Verbindung mit der Datenbank herzustellen. Wenn Sie den Parameter SESSION_TEMP_TABLE in der Tabelle SDE_DBTUNE jedoch auf 0 festlegen, benötigen Benutzer zusätzlich zur CONNECT-Berechtigung auch die CREATE TABLE-Berechtigung.
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.
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?
Freigegebene Protokolldateien werden nur dann verwendet, wenn Sie keine Tabellen in "tempdb" erstellen möchten, Sie eine große Anzahl von Sitzungen gleichzeitig ausführen und diese Sitzungen ihre Verbindungen jeweils über ein bestimmtes DBMS-Benutzerkonto herstellen.
Wann ist die Verwendung von gemeinsamen Protokolldateien nicht empfehlenswert?
Wenn Sie die Geodatabase in SQL Server speichern, sollten Sie sitzungsbasierte Protokolldateien verwenden, die in der temporären Datenbank "tempdb" erstellt werden. Dies ist die Standardeinstellung für ArcSDE for SQL Server.
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
Für SQL Server stehen folgende Parameter zur Verfügung:
- LD_INDEX_ALL
- LD_STORAGE
- LF_CLUSTER_ID
- LF_CLUSTER_NAME
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
Weitere Informationen finden Sie unter DBTUNE-Konfigurationsparameter für SQL Server.
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 freigegebene Protokolldateitabellen in SQL Server verwenden zu können:
- CONNECT
- CREATE TABLE
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.
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 SQL Server stehen folgende Parameter zur Verfügung:
- LD_INDEX_ALL
- LD_STORAGE
- LF_CLUSTER_ID
- LF_CLUSTER_NAME
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
- SESSION_TEMP_TABLE
Der Parameter SESSION_TEMP_TABLE muss auf 1 (true) festgelegt werden, um die Erstellung der eigenständigen Protokolldateitabellen in der temporären Datenbank "tempdb" zuzulassen.
Wenn Sie den Parameter SESSION_TEMP_TABLE auf 0 (false) festlegen, werden die Tabellen SDE_LOGFILES, SDE_LOGFILE_DATA und SDE_SESSION<SDE_ID> im Schema des verbindenden Benutzers erstellt. Hierfür muss der Benutzer über bestimmte Berechtigungen verfügen.
Erläuterungen zu diesen Parametern finden Sie unter DBTUNE-Konfigurationsparameter für SQL Server.
Erforderliche Benutzerberechtigungen zur Verwendung von eigenständigen Protokolldateien
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.
Wenn SESSION_TEMP_TABLE auf 1 festgelegt ist, benötigen SQL Server-Benutzer lediglich die CONNECT-Berechtigung zum Herstellen einer Verbindung mit der Datenbank. Wenn Sie den Parameter SESSION_TEMP_TABLE in der Tabelle SDE_DBTUNE jedoch auf 0 festlegen, benötigen Benutzer zusätzlich zur CONNECT-Berechtigung auch die CREATE TABLE-Berechtigung.
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 SQL Server 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. Erläuterungen zu diesen Parametern finden Sie unter DBTUNE-Konfigurationsparameter für SQL Server.
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 Geodatabase-Administrators zu verwenden. Daher wird für die Verwendung von Pools mit Protokolldateitabellen nur die BerechtigungCONNECT benötigt.
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.