十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
��匠�焙蟛呕岜唤饪��茄�蓟嵩斐捎τ貌僮鞅蛔枞�?梢砸設ralce管理员权限用户登录Oracle数据,查询到被锁的对象,然后杀除指定的会话。用下面的语句查询被锁的对象,可以带上更多约束条件,如schemaname等更精确的匹配。
创新互联公司服务项目包括建瓯网站建设、建瓯网站制作、建瓯网页制作以及建瓯网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,建瓯网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到建瓯省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
alter system kill session 'sid, serial#' 如上面查出来的一条记录的sid是53, serial#为663,就执行以下的语句alter system kill session '53,663' 如果要一次性杀死多个会话,一个一个填写sid和serial#十分的繁琐,应该在查询被锁对象的同时拼凑出多条的杀会话语句,以分号分隔,一起复制下来,然后就可以批量的执行了。 1.SELECT'alter system kill session '''|| c.sid ||''||','|| c.serial# ||''';',2. a.object_id, a.session_id, b.object_name, c.*3. FROMv$locked_object a, dba_objects b, v$session c4. WHEREa.object_id = b.object_id5. ANDa.SESSION_ID = c.sid(+)6. ANDschemaname ='Unmi'7. ORDERBYlogon_time
1.用oracle用户登录linux系统,如果是远程登录的话,最好用xmanager,以便开启图形界面,如果是本地登录,最好启用linux图形界面。
2.然后打开terminal,执行命令
netca,开启监听配置图形界面
3.后面就和windows系统里的一样了
oracle死锁时杀进程的方法:
第一步:尝试在sqlplus中通过sql命令进行删除,如果能够删除成功,则万事大吉。但通常情况下,出现死锁时,想通过命令行或者通过oracle的管理工具删除有死锁的session,oracle只会将该session标记为killed,但无法清除掉,往往需要通过第二步在操作系统层级进行删除。
第二步:
1、select xidusn, object_id, session_id, locked_mode from v$locked_object; --查死锁的对象,获取其SESSION_ID。
2、select username,sid,serial# from v$session where sid=29; --根据上步获取到的sid查看其serial#号。
3、alter system kill session '29,57107'; --删除进程,如已经删除过,则会报ora-00031的错误;否则oracle会将该session标记为killed状态,等待一段时间看能否会自动消失,如长时间消失不掉,则需要做后续步骤。
一些ORACLE中的进程被杀掉后,状态被置为"killed",但是锁定的资源很长时间不释放,有时实在没办法,只好重启数据库。现在提供一种方法解决这种问题,那就是在ORACLE中杀不掉的,在OS一级再杀。
先用lsnrctl进入监听模式
c:userslsnrctl
LSNRCTLset log_status off (此时便可删除监听日志文件listener.log,然后再新建一个listener.log,日志文件位置:D:\oracle\administrator\diag\tnslsnr\WIN-D6HG09P8C45\listener\trace下面)
LSNRCTLset log_status on
意思就是先停止监听日志输出。删除后再开启日志暑促
$ORACLE_HOME/NETWORK/ADMIN/lisener.ora文件删除,监听就删除了
或者你使用netca工具创建删除都可以
建议:不熟悉就使用netca工具操作
监听器
在DOS下打lsnrctl
然后打stop,回车
Oracle服务
在DOS下打
SQLPLUS /nolog
conn sys/XXX as sysdba
shutdown immediate