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

简介: 转自:http://blog.csdn.net/tianlesoftware/article/details/5675404 1. 先看2个命令执行的结果: [oracle@hfcc-svr-newccsdb1 ~]$ ps -ef | les...

转自: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

相关文章
|
1月前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。
|
2月前
|
存储 Oracle 关系型数据库
oracle服务器存储过程中调用http
通过配置权限、创建和调用存储过程,您可以在Oracle数据库中使用UTL_HTTP包发起HTTP请求。这使得Oracle存储过程可以与外部HTTP服务进行交互,从而实现更复杂的数据处理和集成。在实际应用中,根据具体需求调整请求类型和错误处理逻辑,以确保系统的稳定性和可靠性。
105 0
|
4月前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
235 10
|
5月前
|
运维 算法 调度
深入理解操作系统:进程调度与优先级自动化运维:使用Ansible实现服务器集群管理
【8月更文挑战第27天】在操作系统的众多奥秘中,进程调度无疑是一个既简单又复杂的主题。它就像是交响乐团中的指挥,协调着每一个音符,确保乐曲和谐而有序地进行。本文将带领读者走进进程调度的世界,探索其背后的原理和实现,同时通过代码示例揭示其精妙之处。让我们一起揭开进程调度的神秘面纱,理解它在操作系统中的重要性。
|
7月前
|
数据可视化 API 开发工具
详细解读cesi+supervisor可视化集中管理服务器节点进程
详细解读cesi+supervisor可视化集中管理服务器节点进程
103 0
|
7月前
|
数据可视化 API 开发工具
详细解读cesi+supervisor可视化集中管理服务器节点进程
详细解读cesi+supervisor可视化集中管理服务器节点进程
70 0
|
8月前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
125 6
|
6月前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
6月前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
207 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
5月前
|
算法 Linux 调度
探索进程调度:Linux内核中的完全公平调度器
【8月更文挑战第2天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。本文将深入探讨Linux内核中的完全公平调度器(Completely Fair Scheduler, CFS),一个旨在提供公平时间分配给所有进程的调度器。我们将通过代码示例,理解CFS如何管理运行队列、选择下一个运行进程以及如何对实时负载进行响应。文章将揭示CFS的设计哲学,并展示其如何在现代多任务计算环境中实现高效的资源分配。

热门文章

最新文章

推荐镜像

更多