【问题场景】
在执行数据库操作时,若遇到如下错误提示:
YAS-02024 lock wait timeout, wait time 0 milliseconds
说明当前操作因锁等待时间超出限制而失败。
【原因解析】
YashanDB 默认锁等待时间设置为 0 秒,意味着若资源被占用,数据库不会等待直接报错。因此,在并发较高或操作依赖资源未及时释放的场景下,极易触发此类错误。
【处理方法】
延长锁等待时间
可通过以下语句手动调整等待时间(单位为秒):
alter system set DDL_LOCK_TIMEOUT = 300;
修改后请确保变更已同步至 config/yasdb.ini 配置文件中。
排查并终止占用锁资源的会话
查询当前锁信息:
select * from v$lock;
获取锁会话的 SID 和 SERIAL:
select * from dv$session where sid = xxx;
手动杀掉问题会话:
`
alter system kill session 'SID,SERIAL';`
如需批量终止锁定会话:
select 'ALTER SYSTEM kill SESSION '''||SID||','||SERIAL# || ''';'
from v$session t1. v$locked_object t2
where t1.sid = t2.SESSION_ID;
【适用版本】
所有版本均适用此处理方法。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。