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 风格的命令语法和标记:
- - <字母> 或 - <词>:指定命令选项,例如 -o、-a 或 -interleave
字母区分大小写,因此输入正确的大小写十分重要。
- 用大于号和小于号 (< >) 括起的文本:所需参数;用合适的值替换。
例如,-u <DB_user_name> 可替换为 -u mlogin。
- 竖线 ( | ):相互排斥的参数的列表;从列表中选择一个参数。
- 方括号 ([ ]):可选参数;如果未提供任何值,将使用默认值。
- 大括号 ({ }):括起用竖线符号分隔的选择列表
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) 的信息。
|
-N | 不执行任何验证;调用后立即开始操作。 |
-o | 指定操作。 |
-p | 对于 start、pause、resume、shutdown 和 kill 操作,此选项用于指定地理数据库管理员的密码。对于 status 和 info 操作,可以是任意数据库用户的密码。 |
-q | 禁止所有标题和警告。 |
-s | ArcSDE 服务器主机名(默认为 localhost) |
-t | 与 kill 操作一起使用,以指定下列选项之一:
|
-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