sdemon 命令

sdemon 命令主要用于管理和监控 ArcSDE 服务,但也有几个操作用于管理或监控与地理数据库的直连。

start、shutdown、pause 和 resume 操作通常用于管理 UNIX 系统中安装的 ArcSDE 服务。Microsoft Windows 系统中安装的 ArcSDE 服务一般通过“Windows 服务”对话框管理。

还可以通过在命令行中包含服务器 (-s) 和服务 (-i) 选项来远程管理 ArcSDE 服务。UNIX 操作系统的 ArcSDE 服务可通过在 Windows 操作系统中执行 sdemon 操作来进行远程管理。但是,远程管理 Windows 操作系统的 ArcSDE 服务只能通过从另一个 Windows 操作系统执行 sdemon 操作来实现。要远程管理 UNIX 系统中安装的 ArcSDE 服务,还需要额外的步骤。有关详细信息,请参阅启动 Linux 或 UNIX 上的远程 ArcSDE 服务停止远程 ArcSDE 服务

地理数据库管理员具有断开(取消)与地理数据库的 ArcSDE 服务连接所必需的权限。但是,要断开与地理数据库的直连,在大多数情况下还必须为地理数据库管理员授予更多权限。所需的权限取决于用来存储地理数据库的数据库管理系统 (DBMS)。这些权限如下:

数据库管理系统

所需的权限/授权

DB2

用户必须具有 DBADM 授权。sde 用户通常具有此授权,但如果此授权已撤消,则必须重新授予以取消与地理数据库的直连。

如果使用 z 操作系统 (z/OS) 上的 DB2,则无法通过 sdemon 使用 kill 操作。

Informix

用户必须为 informix 用户。

必须具有 Informix IDS 11 或更高版本才能通过 sdemon 命令使用 kill 操作来断开与地理数据库的直连。

Oracle

sde 用户必须具有 DBA 角色或被授予 ALTER SYSTEM 和 SELECT_CATALOG_ROLE。

SQL Server

如果使用 dbo 方案地理数据库,地理数据库管理员已经是 sysadmin 的成员,能够取消数据库连接。如果使用 sde 方案地理数据库,用户必须添加至 processadmin 固定服务器角色(非 sysadmin 角色)。

注注:

不能使用 kill 操作断开与 PostgreSQL 中的地理数据库的直连。

使用语法

ArcSDE 管理命令行工具使用符合以下约定的 UNIX 风格的命令语法和标记:

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 -?

操作

实施与命令有关的特定任务并通过 -o 选项进行指定的操作。sdeservice 命令提供以下操作:

操作

描述

start

启动指定的 ArcSDE 服务。

只有地理数据库管理员可使用此操作。

pause

不允许建立与地理数据库的新客户端连接,包括 ArcSDE 服务和直连。

保留现有连接。

resume

允许建立与地理数据库的新客户端连接。

shutdown

如果未运行任何服务器任务,则立即关闭 ArcSDE 服务。

status

报告服务状态和连接信息。

info

显示有关用户、配置、统计、锁定或环境变量的信息。

所有数据库用户均可执行此操作。

kill

终止与地理数据库的所有连接或指定连接。

选项

每个操作都有一组选项。由于选项前面带有特定字母,因此可以用任意顺序传递选项。选项区分大小写,因此请确保使用正确的大小写。

根据操作的不同,一些选项是必需的,一些则不是,使用方括号 ([ ]) 进行指示。sdeservice 命令提供以下选项:

选项

描述

-D

数据库名称,Oracle 中不支持此选项

-h 或 -?

使用任一选项可查看命令的语法。

如果从 C shell 运行命令,则使用 -h 或 -\?。

-H

ArcSDE 主目录 (SDEHOME);仅在未设置 SDEHOME 变量或使用多个服务时需要此选项

-i

ArcSDE 服务名称或端口号;在未使用默认值 esri_sde 的情况下需要此选项

-I

仅与 info 操作一起使用,该操作会查询有关配置、锁定、统计、用户、环境变量或用户方案地理数据库 (Oracle) 的信息。

  • config:显示当前配置变量
  • locks:显示有关保持锁定状态的进程的信息
  • stats:显示每个 ArcSDE 客户端/服务器连接的进程统计;仅适用于 ArcSDE 服务,并且仅在 SERVER_CONFIG 参数 PROCSTATS 设置为除 -1 之外的值时有效
  • users:列出到地理数据库的用户连接、连接类型和关联的进程标识符;每个连接 = 一条记录
  • users_long:列出到地理数据库的用户连接、连接类型和关联的进程标识符;信息以每个连接的属性列表的形式返回
  • vars:显示 ArcSDE 服务环境变量
  • instances:返回 Oracle 数据库中的所有实例

-N

不执行任何验证;调用后立即开始操作。

-o

指定操作。

-p

对于 start、pause、resume、shutdown 和 kill 操作,此选项用于指定地理数据库管理员的密码。对于 status 和 info 操作,可以是任意数据库用户的密码。

-q

禁止所有标题和警告。

-s

ArcSDE 服务器主机名(默认为 localhost)

-t

与 kill 操作一起使用,以指定下列选项之一:

  • all:强制删除地理数据库的所有连接
  • pid:仅删除通过选项传递的进程标识符所标识的连接

-u

这是数据库用户名。

与 kill 操作一起使用时,-u 选项用于指定数据库中具有取消连接所需权限的数据库用户。由于地理数据库管理员可能没有所需的权限,所以此用户并不总是地理数据库管理员。

与 info 或 status 操作一起使用时,这是有地理数据库访问权限的任意用户的用户名。

示例

启动 ArcSDE 服务

以下示例针对 Informix 创建一个新的 ArcSDE 服务:

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

地理数据库管理员可使用 start 操作启动未运行的 ArcSDE 服务。管理员可本地(在将要运行服务的计算机上执行命令)或远程启动服务。如果在 Windows 计算机上本地启动服务,可通过“Windows 服务”菜单执行此操作,而不是使用 sdemon 命令及 start 操作。如果远程启动 Windows 服务,则必须从另一台可通过网络访问主机的 Windows 计算机上执行,并且命令必须包括主机和服务名称。例如:

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

注注:

必须使用服务名称(在本例中为 arcsde)而不是端口号。使用端口号将导致错误。

可以在本地 Windows 服务器上从命令行启动服务。如果只有一个 ArcSDE 服务,则无需指定服务名称。如果未指定管理员密码,系统将提示您指定。

sdemon -o start

Please enter ArcSDE DBA password:

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

要远程启动 UNIX 或 Linux 服务器上的服务,可以从 Windows 或另一台 UNIX 或 Linux 计算机上执行。不过在执行操作之前,必须先进行一些配置。请参阅为 Linux 或 UNIX 上的 sde OS 用户设置变量

完成配置步骤之后,即可使用 start 操作远程启动服务。

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

以下示例说明了如何启动 UNIX 服务器上的本地服务:

sdemon -o start -i arcsde -p mineallmine

注注:

start 操作不使用 SDEINSTANCE 变量中指定的服务,即使已进行定义。

暂停企业级地理数据库

使用 pause 操作可防止处理任何额外的客户端连接请求。在恢复地理数据库之前,任何客户端任务都无法直连或通过 ArcSDE 服务连接到地理数据库。

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.

pause 操作会更改 SERVER_CONFIG 表中的值,同时阻止用户直连到地理数据库。

恢复暂停的地理数据库

使用 resume 操作允许再次处理客户端连接请求。执行完此命令后,客户端任务即可连接到地理数据库。

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.

停止 ArcSDE 服务

如果未运行任何服务器任务,可使用 shutdown 操作立即停止 ArcSDE 服务。如果正在运行服务器任务,系统将提示您在关闭之前移除正在运行的任务。如果在关闭时使用 -N 选项,所有服务器任务会立即停止,且系统会立即关闭。请注意,本例中未指定 -i 选项;由于使用了默认服务名称,因此不需要明确指明。

sdemon -o shutdown

Please enter ArcSDE dba password:

ArcSDE instance esri_sde on juke is shutdown

发现 ArcSDE 服务的状态

status 操作会报告 ArcSDE 服务是正在运行、已暂停还是已停止,以及当前已建立多少个到地理数据库的连接。以下示例将报告 esri_sde 实例的状态。其显示服务正在运行(未停止或暂停)并且当前有两个连接。

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

执行升级时会暂停运行地理数据库。如果在此时检查状态,将返回以下消息:

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

获取有关企业级地理数据库的信息

要显示有关企业级数据库的用户、配置、统计、锁定或环境变量的信息,可使用 info 操作。以下示例将请求有关 ArcSDE 服务配置的信息(仅显示部分结果)。由于未指定 -i 选项,系统会假设服务为默认值 (5151)。

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
...

以下示例返回有关地理数据库中锁定的信息:

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.

在以下例中,请求了 Oracle 数据库中 sde 和用户方案地理数据库的信息:

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

提示提示:

此外,还可以使用 SQL 查询 INSTANCES 系统表,以获取有关 Oracle 中用户方案地理数据库的信息。

以下示例显示了连接到地理数据库的用户。在返回的信息中,S-ID 是服务器的 SDE-ID,S-PID 是服务器的操作系统级进程 ID,User 是建立连接的用户名,Conn 是连接类型(AS = ArcSDE 服务/应用程序服务器,DC = 直连),ClientMachine:OS 是连接客户端计算机的名称和正在运行的操作系统,Started 是发起连接的日期和时间。

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

以下为使用 users_long 选项返回的相同信息:

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

从地理数据库中删除连接

kill 操作会断开与 ArcSDE 服务的所有连接或指定连接,也可以用于取消与地理数据库的所有或指定直连。

仅当用户进程错误关闭或挂起时,才应该使用取消操作。但是,可能存在您必须断开所有用户的情况,例如,在升级前,您要求用户断开连接,但仍有个别用户保持登录状态。

在以下示例中,将断开与地理数据库的所有连接:

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

在以下示例中,将取消指定连接。该连接正在使用进程 ID (S-ID) 400。

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

9/15/2013