免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2473 | 回复: 9
打印 上一主题 下一主题

寻求kill session快速方法(不shutdown) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-02 19:19 |只看该作者 |倒序浏览
一,当我查询
select count(*),osuser from v$session group by osuser;

发现一个用户连接数非常大
二,想通过
select sid,serial#,username,machine from v$session;
得到sid和serial#后来kill掉它们
alter system kill session 'sid,serial#';

但查询时候该session仍然存在
通过toad发现这个session其实已经被打上了killed的标记了,但连接还是没有释放

三,通过查询
select pro.spid from v$session ses,v$process pro where ses.sid=167 and ses.paddr=pro.addr;
发现与操作系统对应的spid找不到,所以也无法通过操作系统来kill掉

四,想找到为释放连接的sql语句
select sid,user_name,sql_text from v$open_cursor order by sid;
发现都是非程序连接,都是set nls_lang 等操作,估计很长时间没释放了

请教一个快速释放连接的方法
谢谢


查了下,90%的语句都是
/* Formatted on 2005/03/04 14:27 (Formatter Plus v4.8.0) */
SELECT VALUE
FROM nls_instance_parameters
WHERE parameter = 'NLS_DATE_FORMAT'


这个数据库是由其他数据库exp备份过来的,且版本也有所不同,是否在这个方面的问题,是否有解决方法

论坛徽章:
0
2 [报告]
发表于 2005-03-03 02:17 |只看该作者

寻求kill session快速方法(不shutdown)

It's normal. You will need to wait until PMON rollback the uncommited transactions and clear up the system resource, and that may take a long time.

论坛徽章:
0
3 [报告]
发表于 2005-03-03 09:27 |只看该作者

寻求kill session快速方法(不shutdown)

[quote]原帖由 "sshd"]It's normal. You will need to wait until PMON rollback the uncommited transactions and clear up the system resource, and that may take a long time.[/quote 发表:



明白,但这个已经影响到程序连接数据库了,轻易停止数据库运行不是个好的解决方法,难道就没任何办法了吗?
那就要理解为数据库的功能不完善了,呵呵

论坛徽章:
0
4 [报告]
发表于 2005-03-03 09:35 |只看该作者

寻求kill session快速方法(不shutdown)

that's the way how oracle works.
if you shutdown the database and restart it, the transaction that you killed still needs to rollback.

论坛徽章:
0
5 [报告]
发表于 2005-03-03 20:10 |只看该作者

寻求kill session快速方法(不shutdown)

难道真的没有一些强制性的方法吗?不知道是程序问题还是数据库的share_pool太小,时间久了这些session也不释放掉,只能重新启动数据库解决

论坛徽章:
0
6 [报告]
发表于 2005-03-04 12:23 |只看该作者

寻求kill session快速方法(不shutdown)

顶,仍然没有好的办法

论坛徽章:
0
7 [报告]
发表于 2005-03-04 12:33 |只看该作者

寻求kill session快速方法(不shutdown)

帮顶~哈~帮不上忙~

论坛徽章:
0
8 [报告]
发表于 2005-03-04 12:49 |只看该作者

寻求kill session快速方法(不shutdown)

还是有办法的。
select spid from v$process p where not exists (select spid from v$session s where s.paddr=p.addr);

kill -9 spid

论坛徽章:
0
9 [报告]
发表于 2005-03-04 14:29 |只看该作者

寻求kill session快速方法(不shutdown)

AGAIN:

no matter what you do (kill session from within sqlplus, or kill -9 the OS processes), oracle need to spend time to rollback the uncommitted transaction in the session you killed.

If the transaction has run 10 hours before you kill it, oracle WILL spend almost the same amount of time to roll it back.

NO EXCEPTIONS.

论坛徽章:
0
10 [报告]
发表于 2005-03-04 14:31 |只看该作者

寻求kill session快速方法(不shutdown)

查了下,90%的语句都是
/* Formatted on 2005/03/04 14:27 (Formatter Plus v4.8.0) */
SELECT VALUE
  FROM nls_instance_parameters
WHERE parameter = 'NLS_DATE_FORMAT'


这个数据库是由其他数据库exp备份过来的,且版本也有所不同,是否在这个方面的问题,是否有解决方法
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP