ArcSDE数据被锁定后的解锁方法

      今天,建了要素集后,建了几个要素类,突然再建一个要素类的时候,提示用户锁定,无法新建。

      用了文章二的方法后,还是不行,process_information表里有两条记录,手工删除一条后,另一条也删除了(自己感觉就是一个用户的两次登录时间),用sdemon命令也kill不掉。只有重启机器了,重启机器后问题依旧。

       不知道为什么会出现这种情况。服务器同时只能一个用户登录,怎么会有其他用户占用呢?

       解决方法:

        文章一、二都已经试过了,最后通过以下命令:

SQL> select * from sde.state_locks;

SQL> select * from sde.object_locks;

SQL> select * from sde.layer_locks;

SQL> select * from sde.table_locks;

           在table_locks表里找到了锁定的用户。但是手工删除第一次没用成功,连续删除多次,保证表里没有数据,搞定!但是原因还是没有找到。

---------------------------------------------------------------------------

文章一、

 ArcSDE数据被锁定后的解锁方法

在sde数据被锁定的情况下,编辑、创建featureclass或者注册版本的时候会报告:Lock request conflicts with an established lock。多半情况下关闭数据库连接可以解决这个问题,但有时候问题依然存在。

ArcSDE数据被锁定后的解锁方法

在sde数据被锁定的情况下,编辑、创建featureclass或者注册版本的时候会报告:Lock request conflicts with an established lock。多半情况下关闭数据库连接可以解决这个问题,但有时候问题依然存在。

解决的方法是:

1.关闭所有的ArcMap和ArcCatalog session。

2. 运行命令'sdemon -o kill -t all -p sde'

3. 运行命令'sdemon -o info -I locks' then it says 'no arcsde 会报告'no arcsde layer/State/Tabel/Ojbects Locks registered.

如果以上步骤执行了后依然报告数据被锁定,那么在sqlplus下查询lock表:

SQL> select * from sde.state_locks;

SQL> select * from sde.object_locks;

SQL> select * from sde.layer_locks;

SQL> select * from sde.table_locks;

如果有记录返回,那么手工删除这些表中的记录。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


文章二、

采用arcgis平台做GIS应用的人,可能偶尔碰到sde用户锁定(Arccatalog 或应用程序异常退出的时比较多)的问题,往往咱们解决的办法是重启sde服务。如果一个服务器上有多个连接时,重启服务会影响别人。下面小罗介绍另外二种办法:

方法一:

 

1,         sde用户身份登录到Oracle(如:PLSQL developer之类的东东),找到sde用户下面的process_information表;

2,           然后执行查询select t.sde_id,t.owner from process_information t sde_idsde的进程ID, owner 是连接的oracle用户

3,           owner中找到你要解除锁定的用户以及所对应的sde_id

4,           进入ArcSDE安装的服务器(如:192.9.100.185),进入cmd,执行sdemon如下:(下面这些就是sdemon常用操作,感兴趣的同事可以自己去摸索,当然也可以直接执行第5步,第4步主要是防止出错)

C:/Documents and Settings/Administrator>sdemon

ESRI ArcSDE System Monitor Utility  Thu Mar 05 16:15:26 2009

----------------------------------------------------------------------

sdemon -o status   {[-i <service>] [-s <server_name>] | [-H <sde_direc  [-q]
sdemon -o start    {[-i <service>] [-s <server_name>] | [-H <sde_direc[-p <DB_Admin_password>]
sdemon -o shutdown {[-i <service>] [-s <server_name>] | [-H <sde_direc [-p <DB_Admin_password>]  [-N]
sdemon -o pause    {[-i <service>] [-s <server_name>] | [-H <sde_direc  [-p <DB_Admin_password>]
sdemon -o resume   {[-i <service>] [-s <server_name>] | [-H <sde_direc  [-p <DB_Admin_password>]
sdemon -o info   -I {users | config | stats | locks | vars | insta] {[-i <service>] [-s <server_name>] | [-H <sde_direc
sdemon -o kill       -t {all | <pid>} [-p DB_Admin_password>] [-N] {[-i <service>] [-s <server_name>] | [-H <sde_direc 
5,           然后执行 sdemon -o kill -t 5459 这里的5459是上面从process_information表中查询出来的sde_id,然后要你输入sde的密码,完了之后确认ok,如下所示:
Please enter ArcSDE DBA password:
ArcSDE Instance esri_sde Process Management on testserver185 at Thu Ma:42 2009
-------------------------------------------------------Kill Server Task 5459?     ARE YOU SURE (Y/N)?: y

6,           搞定收工;

方法二:直接在Arcsde空间服务器上面,运行

sdemon -o info -I users -i esri_sde (sde服务名),如下所示:

C:/>sdemon -o info -I users -i esri_sde

ArcSDE Instance esri_sde Registered Server Tasks on hzgt-dbcenter at Sun Dec 13
17:39:46 2009
-------------------------------------------------------------------------
S-ID   User     Host:OS                          Started
----- -------- -------------------------------- ------------------------
635   SJZX     hzgt-appsrv:Win32                Sun Dec 13 17:36:24 2009
625   CJ_SGYX  hzgt-appsrv:Win32:XDR            Sun Dec 13 16:14:13 2009
626   SJZX     hzgt-appsrv:Win32                Sun Dec 13 16:14:15 2009
633   SJZX     hzgt-appsrv:Win32                Sun Dec 13 17:31:26 2009
636   SJZX     hzgt-appsrv:Win32                Sun Dec 13 17:37:06 2009
622   CJ_SGYX  hzgt-appsrv:Win32:XDR            Sun Dec 13 13:45:50 2009

然后kill掉某个连接进程:

C:/>sdemon -o kill -t 622
Please enter ArcSDE DBA password:

ArcSDE Instance esri_sde Process Management on hzgt-dbcenter at Sun Dec 13 17:41
:55 2009
-------------------------------------------------------------------------
Kill Server Task 622?     ARE YOU SURE (Y/N)?:y




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值