作者:eygle
出处:
http://www.eygle.com/blog日期:October 27, 2005
本文链接:
http://www.eygle.com/archives/2005/10/oracle_howto_kill_session.html« Why My server Down? | Blog首页 | Oracle HowTo:如何在Oracle10g中启动和关闭OEM »
很多时候由于异常或程序错误会导致个别进程占用大量系统资源,需要结束这些进程,通常可以使用以下命令Kill进程:
alter system kill session 'sid,serial#';
|
但是此命令释放资源极为缓慢,具体可以参考:
Oracle中Kill session的研究.
为了更快速的释放资源,通常我们使用如下步骤来Kill进程:
1.首先在操作系统级kill进程
2.在数据库内部kill session
这样通常可以快速中止进程,释放资源。
今天就遇到这样一个案例,其他朋友在数据库里kill session,可是长时间仍无效果:
[oracle@danaly ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Oct 27 11:09:50 2005
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
SQL> select sid,username,status from v$session;
SID USERNAME STATUS
---------- ------------------------------ --------
....
154 SCOTT KILLED
...
30 rows selected.
|
那按照我前面提到的步骤,首先查询得到该session对应的OS进程号:
SQL> select 'kill -9 '||spid from v$process where addr = (select paddr from v$session where sid=&sid);
Enter value for sid: 154
old 1: select 'kill -9 '||spid from v$process where addr = (select paddr from v$session where sid=&sid)
new 1: select 'kill -9 '||spid from v$process where addr = (select paddr from v$session where sid=154)
'KILL-9'||SPID
--------------------
kill -9 22702
SQL> !
|
在操作系统级kill该进程:
[oracle@danaly ~]$ ps -ef|grep 22702
oracle 22702 1 0 Oct25 ? 00:00:02 oracledanaly (LOCAL=NO)
oracle 12082 12063 0 11:12 pts/1 00:00:00 grep 22702
[oracle@danaly ~]$ kill -9 22702
[oracle@danaly ~]$ ps -ef|grep 22702
oracle 12088 12063 0 11:12 pts/1 00:00:00 grep 22702
[oracle@danaly ~]$ exit
exit
SQL> select sid,username,status from v$session;
SID USERNAME STATUS
---------- ------------------------------ --------
...
154 SCOTT KILLED
...
30 rows selected.
SQL> select sid,serial#,username from v$session where sid=154;
SID SERIAL# USERNAME
---------- ---------- ------------------------------
154 56090 SCOTT
|
再次在数据库中kill该session,并指定immediate选项:
SQL> alter system kill session '154,56090' immediate;
System altered.
SQL> select sid,serial#,username from v$session where sid=154;
no rows selected
|
分享到:
相关推荐
Oracle 杀死死锁进程是数据库管理员经常遇到的问题,本文将介绍解决 Oracle 杀死死锁进程的方法。 在 Oracle 中,死锁是指两个或多个会话在等待对方释放资源,从而导致互相阻塞的情况。死锁可能会导致数据库性能...
标题“CPU占用高”指的是计算机或服务器的中央处理器在运行过程中消耗资源过多,导致系统响应变慢或无法正常处理任务的现象。这种情况可能是由于多种因素引起的,包括但不限于恶意软件、资源密集型应用程序、系统...
### 减少Oracle内存占用 在Windows XP环境下运行Oracle 10g时,可能会遇到数据库占用内存过高的问题。这不仅会影响系统的稳定性,还可能导致其他应用程序因可用内存不足而受到影响。本文将详细介绍如何通过合理设置...
### Oracle Server Process 进程内存消耗分析 ...总之,理解Oracle Server Process 进程的内存消耗机制对于提高数据库性能、合理规划资源分配具有重要意义。希望本文能够为相关领域的技术人员提供有价值的参考和帮助。
### 快速杀死Oracle的Session方法详解 在Oracle数据库管理中,有时会遇到需要迅速终止某个或某些Session的情况。这通常发生在系统响应缓慢、需要紧急关闭特定进程时,或者是在执行`shutdown immediate`命令但发现...
标题:“Oracle Timesten内存数据库介绍” 描述:“内存数据库应用介绍,不错的东西,请大家赶紧下载呀” 标签:“数据库 内存 Oracle” 知识点详述: ### 一、内存数据库概述 内存数据库是一种主要或完全依赖...
内容概要:本文详细介绍了 Oracle 19c 服务器的体系结构,涵盖了 Oracle 服务器的构成、内存结构、进程结构和数据库组成四个主要部分。具体内容包括 Oracle 实例和数据库的构成、系统全局区 SGA 和程序全局区 PGA 的...
- **作业队列**:控制并行查询的数量,避免过度占用 CPU 资源。 - **资源管理器计划**:为不同的工作负载分配特定的 CPU 时间份额。 ### 备份与恢复策略的最佳实践 备份与恢复是确保数据安全的重要手段。Oracle 9i...
本文介绍了Oracle进程导致CPU 100%的具体解决方法。
内存数据库与Oracle数据库的数据同步设计与实现.pdf
第三讲:Oracle实例中后台进程管理 第四讲:Oracle数据数据文件管理 第五讲:Oracle数据库在线日志文件管理 第六讲:Oracle数据库归档日志文件管理 第七讲:Oracle数据库控制文件管理 第八讲:Oracle数据库参数文件...
当用户抱怨数据库响应缓慢时,通常会发现ORACLE.EXE进程在任务管理器中占用几乎100%的CPU资源。然而,根据你的了解,数据库活动是正常的,没有新的作业在运行。在这种情况下,深入分析导致高CPU使用的Oracle进程或...
Oracle 杀进程是数据库管理员在日常工作中经常遇到的问题,特别是在数据库性能不佳或会话被锁死的情况下。因此,了解如何杀掉 Oracle 会话非常重要。本文将从 Oracle 数据库系统和操作系统两个方面介绍如何杀掉会话...
### 查看Oracle数据库的连接数以及用户、数据库锁定进程 #### 一、查询Oracle的连接数 1. **查询总的连接数** 使用以下SQL命令可以查询Oracle数据库中的总连接数: ```sql SELECT COUNT(*) FROM v$session; `...
Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发和维护。Oracle数据库以其高效、稳定和强大的功能在金融、电信、医疗、政府等多个领域得到广泛应用。本篇...
Oracle数据库是一个复杂的分布式系统,由多个组件协同工作以提供高效的数据...了解Oracle的内存组件和进程有助于优化数据库性能,通过调整内存大小、连接类型和进程数量,可以更有效地管理资源,提升数据库响应速度。
Oracle数据库的内存结构和进程结构是其高效运行的关键组成部分。Oracle实例是用户访问数据库的核心途径,它由系统全局区(SGA)和一系列后台进程组成。在操作系统层面,实例通过ORACLE_SID标识,而在Oracle数据库...
当Oracle数据库的CPU耗尽内存时,这通常意味着数据库的进程或操作正在过度占用系统资源,导致系统响应速度减慢,甚至可能引发系统崩溃。这种情况可能是由于多种因素引起的,包括但不限于: 1. **SQL查询优化不当**...
### Oracle数据库巡检报告知识点详解 #### 一、操作系统参数检查 ##### 1.1 检查数据库CPU、I/O、内存性能 - **CPU性能检查**:通过监控工具或命令行工具(如`top`、`vmstat`、`iostat`等),检查服务器的CPU使用...