当前位置:首页 » 数据仓库 » informix数据库锁表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

informix数据库锁表

发布时间: 2022-06-27 09:14:49

1. informix 锁表问题

去掉informix日志后再试试

2. informix 中设置表为行锁 但是通过c语言调用时老会出现锁表的情况

先用onstat -k看看怎么锁的,如果全表锁rowid就是0了,然后根据owner查具体session和事务

3. informix中隔离级别为last committed 时的锁等待机制

在读取数据前,数据库服务器尝试在记录上加共享锁。加锁前,需要先检查是否可以对对象加共享锁;如果可以加锁,则要保证要加锁的记录没有其他进程正在更新;当继续正在更新时,记录上有排他锁,此时我们不能对记录加共享锁。

4. informix数据库锁表怎么处理

第一种方法重启数据库。
第二种方法看那个用户锁表了用管理员断开该用户的连接

5. 如何解决informix数据库表操作提示的 -252 和 -113错误

锁表了,另一用户访问的时候对表加了互斥锁,等访问完释放后,这边才能访问,或者用脏读

6. Informix创建数据表脚本最后一句: extent size 512 next size 512 lock mode row 是什么意思谢谢指点!

hi,
extend size 指定的数据大小为创建该表的初始空间的大小 (单位为kbyte)

next size 指定的数据大小为当前该表的初始空间使用完毕后数据库表需要向数据空间申请空间大小的初始值(单位为kbyte)

lock mode row 意思是建立的表的锁模式是行级锁,同理还有页级锁(lock mode page)

以下博文对于如何计算extend size ,next size两个大小讲的很详细,供你参考
http://blog.csdn.net/bocodb/article/details/2823570

7. informix数据库死锁问题怎么解决。

select * from sysmaster:syslocks where tabname=lower('表名') 查出owner的号是多少 即sid
onstat -g ses sid 查询锁表的语句
onmode -z sid 杀进程

8. 求助,如何在informix设置跟ORACLE的for update nowait一样的锁

求助,如何在informix设置跟ORACLE的for update nowait一样的锁
select for update nowait的实现,如果数据库实现不了,其实应用做个超时控制就可以了,把sql执行放到超时控制代码里,具体情况要看开发语言了
测试:
-- builtin innodb
user@test 10:14:37>set innodb_lock_wait_timeout=1;
ERROR 1238 (HY000): Variable 'innodb_lock_wait_timeout' is a read only variable

-- plugin innodb 1.0.7
user@sbtest 10:15:35>select @@innodb_version;

9. 为什么informix数据库锁表重启后就坏了

应该将锁表的SQL语句合出来看看,看看能否优化
转:
锁表处理步骤:
1、onstat -ks|grep HDR+X //重查询是那个表被锁
address wtlist owner lklist type tblsnum rowid key#/bsiz
c1809510 0 d656e774 c181cb3c HDR+X 6002e1 2c602 0
需要关注lklist和type项,从上面来看tblsnum为6002e1(6292193十六进制转换成十进制)
的表被锁了。可以重查询是那个表被锁:
dbaccess :select * from systables where partnum='6292193'得到
tabname basetab_mvpn
owner smpmml
partnum 6292193
tabid 12813
rowsize 464
ncols 61
nindexes 1
nrows 2984
created 12/10/2002
version 839843846
tabtype T
locklevel R
npused 746
fextsize 16
nextsize 16
flags 0
2、onstat -u,将owner(address)为d656e774的线程找出来
address flags sessid user tty wait tout locks nreads nwrites
d656e774 Y--P--- 4261 smp20 - d6ad2330 0 180 99620 16
3、onstat -g sql d656e774可以将这个线程执行过的sql语句打印出来。
4、只要用informix用户执行onmode-z sessid干掉线程
onmode-z 4261
重点说明:onstat -g ses sessid找个进程PID来,然后ps -ef|grep Pid; kill -9 pid
在处理这些问题时还会遇到表被锁是因为该线程还没有执行完毕,此时就不能简单的 onmode -z杀线程