网站首页 > 技术文章 正文
概述
最近因业务需要,需删除某张大表1600万数据,然后开了并行(开并行会锁表)删除,但在业务需要作业时却还没删除完,只能临时选择回滚,导致后面一段时间段系统频繁出现卡顿现象。
下面记录下分析过程。
1、查看告警日志
从告警日志可以发现Transaction recovery: lock conflict caught and ignored,这个问题实际上之前也分享过,只不过侧重的是怎么找出相关的对象,需要dump跟踪文件来进行分析,对于实际的意义可能不是很大,下面分享下另外两个sql,起码心里有底。
2、查看恢复时使用的回滚段
select b.name useg, b.inst# instid, b.status$ status, a.ktuxeusn xid_usn, a.ktuxeslt xid_slot, a.ktuxesqn xid_seq, a.ktuxesiz undoblocks, a.ktuxesta txstatus from x$ktuxe a, undo$ b where a.ktuxecfl like '%DEAD%' and a.ktuxeusn = b.us#;
这里可以看到总的UNDO块和undo对象。
3、查看恢复进度
对于我们更关心的是什么时候才回滚完,可以查询以下sql.
select ktuxeusn USN, ktuxeslt Slot, ktuxesqn Seq, ktuxesta State, ktuxesiz Undo from x$ktuxe where ktuxesta <> 'INACTIVE' and ktuxecfl like '%DEAD%' order by ktuxesiz asc;
这里只能选择等着慢慢恢复,看机器性能,我这边是1分钟1600多block,3个小时就差不多UNDO恢复正常了,告警也随之消失。
通过上面的案例,当大家碰到大事务回滚这种问题时,就可以知道怎么去看当前数据库回滚的情况了。更重要的是明白:不要随随便便回滚...
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
- 上一篇: 深入理解MySQL 事务 mysql事务概念
- 下一篇: Oracle和Mysql的事务隔离级别对比
猜你喜欢
- 2024-10-21 事务的4个特性以及事务的隔离级别有哪些?
- 2024-10-21 【干货】Oracle 9i、10g、11g版本的区别
- 2024-10-21 「一文搞懂」MySQL事务实现原理 mysql事务的概念
- 2024-10-21 java之——数据库事务 java数据库编程中真正对事务进行控制的是
- 2024-10-21 Oracle数据库扩展语言PL/SQL之自治事务
- 2024-10-21 PostgreSQL、Oracle/MySQL和SQL Server的MVCC实现原理方式对比
- 2024-10-21 「每天一个知识点」什么是分布式事务
- 2024-10-21 这可能是最漂亮的Spring事务管理详解
- 2024-10-21 一个简单的小案例带你理解mysql中的事务
- 2024-10-21 oracle运维必备知识解析 oracle运维面试题及答案
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)