从地理数据库 (geodatabase) 中移除直接连接

有时,某连接可能会挂起,从而使一个或多个地理数据库资料档案库表中的某记录呈孤立状态。发生此类情况时,您可能需要强制结束连接。要执行此操作,请使用 sdemon 管理命令。

执行 sdemon 命令的 kill 操作可移除与地理数据库的连接并清除 SDE_process_information 表和锁表中的所有记录。

注注:

PostgreSQL 中的 ArcSDE 地理数据库当前不支持此操作。

sdemon 命令的 kill 操作的语法如下所示:

sdemon –o kill –t {all | <pid>} [–D <database_name>] [-s <datasource>] 
-i <direct_connect_string> –u <user_name> –p <password>

-t 选项用于指定是移除与地理数据库的所有连接 (all) 还是只移除特定连接 (<pid>)。多数情况下,应输入地理数据库资料档案库中所剩某特定连接的进程标识符 (pid)。

-i 选项用于建立直接连接。有关正确语法的信息,请参阅通过 ArcSDE 命令直接连接到 SQL Server 中的地理数据库 (geodatabase)

如果要连接到除 Oracle 以外的任何数据库,请使用 -D 选项输入数据库的名称。(如果要连接到 Oracle,请不要指定 -D 选项。)

如果要连接到远程服务器上的数据库,请使用数据库所在服务器的名称指定 -s 选项。

使用 -u 和 -p 选项可指定数据库用户的用户名与密码,该数据库用户要具有删除与数据库的直接连接的足够权限。有关这些权限的信息,请参阅 SQL Server 中地理数据库 (geodatabase) 的用户权限

警告警告:

不建议删除活动的(与孤立的连接相对)连接。如果连接的用户正在编辑数据,则尤为如此。如果用户尚未保存,则断开连接后所有未经保存的编辑内容均会丢失,并且可能会损坏数据。

步骤:
  1. 打开 MS-DOS (Windows) 或 shell(UNIX 或 Linux)命令提示符窗口。
  2. 获得有关已连接用户的信息,方法是使用 SE_connection_get_instance_users 函数、查询 SDE_process_information 表或者执行 sdemon 命令的 info 操作及 user 或 users_long 选项。有关如何使用 sdemon 命令获得连接列表的说明,请参阅显示连接会话
  3. 在返回的信息中,识别出要移除的连接的 SDE ID。对于 sdemon -o info 的 users 选项,为 S-ID。对于 users_long 选项,为 Server task ID。对于 SE_connection_get_instance_users 函数,为 svr_id。如果查询 SDE_process_information 表,则为 sde_id。
  4. 输入 sdemon 命令的 kill 操作及本主题中之前所述相应选项。使用 -t 选项为要移除的连接指定 SDE ID 的值。
提示提示:

有关 sdemon 命令的详细信息,请参阅随企业级 ArcGIS Server 的 ArcSDE 组件附送的《ArcSDE 管理命令参考》。


7/10/2012