十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1、首先查找目标用户的进程
创新互联公司专注于钦州企业网站建设,响应式网站开发,商城网站制作。钦州网站建设公司,为钦州等地区提供建站服务。全流程按需网站建设,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
select sid,serial# from v$session where username='用户名称';
使用此语句会返回一个进程列表,每行有两个数字,然后用数字替代下面的sid和serial
2、alter system kill session 'sid,serial';
通过select查询的语句可能会出现多行记录。
3、也可以批量生成语句
SELECT 'alter system kill session ' || '''' ||t.sid ||','||t.SERIAL#|| '''' FROM v$session t WHERE t.USERNAME='用户名称';
连接第一台服务端未成功的原因应该是没有配置好listener,或者listener
没有打开。
如果想正常关闭,那么最好是:先手动断开所有数据库连接(外部链接,比如访问等),关闭监听(防止再次产生外部链接),然后杀掉所有正在执行的数据库进程(数据库内部的一些,比如正在执行的执行计划等,主进程别杀啊),然后关闭外围服务,最后再用immediate关闭数据库。这样能快一些,而且相对而言数据库会正常,不会因为断开外部链接,等待进程结束等问题等待时间超长。,当然也只是快一些而已,如果数据库很大,那么还是会很慢。
其他的shutdown abort,也是一个关闭数据库的方法,不过oracle本身也不推荐,因为每次abort后数据库可能会有这样那样的问题。
再baoli一些的,就是直接关机器,关电源了。
使用profile来限定idle_time,有一个缺点是该会话只是被标记为skipped,但只有在再次连接时真正把会话释放。也就是说,达到idle_time规则限制的会话重连时,会报一个被数据库断开的异常,再次连接时才能成功,同时未真正断开之前,该会话也占用sessions参数的限制。
最好是使用存储过程或者操作系统脚本来配合杀会话,才能做到真正立刻释放连接。