linux中查看oracle进程在做什么,是否sql引起了锁 kill掉进程

ps -l 查看系统进程
    PID 每个进程的ID。
  PPID 每个进程的父进程ID。
  UID 每个进程所有者的UID 。
  USER 每个进程所有者的用户名。
  PRI 每个进程的优先级别。
  NI 该进程的优先级值。
  SIZE 该进程的代码大小加上数据大小再加上堆栈空间大小的总数。单位是KB。
  TSIZE 该进程的代码大小。对于内核进程这是一个很奇怪的值。
  DSIZE 数据和堆栈的大小。
  TRS 文本驻留大小。
  D 被标记为“不干净”的页项目。
  LIB 使用的库页的大小。对于ELF进程没有作用。
  RSS 该进程占用的物理内存的总数量,单位是KB。
  SHARE 该进程使用共享内存的数量。
  STAT 该进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;

T代表停止或跟踪状态。
  TIME 该进程自启动以来所占用的总CPU时间。如果进入的是累计模式,那么该时间还包括这个进程子进程所占用的时间。且标题会变成CTIME。根据OS进程号,应该可以查到它正在执行什么SQL语句.
-- 查到oracle OS进程的sid编号:
select ses.sid from v$session ses,v$process pro where pro.spid=&spid and ses.paddr=pro.addr;
-- 查到此sid连接用户正在执行的SQL语句:
select sql_text from v$sqltext_with_newlines where (hash_value,address)
in (select sql_hash_value,sql_address from v$session where sid=&sid) order by address,piece;
查看oracle的锁是sql语句引起的

查看引起锁的session_id
 sync4j启动的进程
select * from v$locked_object where os_user_name='sync4j'
找到seesion_ID=139
找到引起的sql语句
SELECT a.username,
a.machine,
a.program,
a.sid,
a.serial#,
a.status,
c.piece,
c.sql_text
FROM v$session a,
v$sqltext c
WHERE a.sid = 139
and a.sql_address=c.address(+)
ORDER BY c.piece
v$sqltext就是引起锁的sql语句了

alter system kill session 'sid,serial#'  杀掉进程
  sid,serial#在v$session中可以查到

==================================

1.首先通过v$session_wait确定library cache pin等待事件的会话

2.确定要pin的对象:
select kglnaobj
from sys.x$kglob
where inst_id = userenv('instance')
and kglhdadr = v$session_wait.P1RAW;

3.确定阻塞的会话:
select a.sid,a.serial#,a.username,a.paddr,a.logon_time,
a.sql_hash_value,b.kglpnmod
from v$session a,sys.x$kglpn b
where a.saddr = b.kglpnuse
and b.inst_id= userenv('instance')
and b.kglpnreq = 0
and b.kglpnmod not in (0,1)
and b.kglpnhdl = v$session_wait.P1RAW;

确定哪些会话正在使用某个包/过程/函数/视图,如果有的话,这时就不要进行drop,complie之类的操作了
select c.sid
from sys.x$lglob a,sys.x$kglpn b,v$session c
where a.kglnaobj=大写的你要进行操作的包/过程/函数/视图
and a.kglhdadr=b.kglpnhdl
and b.kglpnuse=c.saddr;

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liuya1985liuya/archive/2008/01/07/2028994.aspx

时间: 2024-09-22 23:38:06

linux中查看oracle进程在做什么,是否sql引起了锁 kill掉进程的相关文章

Linux中查看进程占用内存的情况【转】

转自:http://hutaow.com/blog/2014/08/28/display-process-memory-in-linux/ Linux中查看某个进程占用内存的情况,执行如下命令即可,将其中的[pid]替换成相应进程的PID号: cat /proc/[pid]/status 说明 /proc/[pid]/status中所保存的信息除了内存信息,还包括进程IDs.信号等信息,此处暂时只介绍内存相关的信息. 字段 说明 VmPeak 进程所使用的虚拟内存的峰值 VmSize 进程当前使

Linux中查看socket状态(转)

Linux中查看socket状态:cat /proc/net/sockstat #(这个是ipv4的) sockets: used 137 TCP: inuse 49 orphan 0 tw 3272 alloc 52 mem 46UDP: inuse 1 mem 0RAW: inuse 0 FRAG: inuse 0 memory 0 说明:sockets: used:已使用的所有协议套接字总量TCP: inuse:正在使用(正在侦听)的TCP套接字数量.其值≤ netstat –lnt |

在 Linux 中查看你的时区

在这篇短文中,我们将向你简单介绍几种 Linux 下查看系统时区的简单方法.在 Linux 机器中,尤其是生产服务器上的时间管理技能,是在系统管理中一个极其重要的方面. Linux 包含多种可用的时间管理工具,比如 date 或 timedatectlcommands,你可以用它们来获取当前系统时区,也可以将系统时间与 NTP 服务器同步,来自动地.更精确地进行时间管理. 好,我们一起来看几种查看我们的 Linux 系统时区的不同方法. 1.我们从使用传统的 date 命令开始 使用下面的命令,

如何在Linux中查看你的时区

在这篇短文中,我们将向你简单介绍几种 Linux 下查看系统时区的简单方法.在 Linux 机器中,尤其是生产服务器上的时间管理技能,是在系统管理中一个极其重要的方面. Linux 包含多种可用的时间管理工具,比如 date 或 timedatectlcommands,你可以用它们来获取当前系统时区,也可以将系统时间与 NTP 服务器同步,来自动地.更精确地进行时间管理. 好,我们一起来看几种查看我们的 Linux 系统时区的不同方法. 1.我们从使用传统的 date 命令开始 使用下面的命令,

Linux中查看进程及杀死进程命令

Linux中想杀死fcitx进程,然后再重启它. root@www.linuxidc.com:/home/zhangbin# ps -e | grep 'fcitx'  3405 ?        00:00:00 fcitx <defunct>  3415 ?        00:00:02 fcitx   不显示标题 root@www.linuxidc.com:/home/zhangbin# ps -h Warning: bad ps syntax, perhaps a bogus '-'

Linux中Kill掉进程的10种方法

  常规篇: 首先,用ps查看进程,方法如下: 代码如下: $ ps -ef -- smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal smx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helper smx 1824 1822 0 11:38 pts/0 00:00:02 bash smx 1827 1 4 11:38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin smx 1

Linux中查看各文件夹大小命令du -h --max-depth=1

du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件] 常用参数: -a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况. -b或-bytes 显示目录或文件大小时,以byte为单位. -c或–total 除了显示目录或文件的大小外,同时也显

也许你需要在 Antergos 与 Arch Linux 中查看印度语和梵文?

你们到目前或许知道,我最近一直在尝试体验 Antergos Linux.在安装完Antergos后我所首先注意到的一些事情是在默认的 Chromium 浏览器中没法正确显示印度语脚本. 这是一件奇怪的事情,在我之前桌面Linux的体验中是从未遇到过的.起初,我认为是浏览器的问题,所以我安装了Firefox,然而问题依旧,Firefox也不能正确显示印度语.和Chromium不显示任何东西不同的是,Firefox确实显示了一些东西,但是毫无可读性. Chromium中的印度语显示 Firefox中

linux中查看mysql数据库版本号的方法

1:在终端下:mysql -V. 以下是代码片段: [shengting@login ~]$ mysql -V 2:在mysql中:mysql> status;   以下是代码片段: mysql> status; 3:在help里面查找 以下是代码片段: [shengting@login ~]$ mysql –help | grep Distrib 4:使用mysql的函数 以下是代码片段: mysql> select version(); 小提醒,使用mysql命令就必须在mysql登