欢迎来到天天文库
浏览记录
ID:34725164
大小:134.57 KB
页数:5页
时间:2019-03-10
《oracle解锁杀系统进程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、oraclekillsession.delete600w(1.25G)数据1个多小时无结果分类:Oracle2012-01-0915:27250人阅读评论(0)收藏举报mx表中数据太多,查询变慢,备份去年2011年的,然后将2011年数据删掉。deletefromt_busi_presend_mxwherecjsj2、tes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;killsession之前:[sql]viewplaincopyprint?1.SQL>selectsum(bytes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;2.3.GBSTATUS4.-------------------5.0.00878906UNEXPIRED6.0.01403808EXPIRED7.0.78137207ACTIVESQL>selectsum3、(bytes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;GBSTATUS-------------------0.00878906UNEXPIRED0.01403808EXPIRED0.78137207ACTIVEkillsession之后:[sql]viewplaincopyprint?1.SQL>selectsum(bytes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;2.3.GBSTATUS4.--------4、-----------5.1.25329589UNEXPIRED6.0.01867675EXPIRED7.0.00097656ACTIVESQL>selectsum(bytes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;GBSTATUS-------------------1.25329589UNEXPIRED0.01867675EXPIRED0.00097656ACTIVE答:这个delete操作,会将删除的数据放到undo回滚段里面,如果回滚段空间不够,就会等待,你的回滚段只有14m,5、可用,所以这个删除操作停在这了。两个办法1等2把这个进程杀掉问:等应该是没有结果的吧因为数据有1.25G回滚段只有14M怎么等都等不来吧这种情况会有结果么?不是只有14M回滚段?答:不知道啥时候出结果,因为你的数据库一直在用。不是只有14m,而是只有14m可用。你现在没有删除成功,能回滚。杀进程吧。2.selectsid,serial#,logon_time,username,program,machine,eventfromv$sessionwherewait_class<>'Idle'orderbylogon_timedesc--查当前登录到数据库的会话ki6、llsession之前:我的电脑名:LEJER0FQOX6AT6H.所以上面第二行记录是我刚才执行的delete会话。killsession之后:[sql]viewplaincopyprint?1.SQL>selectsid,serial#,logon_time,username,program,machine,eventfromv$session2.2wherewait_class<>'Idle'3.3orderbylogon_timedesc1.4;2.3.SIDSERIAL#LOGON_TIMEUSERNAMEPROGRAMMACHINEEVENT4.--7、-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------5.6.SQL>SQL>selectsid,serial#,log8、on_time,user
2、tes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;killsession之前:[sql]viewplaincopyprint?1.SQL>selectsum(bytes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;2.3.GBSTATUS4.-------------------5.0.00878906UNEXPIRED6.0.01403808EXPIRED7.0.78137207ACTIVESQL>selectsum
3、(bytes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;GBSTATUS-------------------0.00878906UNEXPIRED0.01403808EXPIRED0.78137207ACTIVEkillsession之后:[sql]viewplaincopyprint?1.SQL>selectsum(bytes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;2.3.GBSTATUS4.--------
4、-----------5.1.25329589UNEXPIRED6.0.01867675EXPIRED7.0.00097656ACTIVESQL>selectsum(bytes/1024/1024/1024)GB,statusfromdba_undo_extentsgroupbystatus;GBSTATUS-------------------1.25329589UNEXPIRED0.01867675EXPIRED0.00097656ACTIVE答:这个delete操作,会将删除的数据放到undo回滚段里面,如果回滚段空间不够,就会等待,你的回滚段只有14m,
5、可用,所以这个删除操作停在这了。两个办法1等2把这个进程杀掉问:等应该是没有结果的吧因为数据有1.25G回滚段只有14M怎么等都等不来吧这种情况会有结果么?不是只有14M回滚段?答:不知道啥时候出结果,因为你的数据库一直在用。不是只有14m,而是只有14m可用。你现在没有删除成功,能回滚。杀进程吧。2.selectsid,serial#,logon_time,username,program,machine,eventfromv$sessionwherewait_class<>'Idle'orderbylogon_timedesc--查当前登录到数据库的会话ki
6、llsession之前:我的电脑名:LEJER0FQOX6AT6H.所以上面第二行记录是我刚才执行的delete会话。killsession之后:[sql]viewplaincopyprint?1.SQL>selectsid,serial#,logon_time,username,program,machine,eventfromv$session2.2wherewait_class<>'Idle'3.3orderbylogon_timedesc1.4;2.3.SIDSERIAL#LOGON_TIMEUSERNAMEPROGRAMMACHINEEVENT4.--
7、-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------5.6.SQL>SQL>selectsid,serial#,log
8、on_time,user
此文档下载收益归作者所有