暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
磐维数据库_长事务引起数据库资源争用问题的情况说明 - 付慧军.pdf
202
6页
11次
2025-06-25
免费下载
关于长事务引起数据库资源争用问题的情
况说
1.1. 背景说明
目前侧业系统磐维上线段时以后出现性能题,
A
delete
操作出现积压
B
省业务连接超时等。经过一系列的跟踪定位,分析结论为业务存在
长事务
/
未提交事务导致磐维数据库死元组无法正常清理或数据库资源争用,进而影响数据
库性能。目前已就详细的原因说明以及解决措施形成一致结论。
1.2.
原因分析
1.2.1. 业务连接超时的原因分析
1
数据库中有多个线程需要同时读取或修改其他线程的状态时如检查进程是否活跃、
获取进程事务信息),通过获取全局锁用于避免数据不一致问题。
2
TransactionIdInProgress
函数遍历速度下降,引起数据库全局锁争用。
3
、大量未提交事务又会造成死元组无法及时清理,进而引起数据库频繁发起
VACUUM
操作,
VACUUM
操作会频繁检查快照等信息做死元组回收,所以需要判断活跃事务等因此
又会多次进入判断活跃事务的函数,然后导致整个数据库进程竞争全局锁更加严重。
4
、由于业务访问数据库时需要先建立连接,而建立连接也会获取全局锁,在全局锁竞
争严重的情况下就会出现业务连接超时的情况。
获取全局锁(排他锁
/
共享锁)的主要场景如下
1
、事务提交,回滚,会获取全局锁(排他模式)
2
、建立连接,断开连接的过程中,会获取全局锁锁(排他模式)
3
执行查询的
parse
阶段,
bind
阶段,
execute
阶段都会获取全局锁(共享模式,获取
事务快照时使用)
4
、执行更新操作(
DML
)时,既会获取全局锁共享锁(获取事务快照),也会获取全
局锁排他锁(提交事务),同时会获取全局锁共享锁,进行元组可见性判
5
vacuum
操作,会获取全局锁共享锁,进行元组可见性判断
Oracle
相同场景下没有出现问题的原因
1
Oracle
的历史数据版本存储在
UNDO
表空间,且没有
VACUUM
操作,所以不会导致
全局锁争用严重问题。
1.2.2. 业务积压问题的原因分析
1
、磐维库的存储擎采
ASTORE
(追加更)模,在进行
update/delete
操作
时会伴随死元组产生,数据库本身可以通 autovaccum 作定期清理死元组(关于存
储引擎模式的说明可以参考 1.4 章节)。
2、数
OldestXmin)推进,进而导致全局最小事务号OldestXmin)之后事务产生的死元组
无法被清理。而长事务产生的原因有如下几点:
A. 业务场景需要,如一些批量数据处理操作
B. 业务程序未遵 ODBC 事务使用规范要求在执行 select 语句后没有显示提交(关于
ODBC 事务使用规范可参考 1.5 章节)
C. 异常情况:如连接泄露,会话中断等。
3、数据库中死元组一直得不到清理,会导致数据表膨胀严重,进而业务程序在获取
据时需要扫描更多的数据行才能返回结果,前端表现为业务处理积压。
Oracle 相同场景下没有出现问题的原
1Oracle 的历史数据版本存储在 UNDO 表空间,事务不提交不阻塞清理历史版本数据
2Oracle 中要查询的历史版本数据被清理后,前端会返回 ORA-01555: snapshot too old
相关报错。
1.2.3. 原因总结
根据以上问题的分析可以看出,其共同起因是数据库中存在过多长事务或者未及时提交
的事务,进而引发数据库的内部资源争用问题,最终影响业务运行。
1.2.4. 长事/提交事务的隐患
长事务在任何
OLTP
数据库中均存在性能隐患,不符合
OLTP
数据库的使用规范和最佳实
践要求。主要有以下问题:
1表空间使用增ASOTRE 模式下长事务会使数据的旧版本存活更长时间,因为在所有依赖
该数据的事务完成之前,数据库无法对过时的版本进行垃圾回收。这会积累撤销数据导致撤销
日志和版本存储的空间膨胀,直至资源耗尽。USOTRE 模式下长事务会导致 Undo 表空间持续增
长,即使事务结束空间也不释放。
2数据库性能下降:累积多个版本并管理撤销数据会增加写操作的开销。数据库必须维护和遍
历版链,这会降低写性(如维的死元无法理导表膨问题Oracle undo
据构造 CR 块增加资源开销)
3数据库并发度降低:长事务会持有锁或使版本保持活跃状态从而阻止其他事务访问或修改
相同的数据。这会降低并发度,可能导致其他用户产生竞争和阻塞。(如某省遇到的无法建立新连
接问题,也是由于长事务过多,新连接无法获取资源锁间接导致)
of 6
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文档被以下合辑收录

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜