Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5699966
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: LINUX

2007-03-11 10:11:19

在unix上被迫终止oracle的时候(比如oracle挂起无响应),必须执行以下的步骤

1.杀掉所有和oracle相关的进程

2.使用ipcs -pmb命令确定所有被占用的ram内存,然后使用ipcrm -m命令从unix中释放ram内存

3.使用ipcs -sa命令显示同步信号量,然后使用ipcrm -s命令为所有实例释放该同步信号量.

例:

ps -ef | grep $ORACLE_SID|grep -v grep|awk '{print $2}'|xargs -i kill -9 {}

使用ipcs -pmb查看被占用的内存,并且清除被数据库占用的内存

ipcs -pmb

......................................................

Shared Memory

m 24064 oxc0be184   --rw-r-----   oracle  dba  28975104   1836      23847

m 4611   oxc0b9832   --rw-r-----   root     root  32975104   2836      16347

..............

 

可见oracle拥有的 唯一ram内存段的id是24064.使用下面命令释放内存

ipcrm -m 24064

 

注意

有很多时候unix进程很难被杀死,甚至是使用kill -9 命令也无法杀死,在这种情况下,需要特殊的诀窍迫使unix任务终止,如果遇到进程使用ps命令进行连续显示,甚至是在对进程使用kill -9命令后 仍不停止的情况下,可考虑下面的诀窍:

通过管道传输null设备(/dev/null)到tyyname进行kill命令的一部分,将难处理的进程杀掉:

root>cat /dev/null > /dev/ttyname kill -9 pid#


阅读(2413) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~