DDL操作加锁超时时间(ddl_timeout)
📄字数 578
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
DDL操作加锁超时时间(单位:ms)。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | INTEGER |
| 默认值 | 2000 |
| 取值范围 | [100, 600000] |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 该参数控制系统判定执行 DDL 请求超时的超时时间。
- 支持 ddl_timeout 的 DDL 场景有:
| ddl_timeout 的应用场景 |
|---|
| 1. 创建/删除/修改/重建索引; 2. 创建/删除/重编译包; 3. 创建/删除/重编译过程; 4. 创建/删除/编译/重编译视图; 5. 创建/删除/重编译用户自定义类型(UDT); 6. 删除序列值; 7. 删除/修改/重命名/清理/回收/闪回表; 8. 使能/删除触发器; 9. 删除/修改库; 10. 创建/删除/修改存储域; 11. 流式导入; |
注意
- ddl_timeout 可避免任务线程执行 DDL 请求时长时间处于等锁被阻塞的状态,当线程被阻塞时长超过设定的时间阈值后,系统会中止任务,上报 E14011 异常。
示例
sql
-- 在线修改 ddl_timeout
SQL> SET ddl_timeout TO 2000;
-- 在线查看 ddl_timeout
SQL> SHOW ddl_timeout;
/*
* 场景一:
* 1. ddl_timeout = 2000;
* 2. 存在另一个事务持有对 db 库的库级 X 锁;
*/
SQL> ALTER DATABASE db RENAME TO db2; -- 等候 2000 ms 后,报 E14011 加锁超时异常。