搞了辣么多年DBA,总有点小东西可以分享下,技术又不好,就分享点脚本吧
在编译或者修改过程、包、视图或函数等对象时,plsq一直卡死然后变灰色,×了重新来一遍还是一样。这种情况一般都是对象正在被job或程序调用在,你要找到它并且干掉它才能去编译或修改。
解决思路:我们要做的是精准打击一击致命,快速达到目的。
整体思路如下:
- 执行我需要重建或者编译的操作(此时会卡主白屏,不要管无视)
- 找到阻塞我的会话(在开一个窗口去找到阻塞会话)
- 干掉它(要下手狠直接disconnect那种,立马干掉)
over! over! is ok!
简单吧!是不是快准狠!如果你还停留在去找哪个job干的杀了它我在去执行我的操作,那你就out了。
下面言归正传,上脚本!!!
--找到阻塞我的会话
select blocking_session,a.* from v$session a where blocking_session is not null;
--生产杀会话的语句,然后确认干啥的(当然要业务授权确定可以杀,毕竟咱们不是野路子)
select 'alter system disconnect session ''' || sid || ',' || serial# || ''' immediate;',s.* from v$session s where sid='122';
--干干干干干干干它
alter system disconnect session '122,33429' immediate;是不是很简单,什么玩意编译卡死,我还以为多大个事呢。睡觉睡一半被吵醒,解决时间比开机时间都短,啥也不是。
最后修改时间:2024-04-28 15:46:49
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




