在Oracle体系结构中很重要的三个概念 数据库(database)、实例(instance)、会话(session)
http://cuug.com.cn/html/activityinfor_283_283_1054.html?wnlt
什么是会话(session)?
会话描述的角度是客户端,由客户端发起请求,服务器端响应回复。这种交互的过程就叫做会话(session)。
实验环境:Oracle 11g R2,专属服务器模式
专属服务器session和进程应该是1对1的关系,方便理解。
环境构建解释:
查看会话与进程当前是否为一对一的关系,如果不是排除问题。
SQL> select count(1) from v$session;
COUNT(1)
----------
24
SQL> select count(1) from v$process;
COUNT(1)
----------
27
查看哪些进程有问题:
SQL> select * from v$process
2 where addr in
3 (
4 select addr from v$process
5 minus
6 select paddr from v$session
7 )
8 ;
ADDR PID SPID PNAME USERNAME SERIAL# TERMINAL PROGRAM TRACEID TRACEFILE BACKGROUND LATCHWAIT LATCHSPIN PGA_USED_MEM PGA_ALLOC_MEM PGA_FREEABLE_MEM PGA_MAX_MEM
-------- ---------- ------------------------ ----- --------------- ---------- ---------------- ---------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ---------- --------- --------- ------------ ------------- ---------------- -----------
21C73344 1 0 PSEUDO d:\oracle\diag\rdbms\criss_db\crissdb\trace\crissdb_ora_0.trc 0 0 0 0
21C7E3C4 17 768 D000 SYSTEM 1 CRISS-PC ORACLE.EXE (D000) d:\oracle\diag\rdbms\criss_db\crissdb\trace\crissdb_d000_768.trc 734333 1009586 0 1009586
21C7EECC 18 6060 S000 SYSTEM 1 CRISS-PC ORACLE.EXE (S000) d:\oracle\diag\rdbms\criss_db\crissdb\trace\crissdb_s000_6060.trc 283953 485298 0 485298
这三个进程 第一个为伪装进程
另外两个为共享服务器模式下的进程,可通过修改相关参数去掉
SQL> show parameter shared_servers
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers integer
shared_servers integer 1
alter system set shared_servers = 0;
SQL> show parameter dispatchers
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dispatchers string (PROTOCOL=TCP) (SERVICE=crissdbXDB)
max_dispatchers integer
alter system set dispatchers = '';
然后重启数据库,相应的共享服务器模式的进程就没有了。
(我这里没有修改相关参数,有需要构建绝对的专属服务器模式可以照上述方法去做)
SQL> select count(1) from v$session;
COUNT(1)
----------
24
SQL> select count(1) from v$process where pid not in (1,17,18);
COUNT(1)
----------
24
登录建立会话的请求情况有如下几种:
一.服务名不对(用户名密码对错无关紧要,因为服务命不对)
C:\Users\Criss>sqlplus a/a@abc
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 6月 17 18:27:49 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
此时...挂在这里一段时间 然后抱如下信息
ERROR:
ORA-12154: TNS: 无法解析指定的连接标识符
请输入用户名:
其过程中我们执行查看进程数和会话数,数量始终不变
SQL> select count(1) from v$session;
COUNT(1)
----------
24
SQL> select count(1) from v$process where pid not in (1,17,18);
COUNT(1)
----------
24
- 大小: 31.8 KB
分享到:
相关推荐
在Oracle数据库管理中,有时我们需要了解某个特定会话(Session)正在执行哪些SQL语句。这在性能调优、问题诊断等场景下尤为重要。以下将详细介绍如何通过不同的方法来查看当前会话所执行的SQL语句及相关信息。 ###...
**Oracle Kill Session**是指在Oracle数据库中终止某个或某些会话(session)的操作。这项操作通常由DBA(数据库管理员)执行,用于解决因长时间运行的查询、锁定资源等问题导致的应用程序或系统性能下降的情况。通过...
### Oracle中已Killed Session的处理 #### 一、背景介绍 在Oracle数据库管理中,有时会遇到一些异常情况,比如某个Session长时间未响应或占用大量资源,这时可能需要管理员手动干预,通过`ALTER SYSTEM KILL ...
4. Oracle数据库进程数与会话数之间的关系:在Oracle 11g R2版本中,会话数和进程数有一个大致的数学关系:session=(1.5*processes+22)。这个公式可以用于估算在不调整会话数的情况下,进程数需要调整为多少。通常,...
### Oracle中Session与Processes参数的设置详解 #### 一、引言 在Oracle数据库管理过程中,合理设置系统参数对于确保数据库稳定运行至关重要。其中,“session”与“processes”两个参数直接影响到数据库能够同时...
在Oracle数据库管理中,处理死锁进程和释放状态为killed的session是一项关键技能,尤其对于维护数据库性能和稳定性至关重要。以下将详细阐述如何通过一系列步骤有效地关闭Oracle死锁进程,以及如何释放状态为killed...
在Oracle数据库管理与优化的过程中,`v$session`与`v$session_wait`视图扮演着至关重要的角色,它们提供了关于当前活动会话及其等待事件的详细信息,这对于诊断性能问题、理解数据库行为以及进行有效的资源管理至关...
2. 应用程序采用会话控制策略,限制用户连接数,但网络问题可能导致死进程,这些进程处于Inactive状态,使用`alter system kill session`命令后,进程状态变为killed,需要Pmon进程慢慢清理,而你可能需要更快的解决...
正确的做法是在数据库级别使用`ALTER SYSTEM KILL SESSION`命令来杀死有问题的会话。 #### 小结 在Oracle数据库中正确理解和使用锁机制是非常重要的,它可以有效避免并发访问时出现的数据不一致问题。通过对锁的...
总结来说,安全快速地批量删除Oracle数据库外部会话涉及到对`ALTER SYSTEM KILL SESSION`、`ALTER SYSTEM DISCONNECT SESSION`命令的熟练运用,以及可能的与操作系统交互。在执行这些操作时,务必小心谨慎,避免对...
Oracle性能监控SQL——监控当前会话执行的SQL及IO等信息 Oracle性能监控是数据库管理员的重要职责之一,通过监控数据库的性能,可以及时发现问题,避免数据库的宕机和性能下降。本文将介绍一些常用的Oracle性能监控...
在Oracle数据库管理过程中,有时需要重启Oracle服务或清除所有的会话(session),以解决某些特定问题或进行必要的维护工作。本文将详细介绍如何通过一系列命令来实现这一目标,并确保整个过程顺利无误。 #### 二、...
1、目的:在实际工作中,有时需将某个程序执行的所有SQL查出来,而程序在Oracle中与会话均可对应,故可通过本文脚本对会话的所有SQL进行跟踪,转换后即可还原程序对Oracle的操作。 2、适用场景:在源码无法拿到,但...
Oracle疑难:session无法完全删除问题
"Oracle 临时表(事务级、会话级)" Oracle 临时表是 Oracle 数据库中的一种特殊类型的表,它可以保存一个会话或事务中的数据。当会话或事务结束时,临时表中的数据自动清空,但是临时表的结构和元数据还存储在...
Oracle数据库连接与会话 Oracle数据库连接与会话是Oracle数据库管理系统中的两个核心概念。它们之间存在一定的关系,但又有着明显的区别。 连接是一种从客户端到数据库实例的物理通道,可以通过网络或IPC机制建立...
Oracle Session Monitor v1.0 是一个专为Oracle数据库设计的进程管理工具,它允许管理员设置特定的时间条件,以便自动监控并处理数据库中的会话。在Oracle数据库系统中,"会话"指的是用户与数据库之间的连接,它包含...
Oracle 数据库提供了大量的动态性能视图(Dynamic Performance Views),其中 `V$SESSION` 和 `V$SESSION_WAIT` 是两个非常重要的视图,它们能够帮助数据库管理员深入了解当前会话的状态以及等待事件的信息。...
### 清除Oracle中长时间持锁的Session #### 背景介绍 在Oracle数据库管理过程中,有时会遇到一些长时间占用资源的进程,这些进程可能会导致数据库性能下降甚至某些操作无法执行。通常情况下,如果一个session的状态...
在探讨Oracle数据库中如何有效地管理会话(session)时,本文档聚焦于Oracle Database 10g Enterprise Edition Version 10.2.0.2.0的64位版本。这一环境下的NLSRTL为10.2.0.2.0,同时采用相同版本的PL/SQL,以及TNS ...