Der Befehl "sdemon"

Der Befehl "sdemon" dient hauptsächlich der Verwaltung und Überwachung von ArcSDE-Diensten. Mit einigen der Operationen können Sie jedoch auch direkte Verbindungen mit der Geodatabase verwalten oder überwachen.

Mit den Operationen "start", "shutdown", "pause" und "resume" werden normalerweise auf UNIX-Systemen installierte ArcSDE-Dienste verwaltet. Auf Microsoft Windows-Systemen installierte ArcSDE-Dienste werden meist über das Dialogfeld "Windows-Dienste" verwaltet.

Der ArcSDE-Dienst kann remote verwaltet werden, indem die Optionen für den Server (-s) und Service (-s) der Befehlszeile hinzugefügt werden. ArcSDE-Dienste auf UNIX-Betriebssystemen können durch eine auf einem Windows-Betriebssystem ausgeführte sdemon-Operation remote verwaltet werden. ArcSDE-Dienste auf Windows-Betriebssystem können jedoch nur durch eine auf einem anderen Windows-Betriebssystem ausgeführte sdemon-Operation remote verwaltet werden. Um einen auf einem UNIX-System installierten ArcSDE-Dienst remote zu verwalten, müssen zusätzliche Schritte ausgeführt werden. Weitere Informationen finden Sie unter Starten eines Remote-ArcSDE-Dienstes unter Linux oder UNIX und Beenden eines Remote-ArcSDE-Dienstes.

Der Geodatabase-Administrator verfügt über die erforderlichen Berechtigungen, um die ArcSDE-Dienst-Verbindungen zur Geodatabase zu trennen (Befehl "kill"). Um direkte Verbindungen mit der Geodatabase zu trennen, müssen dem Geodatabase-Administrator in den meisten Fällen jedoch zusätzliche Berechtigungen gewährt werden. Die erforderlichen Berechtigungen sind davon abhängig, welches Datenbankmanagementsystem (DBMS) zum Speichern der Geodatabase verwendet wird. Es handelt sich um die folgenden Berechtigungen:

Datenbankmanagementsystem

Erforderliche Berechtigungen

DB2

Der Benutzer muss über die DBADM-Berechtigung verfügen. Normalerweise ist dies beim SDE-Benutzer der Fall. Falls diese Berechtigung jedoch aufgehoben wurde, muss sie erneut erteilt werden, damit direkte Verbindungen mit der Geodatabase getrennt werden können.

Die Operation "kill" kann nicht mit "sdemon" verwendet werden, wenn DB2 unter dem Betriebssystem z/OS ausgeführt wird.

Informix

Der Benutzer muss der Informix-Benutzer sein.

Sie müssen Informix IDS 11 oder höher installiert haben, um die Operation "kill" mit dem Befehl "sdemon" verwenden und damit direkte Verbindungen mit der Geodatabase trennen zu können.

Oracle

Der SDE-Benutzer muss entweder über die Rolle "DBA" verfügen, oder es müssen ihm die Berechtigungen "ALTER SYSTEM" und "SELECT_CATALOG_ROLE" gewährt werden.

SQL Server

Wenn Sie eine DBO-Schema-Geodatabase verwenden, ist der Geodatabase-Administrator bereits Mitglied der Rolle "sysadmin" und verfügt über die Berechtigung, Datenbankverbindungen zu trennen. Wenn Sie eine SDE-Schema-Geodatabase verwenden, muss der Benutzer der festen Serverrolle "processadmin" (nicht der Rolle "sysadmin") hinzugefügt werden.

HinweisHinweis:

Mit der Operation "kill" können Sie keine direkten Verbindungen mit Geodatabases in PostgreSQL trennen.

Syntax

In den ArcSDE-Verwaltungs-Befehlszeilenwerkzeugen wird die UNIX-Befehlssyntax und -schreibweise mit folgenden Konventionen verwendet:

sdemon -o start {[-i {<service> | <port#>}] {[-s <server_name>] | [-H <sde_directory>]}
 [-p <GDB_admin_password>]

sdemon -o pause {[-i {<service> | <port#>}]
 [-s <server_name>] | [-H <sde_directory>]}

sdemon -o resume {[-i {<service> | <port#>}] 
{[-s <server_name>] | [-H <sde_directory>]} [-p <GDB_admin_password>]

sdemon -o shutdown {[-i <service>] {[-s <server_name>] | [-H <sde_directory>]} 
[-p <GDB_admin_password>] [-N]

sdemon -o status {[-i {<service> | <port#>}] 
{[-s <server_name>] | [-H <sde_directory>]} [-q] [-u <user_name>] 
[-p <user_password>] [-D <database_name>]

sdemon -o info -I <{users | users_long | config | stats | locks |vars | instances}> 
[-q] {[-i {<service> | <port#>}] {[-s <server_name>] | [-H <sde_directory>]} 
[-u <user_name>] [-p <user_password>] [-D <database_name>]

sdemon -o kill -t <{ all | pid }> [-p <GDB_admin_password>] [-N] 
{[-i {<service> | <port#>}] {[-s <server_name>] | [-H <sde_directory>]} 
[-u <user_name>] [-p <user_password>] [-D <database_name>]

sdemon -h

sdemon -?

Operationen

Bei einer Operation wird eine bestimmte Aufgabe im Zusammenhang mit dem Befehl ausgeführt. Sie wird mit der Option -o angegeben. Folgende Operationen stehen für den sdeservice-Befehl zur Verfügung:

Operation

Beschreibung

start

Startet den angegebenen ArcSDE-Dienst.

Nur der Geodatabase-Administrator kann diese Operation verwenden.

pause

Lässt keine neuen Clientverbindungen mit der Geodatabase zu, unabhängig davon, ob es sich um ArcSDE-Dienst- oder direkte Verbindungen handelt.

Vorhandene Verbindungen bleiben bestehen.

resume

Lässt neue Clientverbindungen mit der Geodatabase zu.

shutdown

Beendet den ArcSDE-Dienst sofort, wenn keine Server-Tasks ausgeführt werden.

status

Gibt Informationen zu Servicestatus und Verbindungen zurück.

info

Zeigt Informationen zu Benutzern, Konfigurationen, Statistiken, Sperren oder Umgebungsvariablen an.

Diese Operation kann von jedem Datenbankbenutzer ausgeführt werden.

kill

Beendet alle Verbindungen oder eine bestimmte Verbindung mit der Geodatabase.

Optionen

Für jede Operation stehen eine Reihe von Optionen zur Verfügung. Da den Optionen ein bestimmter Buchstabe vorangestellt ist, können sie in einer beliebigen Reihenfolge verwendet werden. Bei Optionen wird zwischen Groß- und Kleinschreibung unterschieden.

Je nach Operation sind bestimmte Optionen erforderlich, andere, die mit eckigen Klammern ([ ]) angegeben werden, jedoch nicht. Folgende Optionen stehen für den sdeservice-Befehl zur Verfügung:

Option

Beschreibung

-D

Datenbankname; wird bei Oracle nicht unterstützt.

-h oder -?

Verwenden Sie eine dieser Optionen, um sich die Syntax eines Befehls anzeigen zu lassen.

Verwenden Sie "-h" oder "-\?", wenn Sie den Befehl in einer C-Shell ausführen.

-H

Das ArcSDE-Stammverzeichnis (SDEHOME); wird nur benötigt, wenn die SDEHOME-Variable nicht festgelegt ist oder mehrere Dienste verwendet werden.

-i

Name oder Portnummer des ArcSDE-Dienstes; erforderlich, wenn nicht der Standardwert "esri_sde" verwendet wird.

-I

Diese Operation wird nur mit der Operation "info" verwendet und fragt die Konfiguration, Sperren, Statistiken, Benutzer, Umgebungsvariablen oder Benutzerschema-Geodatabases (Oracle) ab.

  • config: Zeigt die aktuellen Konfigurationsvariablen an.
  • locks: Zeigt Informationen zu Prozessen an, die Sperren aufrecht erhalten.
  • stats: Zeigt Prozessstatistiken für jede ArcSDE-Client/Server-Verbindung an. Funktioniert nur bei ArcSDE-Diensten und nur, wenn für den SERVER_CONFIG-Parameter "PROCSTATS" nicht der Wert "-1" festgelegt wurde.
  • users: Führt die Benutzerverbindungen mit der Geodatabase, den Verbindungstyp und damit verknüpfte Prozesskennungen auf. Für jede Verbindung gibt es einen Datensatz.
  • users_long: Führt die Benutzerverbindungen mit der Geodatabase, den Verbindungstyp und damit verknüpfte Prozesskennungen auf. Für jede Verbindung werden Informationen in einer Eigenschaftsliste zurückgegeben.
  • vars: Zeigt Umgebungsvariablen des ArcSDE-Dienstes an.
  • instances: Gibt alle Instanzen in der Oracle-Datenbank zurück.

-N

Es wird keine Überprüfung durchgeführt; die Operation beginnt sofort nach dem Aufrufen.

-o

Geben Sie eine Operation an.

-p

Diese Option wird mit den Operationen "start", "pause", "resume", "shutdown" und "kill" verwendet, um das Kennwort des Geodatabase-Administrators anzugeben. Bei den Operationen "status" und "info" kann es sich dabei um das Kennwort eines beliebigen Datenbankbenutzers handeln.

-q

Alle Titel und Warnungen werden unterdrückt.

-s

Der Hostname des ArcSDE-Servers (Standardwert: localhost).

-t

Wird mit der Operation "kill" verwendet, um eine der folgenden Optionen anzugeben:

  • all: Die Entfernung aller Verbindungen mit der Geodatabase wird erzwungen.
  • A pid: Es wird nur die Verbindung entfernt, die durch die mit der Option weitergegebene Prozesskennung identifiziert wird.

-u

Hierbei handelt es sich um den Datenbankbenutzernamen.

Bei Verwendung in Verbindung mit der Operation "kill" können Sie mit der Option "-u" einen Datenbankbenutzer angeben, der über die erforderlichen Berechtigungen zum Trennen einer Verbindung in der Datenbank verfügt. Da der Geodatabase-Administrator möglicherweise nicht über die erforderlichen Berechtigungen verfügt, handelt es sich bei diesem Benutzer nicht immer um den Geodatabase-Administrator.

Bei Verwendung mit der Operation "info" oder "status" ist dies der Benutzername eines beliebigen Benutzers mit Zugriff auf die Geodatabase.

Beispiele

Starten eines ArcSDE-Dienstes

In diesem Beispiel wird ein neuer ArcSDE-Service für Informix erstellt:

sdeservice -o create -d INFORMIX -p sde.space -i esri_inf 
-u informix -P sde.inf

Der Geodatabase-Administrator kann mit der Operation "start" einen ArcSDE-Dienst starten, der nicht ausgeführt wird. Der Administrator kann den Dienst lokal (durch Ausführung des Befehls auf dem Computer, auf dem der Dienst ausgeführt wird) oder remote starten. Wenn ein Dienst lokal auf einem Windows-Computer gestartet wird, können Sie diesen Vorgang durch das Menü "Windows-Dienste" ausführen, statt den Befehl "sdemon" mit der Operation "start" zu verwenden. Wenn ein Windows-Dienst remote gestartet wird, muss der Vorgang von einem anderen Windows-Computer mit Zugriff auf den Hostcomputer über das Netzwerk ausgeführt werden, und der Befehl muss den Namen des Hostcomputers und des Dienstes enthalten. Beispiel:

sdemon -o start -s banana -i arcsde -p spatial.data

HinweisHinweis:

Der Dienstname (in diesem Fall arcsde) muss verwendet werden, nicht die Portnummer. Bei Verwendung der Portnummer wird ein Fehler ausgegeben.

Sie können einen Dienst über die Befehlszeile auf einem lokalen Windows-Server starten. Wenn Sie nur über einen ArcSDE-Dienst verfügen, müssen Sie den Dienstnamen nicht angeben. Wenn Sie das Administratorkennwort nicht angeben, werden Sie zur Eingabe desselben aufgefordert.

sdemon -o start

Please enter ArcSDE DBA password:

ArcSDE instance esri_sde started Tues May 03 10:40:09 2011

Um einen Dienst auf einem UNIX- oder Linux-Server remote zu starten, können Sie entweder einen Windows-Computer oder einen anderen UNIX- oder Linux-Computer verwenden. Bevor Sie diesen Vorgang ausführen können, müssen Sie jedoch einige Einstellungen konfigurieren. Weitere Informationen finden Sie unter Festlegen der Variablen für den SDE-Betriebssystembenutzer unter Linux oder UNIX.

Nachdem Sie die Konfigurationsschritte ausgeführt haben, können Sie den Dienst mit der Operation "start" remote starten.

sdemon -o start -s bluebeard -i sde -p spatial.data

Dieses Beispiel zeigt das Starten eines lokalen Dienstes auf einem UNIX-Server:

sdemon -o start -i arcsde -p mineallmine

HinweisHinweis:

Bei der Start-Operation wird nicht der in der SDEINSTANCE-Variablen angegebene Dienst verwendet, selbst wenn diese angegeben wurde.

Anhalten einer Enterprise-Geodatabase

Mit der Operation "pause" wird verhindert, dass zusätzliche Clientverbindungsanforderungen verarbeitet werden. Von Client-Tasks kann weder direkt noch über einen ArcSDE-Dienst eine Verbindung mit der Geodatabase hergestellt werden, bis die Geodatabase fortgesetzt wird.

sdemon –o pause –i sde_service

Please enter ArcSDE DBA password:

ArcSDE instance sde_service on tool is Paused, no further connections will be allowed.

Durch die Operation "pause" wird ein Wert in der Tabelle "SERVER_CONFIG" geändert, woraufhin auch Benutzer keine direkte Verbindung mit der Geodatabase mehr herstellen können.

Fortsetzen einer angehaltenen Geodatabase

Verwenden Sie die Operation "resume", um die Verarbeitung von Clientverbindungsanforderungen wieder zuzulassen. Nach der Ausführung dieses Befehls kann von Client-Tasks eine Verbindung mit der Geodatabase hergestellt werden.

sdemon -o resume -i sde_service

Please enter ArcSDE DBA password:

ArcSDE instance sde_service on tool is Resuming, new connections will now be allowed.

Beenden eines ArcSDE-Dienstes

Verwenden Sie die Operation "shutdown", um einen ArcSDE-Dienst sofort zu beenden, wenn keine Server-Tasks ausgeführt werden. Wenn Server-Tasks ausgeführt werden, werden Sie dazu aufgefordert, die ausgeführten Tasks zu entfernen, bevor der Dienst beendet wird. Wenn Sie beim Herunterfahren die Option "-N" verwenden, werden alle Server-Tasks beendet, und das System wird sofort heruntergefahren. Beachten Sie, dass die Option "-i" in diesem Beispiel nicht angegeben wird. Da der Standard-Dienstname verwendet wird, muss sie nicht explizit genannt werden.

sdemon -o shutdown

Please enter ArcSDE dba password:

ArcSDE instance esri_sde on juke is shutdown

Ermitteln des Status eines ArcSDE-Dienstes

Mit der Operation "status" wird angegeben, ob ein ArcSDE-Dienst ausgeführt wird oder angehalten oder beendet ist und wie viele Verbindungen aktuell mit der Geodatabase bestehen. Im folgenden Beispiel wird der Status der Instanz "esri_sde" gemeldet. Es wird angezeigt, dass der Dienst ausgeführt wird (nicht beendet oder angehalten ist) und aktuell zwei Verbindungen vorhanden sind.

sdemon -o status

ArcSDE instance esri_sde Status on juke at Mon May 02 08:09:10 2011
----------------------------------------------------------
Server Connection Mode:              Accepting Connections
Active Server Processes:             6

Die Geodatabase wird angehalten, wenn ein Upgrade ausgeführt wird. Wenn Sie den Status zu dieser Zeit prüfen, wird die folgende Meldung zurückgegeben:

ArcSDE instance is currently paused for upgrade, no new connections allowed now

Abrufen von Informationen zu einer Enterprise-Geodatabase

Verwenden Sie die Operation "info", um Informationen zu Benutzern, der Konfiguration, Statistiken, Sperren oder Umgebungsvariablen für eine Enterprise-Geodatabase anzuzeigen. Bei diesem Beispiel werden Informationen zur Konfiguration des ArcSDE-Dienstes angefordert (die Ergebnisse werden nicht vollständig angezeigt). Da die Option "-i" nicht angegeben wurde, wird davon ausgegangen, dass es sich bei dem Dienst um den Standardwert (5151) handelt.

sdemon -o info -I config

ArcSDE I/O Manager Configuration Parameters
-------------------------------------------
ArcSDE Version               10.1
ArcSDE Server Build          123456
Underlying DBMS              PostgreSQL
Max. Server Connections      52
Root Path                    C:\arcgis
Temp Path                    C:\Temp
...

Bei diesem Beispiel werden Informationen zu Sperren in einer Geodatabase zurückgegeben:

sdemon -o info -I locks -i 99887 -u auser -p dpwd -D gis

ArcSDE Instance 99887 Lock Table Information on server1

No ArcSDE Layer Locks registered.

1 SDE Id:  12, State:  9, Lock Type: Shared State
1 ArcSDE State Lock(s) currently in use.

1 SDE Id:  12, table:  62, Lock Type: Shared Table
1 ArcSDE Table Lock(s) currently in use  

No ArcSDE Object Locks registered.

Bei diesem Beispiel werden Informationen zu den SDE- und Benutzerschema-Geodatabases in einer Oracle-Datenbank angefordert:

sdemon -o info -I instances

ArcSDE Instance sdeora's instances on blue at Wed May 04 11:45:33 2011
----------------------------------------------------------------
Instance    Type      Created                       Id
---------   ------    --------------------------    --------
SDE         MASTER    Wed Oct 27 09:35:02 2005      0
SDE2        PROJECT   Tues Apr 12 08:12:09 2011     1

TippTipp:

Alternativ können Sie mit SQL die Systemtabelle "INSTANCES" abfragen, um Informationen zu Benutzerschema-Geodatabases in Oracle zu erhalten.

Im folgenden Beispiel wird gezeigt, welche Benutzer eine Verbindung mit der Geodatabase hergestellt haben. In den zurückgegebenen Informationen steht "S-ID" für die SDE-ID des Servers, "S-PID" für die Betriebssystemprozess-ID des Servers, "User" für den Namen des Benutzers, unter dem die Verbindung hergestellt wurde, "Conn" für den Verbindungstyp (AS = ArcSDE-Dienst/Anwendungsserver oder DC = direkte Verbindung), "ClientMachine:OS" für den Namen des verbindenden Clientcomputers und das Betriebssystem, unter dem er ausgeführt wird, und "Started" für das Datum und die Uhrzeit der Verbindungsherstellung.

sdemon -o info -I users -i 8874 -s myserver

ArcSDE Instance 8874 Registered Server Tasks on myserver at Wed Jun 01 08:33:55 2011
---------------------------------------------------------------
S-ID   S-PID  User       Conn    ClientMachine:OS      Started
-----  ------ ---------- ------  --------------------  ----------
123    558899 JAKE       AS      dcli:Win32            Wed Jun 01 06:30:00 2011
124    558900 MOLLY      DC      flying:Win32:XDR      Wed Jun 01 07:00:00 2011

Mit der Option "users_long" werden diese Informationen folgendermaßen zurückgegeben:

sdemon -o info -I users_long -i 8874 -s myserver

ArcSDE Instance 8874 Registered Server Tasks on myserver at Wed Jun 01 08:34:26 2011
---------------------------------------------------------------
Server task ID: 123
Server task PID: 558899
Connection type: AppSrvr
User name: JAKE 
Client machine: dcli
Client OS: Win32  
XDR: no
Start time: Wed Jun 01 06:30:00 2011

Server task ID:  124  
Server task PID: 558900 
Connection type: Direct
User name: MOLLY
Client machine: flying
Ciient OS: Win32
XDR: yes
Start time: Wed Jun 01 07:00:00 2011

Entfernen von Verbindungen aus einer Geodatabase

Mit der Operation "kill" werden alle Verbindungen oder eine bestimmte Verbindung mit dem ArcSDE-Dienst getrennt. Es ist außerdem möglich, alle direkten Verbindungen oder eine bestimmte direkte Verbindung mit der Geodatabase zu trennen.

"kill" sollte nur verwendet werden, wenn ein Benutzerprozess nicht ordnungsgemäß beendet wurde oder nicht mehr reagiert. Es kann jedoch Situationen geben, in denen die Verbindungen aller Benutzer getrennt werden müssen, etwa, wenn einige Nachzügler noch angemeldet bleiben, nachdem Sie sie gebeten haben, die Verbindung zu trennen, bevor ein Upgrade ausgeführt wird.

In diesem Beispiel werden alle Verbindungen mit der Geodatabase getrennt:

sdemon -o kill -t all -i 4664 -p zeus

In diesem Beispiel wird eine bestimmte Verbindung getrennt. Die Verbindung hat die Prozess-ID (S-ID) 400.

sdemon -o kill -t 400 -i 50999 -p nolooking

9/11/2013