当前位置: 首页 > article >正文

达梦数据库ddl锁等待时间太短?解决方法

在日常工作中,一般不会允许停业务来进行DDL维护操作,因为停止业务的代价会比较高,对于复杂的系统,停机维护更是充满了不可控的隐患和危险。DM数据库可以采用延长锁超时的时间,以及开启快速加列、修改列、删除列提高DDL操作的成功率。DM数据库的DDL操作的锁超时时间缺省为10秒,手动进行动态调整,延长至60秒,以期尽可能的获取业务表的锁,具体操作如下:
参数名:

DDL_WAIT_TIME		10 	动态,会话级	   DDL操作的锁超时时间,以秒为单位。有效值围(0~604800

除此之外还可配合ALTER_TABLE_OPT参数共同使用,尤其在面对大表的时候,效果会出奇的好。参数ALTER_TABLE_OPT可以对加列、修改列、删除列操作进行优化,如下:

ALTER_TABLE_OPT		0	动态,会话级	是否对加列、修改列、删除列操作进行优化, 0:全部不优化; 1:全部优化; 2: 打开快速加列,对于删除列和修改列与1等效; 3: 打开快速加列,允许指定快速列默认值,其他功能与2时相同

动态参数,可以在数据库中实时设置和实时生效,不需要重启数据库:会话级参数,仅仅在当前会话有效,不会影响到其他会话。延长达梦数据库的DDL操作的锁超时时间至60秒,并开启快速加列、修改列、删除列:

在会话一的窗口内,延长达梦数据库的DDL操作的锁超时时间至60秒,再次回到会话二,争取在锁超时的60秒时间内获取到业务表的锁,就可以进行快速DDL维护操作:
会话1SQL> SP_SET_PARA_VALUE (1, 'DDL_WAIT_TIME', 60); 
DMSQL executed successfully 
used time: 8.970(ms). Execute id is 4101. 

SQL> SP_SET_PARA_VALUE (1, 'ALTER_TABLE_OPT', 2); 
DMSQL executed successfully 
used time: 8.316(ms). Execute id is 4102. 

会话2SQL> alter table TEST add column address varchar(100); 
executed successfully 
used time: 00:00:04.420. Execute id is 4103.

更多


http://www.kler.cn/a/148598.html

相关文章:

  • java导出pdf
  • SciPy:Python 科学计算工具包的全面教程
  • 实验一:自建Docker注册中心
  • vue3 pdf base64转成文件流打开
  • 金价大跌,特朗普胜选或成导火索
  • 学Linux的第八天
  • 万字详解,和你用RAG+LangChain实现chatpdf
  • 进程、线程以及进程与线程的区别
  • 内测分发平台是否支持应用的微服务化部署
  • 力扣二叉树--总结篇(1)
  • 乐观锁和悲观锁
  • 强化学习中的深度Q网络
  • C++设计模式之工厂模式(中)——工厂模式
  • Golang与MongoDB的完美组合
  • 【多线程】-- 05 Lambda表达式
  • [带余除法寻找公共节点]二叉树
  • Python入门学习篇(四)——if详解
  • Leetcode刷题之用队列实现栈(C语言版)
  • 【rust:tauri-app踩坑记录】dangerousRemoteDomainIpcAccess 不适用于IP地址,临时解决方案
  • bash编程 数组和for循环的应用
  • Unity性能优化技巧篇
  • QTextEdit 是 Qt 框架中的一个小部件(Widget),用于显示和编辑多行文本内容
  • ES6模块化导出
  • 使用jmx_exporter监控Kafka
  • Week-T11-优化器对比试验
  • 计算机毕业设计php+bootstrap小区物业管理系统