发
- 发生锁超时时,如何从错误信息检测数据库状态并找到解决方法?
1) 检查错误信息:
锁超时是正常的数据库行为。多个事务之间存在竞争时,等待时间超过设置的最大时间,则引起锁超时。(默认的等待时间是5秒。可以使用”set lock time n seconds”重新设置间隔时间,也可以在dmconfig.ini中设置关键词DB_LTimO并重启数据库。)
我们可以通过以下方式检测锁状态:
一种方法是在dmconfig.ini中设置关键词
DB_LGDIR=<你的日志路径>
DB_LGLCK=1
DB_LGSVR=3 ;( 1......6)
如果用户想获得更多信息,可以设置DB_LGSVR>3,并在目录中检查有关锁超时的错误信息,锁超时发生时,该目录由DB_LGDIR指定。
查看以下错误信息:
文件“db_name_data.LOG”:
LOG_TIME,BEG_TIME,STATE,RETCODE,EXE_TIME,SV_FUNC,CONNECT_ID,USERNAME,LOGIN_TIME,LOGIN_ADDR,STMT_ID,ERROR_ARG,OTHER_INFO,SQL_CMD
"2010/06/12 15:01:29","2010/06/12 15:01:24","X", 1102,5.01,"EXECUTE ", 3868,"SYSADM","2010/06/12 14:59:56","local",0,": Object ID : 2.18.12 ,Connection ID : 1976, LKMode : X ...