oracle连接-会话-进程
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;
CREATE PROFILE kyc_pro LIMIT IDLE_TIME 2;
alter user kyc_acc profile kyc_pro;
select * from dba_users where profile='KYC_PRO';
show parameter resource;
select * from dba_profiles where profile like 'K%';
[oracle@cu-dbs-152 admin]$ cat sqlnet.ora
SQLNET.EXPIRE_TIME = 3
==================================
一个session可以反应很多东西
同一个连接,如果打开非共享sql工作表,在会话表中就会出现一条。如果连接断开,并很快连接上,会重用sid,但serial#会增加,不会减少
SADDR, SID, SERIAL#
000000069E7C75F8 1886 231
0000000682B2FDC8 2828 191
0000000686EEB1E8 4243 189
select * from v$session
where schemaname like 'KYC%';
where osuser='ag1';
where paddr='0000000BC94696B8';
根据session的paddr就是process的addr,查找pid
select * from v$process
where addr='0000000685BC4730';
根据session的obj#就是dba_objects的object_id,查找是哪一张表(对象)
select * from dba_objects
where object_id='74120';
根据session的
select * from dba_extents
where block_id='382042';
select * from dba_extents
where file_id=5 and segment_name like '%TRA%';
根据session的port就是系统的端口号,查询进程的端口号
根据session的row_wait_file#查询是哪个数据文件
select * from v$datafile where file#=5;
process的spid就是系统的pid
ps -ef|grep spid
lsof -i -P -n | grep "20721 oracle"
=========================================
查看当前会话的session ID 有如下三种方法:
desc v$mystat
select * from v$mystat where rownum=1;
select userenv('sid') from dual;
userenv('sessionid') 返回的是session audit id.其对应v$session 的audsid字段。
在session 连接到数据库的时候,会从SYS.AUDSES$序列中获取一个audid 分配给session。
select sid from v$session where audsid=userenv('sessionid');
这里返回了3个值,我们直接查看userenv('sessionid') 值:
select userenv('sessionid') from dual;
对于internal用户(’/as sysoper’ 和 ‘/as sysdba’)和后台进程,其对应的AUDID 为0.
在Oracle 10g中,如果AUDID的值为0,表明是internal 用户,如果AUDID 值是4294967295,那么就表明是用SYS 用户直接连接的。
我们这里返回三个结果是把所有SYS 用户的session都返回了,所以这种方法有时的准确性并不高。
sid与serial#的关系
sid 会重用,但是同一个SID被重用时,serial#会增加,不会重复。
比如说你在10:00时发现有一个SID 为10 ,serial#为100的session 不正常,想杀掉他,要是直接用kill sid 10 ,而同时这个session 主动退出,新session近来 而又正好用了 10这个SID (这时新session的serial#不会=100,只会比100高),就会发生误杀的情况。所以Oracle要求我们在杀session时,必须同时指定sid和serial#.
从另外一个角度上说,sid 在同一个instance的当前session中是一个unique key, 而sid ,serial#则是在整个instance生命期内的所有session中是unique key。(不考虑serial#超过最大值,重用的情况)
例如之前我需要执行alter system kill session '147, 33306';
执行之后,我还在同一个PL/SQL DEV的SQL WINDOW中重新做一个查询,就会又产生一个SID=147的SESSION,但是此时的SERIAL#变为33308了。
################################
sessions=(1.1*process+5)
show parameter processes
show parameter sessions
alter system set processes=1000 scope=spfile;
shutdown immediate;
startup;
查询数据库当前进程的连接数:
select count(*) from v$process;
查看数据库当前会话的连接数:
select count(*) from v$session;
查看数据库的并发连接数:
select count(*) from v$session where status='ACTIVE';
查看当前数据库建立的会话情况:
select sid,serial#,username,program,machine,status from v$session;
查询数据库允许的最大连接数:
select value from v$parameter where name = 'processes';
==============================
以上这个RMAN报错例子就是由于防火墙设置timeout原因,当client和server在timeout时间内没有数据传输的时候,会话就会被防火墙断开。而设置SQLNET.EXPIRE_TIME参数,使其小于防火墙的timeout时间,就可以避免这一情况的发生。
oracle连接-会话-进程的更多相关文章
- oracle锁表查询,资源占用,连接会话,低效SQL等性能检查
查询oracle用户名,机器名,锁表对象 select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, l.os_user ...
- Oracle体系结构之进程
Oracle体系结构之进程 一.概述 Oracle中的每个进程都要执行一个特定的任务(或者一组任务),每个进程都会为自己分配内存(PGA)来完成它的任务.一个Oracle实例主要有以下3类进程: (1 ...
- oracle连接的三个配置文件(转)
Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器 ORACLE当中 ...
- Oracle彻底杀掉进程
kill session 是DBA经常碰到的事情之一.如果kill 掉了不该kill 的session,则具有破坏性,因此尽可能的避免这样的错误发生.同时也应当注意,如果kill 的session属于 ...
- ORACLE 的前后台进程
关于oracle用户进程,服务进程,后台进程 用户进程(User Process) 是一个需要与Oracle Server交互的程序 运行于客户端 当用户运行某个工具或应用程序(如SQL*Plus)时 ...
- Oracle连接odbc数据源
Oracle连接odbc数据源 说明 oracle连接ODBC数据源有两种方式,hsodbc和dg4odbc,简单说dg4odbc是hsodbc的升级.两种连接方法大致一样,现将连接步骤说明如下: 检 ...
- ORACLE连接SQLSERVER
一.实验(实验成功) 1.实验目标:ORACLE连接SQLSERVER以及查询数据 2.搭建的环境: oracle 9i 9.0.2.0.1 地址:192.168.40.139 sql2000 的数据 ...
- Oracle 连接 Visual Studio 的工具
Oracle 连接 Visual Studio 的工具 ① ② ③
- oracle连接和执行流程总结
参考关于oracle连接及一个事务的完整流程分析的资料,做整理如下 参考资料: http://blog.csdn.net/wyzxg/archive/2010/08/16/5815335.aspx h ...
随机推荐
- SQL进阶系列之1CASE表达式
配置环境: 下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows 使用数据库: C:\Po ...
- Spring4 -03 -Dependency Injection (依赖注入) : 代码体现/配置xml/测试
DI:中文名称:依赖注入 英文名称((Dependency Injection) DI 是什么? 3.1 DI 和IoC 是一样的,差不多一样的技术和模板! 3.2 当一个类(A)中需要依赖另一个类( ...
- JDK源码那些事儿之ConcurrentLinkedDeque
非阻塞队列ConcurrentLinkedQueue我们已经了解过了,既然是Queue,那么是否有其双端队列实现呢?答案是肯定的,今天就继续说一说非阻塞双端队列实现ConcurrentLinkedDe ...
- test20190803 夏令营NOIP训练19
60+100+0=160 贪婪大陆 面对蚂蚁们的疯狂进攻,小FF的Tower defence宣告失败--人类被蚂蚁们逼到了Greed Island上的一个海湾.现在,小FF的后方是一望无际的大海, 前 ...
- 行为型模式(四) 观察者模式(Observer)
一.动机(Motivate) "观察者模式"在现实生活中,实例其实是很多的,比如:八九十年代我们订阅的报纸,我们会定期收到报纸,因为我们订阅了.银行可以给储户发手机短信,也是&qu ...
- 示例 NetworkWordCount
import org.apache.spark.storage.StorageLevel import org.apache.spark.streaming.{Seconds, StreamingCo ...
- 配置jdk和环境变量
1.官网下载jdk1.8,默认安装即可 2.JAVE_HOME:jdk安装目录 path:C:;%JAVA_HOME%\bin; C:;%JAVA_HONE%\jre\bin;(当dos界面输入命令 ...
- SpringBoot官方文档学习(一)SpringApplication
Springboot通过main方法启动,在许多情况下,委派给静态SpringApplication.run方法: public static void main(String[] args) { S ...
- C#在WebApi 中使用Redis 的方法
首先Startup public void ConfigureServices(IServiceCollection services) { services.AddControllers(); // ...
- apt-get linux 虚拟机安装vm tools下载
要重启机器才行D:\Program Files (x86)\linux.iso解压tar zxvf VMwareTools-9.9.0-2304977.tar.gz