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',会报告'no arcsde layer/State/Table/Ojbects Locks registered.
如果以上步骤执行了后依然报告数据被锁定,可到sde数据库中进行如下操作解除锁定;
1.执行如下sql语句,可得到表名包含“LOCK”的表的信息:
select * from tabs t where t.table_name like '%LOCK%';
2.执行如下sql语句,可得到,每张表的数据记录:
select t.*,t.rowid from LAYER_LOCKS t;
select t.*,t.rowid from STATE_LOCKS t;
select t.*,t.rowid from TABLE_LOCKS t;
select t.*,t.rowid from OBJECT_LOCKS t;
3.执行如下sql语句,可删除这些表的所有数据记录:
delete from LAYER_LOCKS;
delete from STATE_LOCKS;
delete from TABLE_LOCKS;delete from OBJECT_LOCKS;
主要是执行3步骤,2步骤可用来检验是否已全部删除数据成功,若有,则空间数据库将不会被锁定,即可在ArcMap进行删除服务数据