oracle 服务器进程中LOCAL=NO /YES

转自:http://blog.csdn.net/tianlesoftware/article/details/5675404

1. 先看2个命令执行的结果:

[oracle@hfcc-svr-newccsdb1 ~]$ ps -ef | less

UID        PID  PPID  C STIME TTY          TIME CMD

oracle     469     1  0 May28 ?        00:00:05 oraclenewccs (LOCAL=NO)

oracle     495     1  1 May28 ?        05:57:23 oraclenewccs (LOCAL=NO)

oracle     863     1  1 May28 ?        05:30:25 oraclenewccs (LOCAL=NO)

oracle    1209     1  0 May28 ?        01:19:29 oraclenewccs (LOCAL=NO)

oracle    1479     1  0 May28 ?        01:30:50 oraclenewccs (LOCAL=NO)

oracle    1583     1  0 May28 ?        01:32:50 oraclenewccs (LOCAL=NO)

oracle    2234     1  0 May28 ?        00:16:05 oraclenewccs (LOCAL=NO)

oracle    2285     1  0 May28 ?        00:17:24 oraclenewccs (LOCAL=NO)

oracle    2479     1  0 May28 ?        00:20:57 oraclenewccs (LOCAL=NO)

oracle    2891     1  0 May28 ?        00:03:55 oraclenewccs (LOCAL=NO)

oracle    3213     1  0 May28 ?        00:02:55 oraclenewccs (LOCAL=NO)

oracle    3447     1  0 May28 ?        00:03:58 oraclenewccs (LOCAL=NO)

oracle    3460     1  0 May28 ?        00:00:23 oraclenewccs (LOCAL=NO)

[oracle@hfcc-svr-newccsdb1 ~]$ ps -aux | less

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND

oracle     469  0.0  0.4 10759972 320408 ?   Ss   May28   0:05 oraclenewccs (LOCAL=NO)

oracle     495  1.2 10.1 10762344 7505684 ?  Rs   May28 356:58 oraclenewccs (LOCAL=NO)

oracle     863  1.1 10.0 10762344 7455964 ?  Ss   May28 330:21 oraclenewccs (LOCAL=NO)

oracle    1209  0.2  7.3 10762216 5485856 ?  Ss   May28  79:28 oraclenewccs (LOCAL=NO)

oracle    1479  0.3  7.5 10762344 5595556 ?  Ss   May28  90:49 oraclenewccs (LOCAL=NO)

oracle    1583  0.3  7.6 10761216 5679140 ?  Ss   May28  92:50 oraclenewccs (LOCAL=NO)

oracle    2234  0.0  5.9 10762212 4398364 ?  Ss   May28  16:05 oraclenewccs (LOCAL=NO)

oracle    2285  0.0  5.8 10762220 4313736 ?  Ss   May28  17:24 oraclenewccs (LOCAL=NO)

oracle    2479  0.0  5.9 10761176 4436164 ?  Ss   May28  20:57 oraclenewccs (LOCAL=NO)

 

注:1. ps -aux 和 ps -ef 的区别是显示的选项不一样,aux 能显示进程占用的 内存 和CPU. 

2. Less 可以对返回结果上下翻动

 

2. 我们在服务器上用sqlplus 连接数据库,在查看进程,会多出一条记录:

连接前:

[oratest@lyg ~]$ ps -ef|grep LOCAL=YES
oratest  30228 30170  0 13:49 pts/3    00:00:00 grep LOCAL=YES

连接后:
[oratest@lyg ~]$ ps -ef|grep LOCAL=YES
oratest  30283 30276  2 13:50 ?        00:00:00 oracleTESTDB (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oratest  30287 30170  0 13:50 pts/3    00:00:00 grep LOCAL=YES

通过上面2个示例,我们可以看出区别在 LOCAL=NO 和 LOCAL=YES。 

LOCAL=NO :非本地连接,即网络连接。 它是通过Listener 连接到服务器的。 客户端的应用通过客户端的监听向服务器的监听发送请求,服务器的监听接收后,在与数据库连接,执行相关操作,在把结果返回给客户端。 这是通过监听的流程。 所以在客户端需要配置监听,即配置tnsnames.ora。

LOCAL=YES:本地连接。 本地连接不走监听,所以在服务监听没有启动的情况下,通过本地的sqlplus 还是可以连上数据库的。

 

现在就有一个问题,假如我们在客户端通过PL/SQL developer 或者 Toad 工具连上服务器后,在执行sql 的过程中死掉了,我们只能结束程序,亦或者我们直接kill 掉toad 的进程,那么在服务器上并不会释放之间建立的监听进程。 没有释放的相关进程还是继续占用系统资源。 所以对于这些已经死掉的进程,我们可以kill 掉这些进程: kill -9 PID。不过在生产库上要慎用,要确认进程是死掉的才可以kill。 

 

-bash-3.2$ ps -ef|grep oracleorcl

oracle    2321     1  0 20:56 ?        00:00:00 oracleorcl (LOCAL=NO)

oracle    2391     1  0 21:02 ?        00:00:00 oracleorcl (LOCAL=NO)

oracle    2442     1  0 21:06 ?        00:00:00 oracleorcl (LOCAL=NO)

oracle    2534  2416  0 21:09 pts/1    00:00:00 grep oracleorcl

-bash-3.2$ kill -9 2321

-bash-3.2$ ps -ef|grep oracleorcl

oracle    2391     1  0 21:02 ?        00:00:00 oracleorcl (LOCAL=NO)

oracle    2544  2416  0 21:10 pts/1    00:00:00 grep oracleorcl

下面脚本是kill 掉连接时间超过30分钟的网络连接的进程。 把脚本放在crontab里,定时执行即可。

kill.sh: 
 ps -e -o pid -o etime -o args|grep LOCAL=NO>/tmp/tmpfile 
 cat /tmp/tmpfile|while read LINE 
 do 
 TIME=`echo $LINE|awk '{print $2}'` 
 TIME=`echo $TIME|awk -F: '{print $1}'` 
 if [ $TIME -gt 30 ] 
 then 
 echo $LINE >> /tmp/tmpflie2 
 fi 
 done 
 cut -c 1-5 /tmp/tmpfile2 |xargs -t -n1 kill -9 
 rm -f /tmp/tmpfile 
 rm -f /tmp/tmpfile2

时间: 2024-08-02 15:09:00

oracle 服务器进程中LOCAL=NO /YES的相关文章

用户/服务器进程的概念及v$session/V$PROCESS视图简介

服务器进程概念: Oracle的服务器进程有Oracle实例自动创建,用来处理连接到实例的客户端进程发出的请求,用户必须通过连接到Oracle的服务器进程来获取数据库中的信息. 对于专用服务器模式(建库时默认),客户端进程和Oracle服务器进程是一一对应的,新增一个服务器进程,大约需要的内存是: AIX 5-10M  :LINUX 3-5M内存--实测是1M多. 而在共享服务器模式下,一个Oracle服务器进程可能同时服务多个客户端进程. 服务器进程主要用来执行下列的任务: 解析.执行客户端提

归档内存-服务器内存告警,发现是oracle 归档进程arch 占用超过10G(每个arch进程)

问题描述 服务器内存告警,发现是oracle 归档进程arch 占用超过10G(每个arch进程) 服务器是aix: 如下归档进程占用的内存查询 arch1: Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd 16MB 917924 oracle 5316319 65600 71 5264722 Y N N PageSize Inuse Pin Pgsp Virtual s 4 KB 69375 0 71 17778 m 64 KB 323838 4

oracle的进程、会话、连接之间有什么差异

--======================== -- 进程.会话.连接之间的差异 --======================== 在使用Oracle database的时候,连接与会话是我们经常碰到的词语之一.咋一看貌似一回事,事实则不然.一个连接上可以建立零个. 一个.甚至多个会话.啊,咋这样呢?是的,没错.这也是我们经常误解的原因. 各个会话之间是单独的,独立于其他会话,即便是同一个连接的多个会话也是如此. 一.几个术语之间的定义(参照Oracle 9i &10g 编程艺术) 连

【RAC】Oracle 11gR2 RAC 中的 Grid Plug and Play(GPnP) 是什么?

[RAC]Oracle 11gR2 RAC 中的 Grid Plug and Play(GPnP) 是什么? 一. 什么是GPnP?   Grid Plug and Play (GPnP):Foundation for a Dynamic Cluster Management    (1)GPnPeliminates the need for a per node configuration –It is an underlying gridconcept that enables the au

用orabm测试oracle服务器的TPS值

oracle|服务器 研发论坛讨论主题 葛宏宾109649/user/zte_ltd昨天 16:16 .主题:.用orabm测试oracle服务器的TPS值.分类:测试    用orabm测试oracle服务器的TPS值 1.orabm简介   Orabm是一个开源的oracle性能测试工具,,包含了一套SQL脚本和几个命令行程序. 作者Geoff Ingram,是<High-Performance Oracle: Proven Methods for Achieving Optimum Per

建立与Oracle服务器连接的两种连接模式

在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式.在Oracle9i或者10g中,可以看到有2种连接模式,一种叫做专用服务器连接(dedicated server) ,另外一种叫做共享服务器连接(shared server).下面我们来分类说一下这两种连接方式的不同点. 专用服务器模式就是说每次在对Oracle进行访问的时候,Oracle服务器的Listener会得到这个访问请求,然后回为这个访问创建一个新的进程来进行服务.所以说,

服务器进程异常的原因分析(第二篇)

最近看到一个报警,是显示某一个oracle的备库进程数达到了2000多个.ZABBIX-监控系统: ------------------------------------报警内容: Too many OS processes on ora_xxx@10.127.13.123 ------------------------------------报警级别: PROBLEM ------------------------------------监控项目: Number of processes

Oracle 11.2中控制并行的新参数

在Oracle 11.2中引入了几个新的并行查询参数.对于数据仓库应用来说经常利用并行处理来快速有效地处理信息尤其是查询非常大的表或加入了复杂的算式更应该使用并行查询.在Oracle之前的版本中我们不得不或多或秒的来决定自动并行度.决定一个最佳并行度是非常困难的.真实最佳并行度依赖于数据块在磁盘上的物理位置以及服务器的CPU数量(cpu_count)为了解决并行查询的这些问题 在Oracle11.2中引入了以下新的并行查询参数 1.parallel_degree_policy parallel_

无法读取此系统上以前注册的服务器的列表。请在“已注册的服务器”窗口中重新注册您的服务器

环境: 服务器系统: 数据库版本:Microsoft SQL Server 2008 R2 错误提示如下图: 截图来自:点击打开链接 详细错误信息: 有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾. ************** 异常文本 ************** Microsoft.SqlServer.Management.RegisteredServers.RegisteredServerException: 无法读取此系统上以前注册的服务器的列表.请在"已注册