在做DDL操作的时候,我们可能会遇到被阻塞的情况,此时如果必须快速完成DDL操作,那么可以参考如下办法处理:
思路:检查阻止当前会话DDL变更系统进程号,杀之。
以重命名表为例:
窗口1: SQL> show parameter ddl; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ ddl_lock_timeout integer 0 enable_ddl_logging boolean FALSE SQL> alter table TEST rename to TEST_0712;--这个可以是其它DDL操作 alter table TEST rename to TEST_0712; * ERROR at line 1: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
复制
窗口1查看自身会话ID:
SQL> select distinct sid from v$mystat; SID ---------- 110
复制
窗口2:
窗口2检查阻塞的会话:
SQL> select b.INST_ID,b.sid,b.paddr,b.sql_id,b.event,b.MACHINE,b.PROGRAM,'kill -9 '||c.spid from gv$session a,gv$session b ,gv$process c where a.sid=110 and a.FINAL_BLOCKING_INSTANCE=b.INST_ID and a.FINAL_BLOCKING_SESSION=b.sid and b.paddr=c.addr and b.inst_id=c.inst_id; 例如结果返回了kill -9 8888
复制
窗口2根据输出的结果执行:
linux系统: kill -9 8888 windows系统: C:\Users\Administrator>orakill oradb 8888
复制
回到窗口1执行
SQL> alter session set ddl_lock_timeout=300; Session altered. SQL> SQL> SQL> alter table TEST rename to TEST_0712; Table altered.
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
热门文章
oracle19c rac grid安装报错的快速处理libasmclntsh19.ohso libasmperl19.ohso client_sharedlib' of makefile
2023-03-15 13150浏览
奇怪的ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
2021-11-26 8369浏览
oracle19c rac+asm-->oracle 19c single+fs的adg搭建(实战于生产)
2021-11-11 5840浏览
(1)一次失败的割接经历:麒麟linux6.5+oracle 12c rac打PSU补丁
2022-09-21 5758浏览
gpu p2p多卡训练运行不正常问题
2023-03-09 5394浏览