- 浏览: 154463 次
- 性别:
- 来自: 北京
最新评论
-
zizhi9999:
坑姐吧……这个 解压不了
java.lang.UnsatisfiedLinkError: /tmp/install.dir.4394/Linux/resource/jre/lib/i38 -
david_je:
db2look –d dbname -l –e –i us ...
DB2 备份及跨平台迁移 -
凤凰山:
很 好!
DB2 备份及跨平台迁移 -
rain2005:
...
linux 下修改时间的方法 -
zhou2008gang:
学习学习了
tcpdump 抓包命令 简例
今天编写的两条极具杀伤力的命令,它可以瞬间将Oracle杀死在无形之中。后面我将给出简单注释并展示一下它的威力。
$ ps -ef |grep $ORACLE_SID|grep -v grep|awk '{print $2}' | xargs kill -9
$ ipcs -m | grep oracle | awk '{print $2}' | xargs ipcrm shm
这两条命令的来由:
今天处理了三起Oracle数据库无故无法登录的问题,无论你采取什么手段都无法登陆到Oracle的SQL*PLus中,更谈不上故障排查了。
这种情况下有两种选择,第一种选择是经过一个较长的时间来排查故障原因,另外一种方法是不惜一切代价启动数据库以便尽快恢复生产。
如果是测试实验环境可以使用第一种方法来完成,对于排查问题的经验积累是有意的。
如果是生产环境,减少停机时间是最最至上的原则,所以我们只有不惜一切代价让数据库尽快恢复使用。
对于尽快恢复生产的方法主要也有两种。
第一种不惜代价的方法是重启服务器主机,彻底释放一切资源,重新来过,这种方法是有效的,不过停机时间还是有点长,而且技术含量比较低,所以不是很推荐使用这种超级“简单粗暴”的方法。
第二种方法就是我将要给大家展示的方法。
1.第一步:使用Linux的kill命令杀死所有与oracle有关的进程。
1)查询到与ORACLE_SID相关的oracle进程
$ ps -ef |grep $ORACLE_SID
oracle 7776 1 0 22:51 ? 00:00:00 ora_pmon_ora10g
oracle 7778 1 0 22:51 ? 00:00:00 ora_psp0_ora10g
oracle 7780 1 0 22:51 ? 00:00:00 ora_mman_ora10g
oracle 7782 1 0 22:51 ? 00:00:00 ora_dbw0_ora10g
oracle 7784 1 0 22:51 ? 00:00:00 ora_dbw1_ora10g
oracle 7786 1 0 22:51 ? 00:00:00 ora_lgwr_ora10g
oracle 7788 1 0 22:51 ? 00:00:00 ora_ckpt_ora10g
oracle 7790 1 0 22:51 ? 00:00:00 ora_smon_ora10g
oracle 7792 1 0 22:51 ? 00:00:00 ora_reco_ora10g
oracle 7794 1 0 22:51 ? 00:00:00 ora_cjq0_ora10g
oracle 7796 1 0 22:51 ? 00:00:00 ora_mmon_ora10g
oracle 7798 1 0 22:51 ? 00:00:00 ora_mmnl_ora10g
oracle 7832 1 0 22:51 ? 00:00:00 ora_arc0_ora10g
oracle 7834 1 0 22:51 ? 00:00:00 ora_arc1_ora10g
oracle 7836 1 0 22:51 ? 00:00:00 ora_qmnc_ora10g
oracle 7842 1 0 22:51 ? 00:00:00 ora_q000_ora10g
oracle 7847 1 0 22:52 ? 00:00:00 ora_q001_ora10g
oracle 7951 7592 0 23:11 pts/2 00:00:00 grep ora10g
2)去除掉包含grep命令本身的记录
$ ps -ef |grep $ORACLE_SID |grep -v grep
oracle 7776 1 0 22:51 ? 00:00:00 ora_pmon_ora10g
oracle 7778 1 0 22:51 ? 00:00:00 ora_psp0_ora10g
oracle 7780 1 0 22:51 ? 00:00:00 ora_mman_ora10g
oracle 7782 1 0 22:51 ? 00:00:00 ora_dbw0_ora10g
oracle 7784 1 0 22:51 ? 00:00:00 ora_dbw1_ora10g
oracle 7786 1 0 22:51 ? 00:00:00 ora_lgwr_ora10g
oracle 7788 1 0 22:51 ? 00:00:00 ora_ckpt_ora10g
oracle 7790 1 0 22:51 ? 00:00:00 ora_smon_ora10g
oracle 7792 1 0 22:51 ? 00:00:00 ora_reco_ora10g
oracle 7794 1 0 22:51 ? 00:00:00 ora_cjq0_ora10g
oracle 7796 1 0 22:51 ? 00:00:00 ora_mmon_ora10g
oracle 7798 1 0 22:51 ? 00:00:00 ora_mmnl_ora10g
oracle 7832 1 0 22:51 ? 00:00:00 ora_arc0_ora10g
oracle 7834 1 0 22:51 ? 00:00:00 ora_arc1_ora10g
oracle 7836 1 0 22:51 ? 00:00:00 ora_qmnc_ora10g
oracle 7842 1 0 22:51 ? 00:00:00 ora_q000_ora10g
oracle 7847 1 0 22:52 ? 00:00:00 ora_q001_ora10g
3)使用awk命令得到我们关心的进程号
$ ps -ef |grep $ORACLE_SID |grep -v grep|awk '{print $2}'
7776
7778
7780
7782
7784
7786
7788
7790
7792
7794
7796
7798
7832
7834
7836
7842
7847
4)万事俱备,我们最后使用kill命令将oracle的进程杀死,因此得到了下面完整的命令
$ ps -ef |grep $ORACLE_SID |grep -v grep|awk '{print $2}' | xargs kill -9
2.第二步:使用Linux的ipcs和ipcsrm命令释放oracle占用的共享内存。
1)使用ipcs命令查看系统中共享内存使用情况
$ ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 32768 root 644 72 2 dest
0x00000000 65537 root 644 16384 2 dest
0x00000000 98306 root 644 280 2 dest
0x00000000 131075 root 644 790528 2 dest
0x00000000 163844 root 644 790528 2 dest
0x00000000 196613 root 644 790528 2 dest
0x00000000 327689 oracle 644 790528 2 dest
0x00000000 360458 oracle 644 790528 2 dest
0x00000000 393227 oracle 644 790528 2 dest
0xecc5fba0 786447 oracle 640 5370806272 30
2)使用grep命令过滤后得到与oracle相关的内容
$ ipcs -m | grep oracle
0x00000000 327689 oracle 644 790528 2 dest
0x00000000 360458 oracle 644 790528 2 dest
0x00000000 393227 oracle 644 790528 2 dest
0xecc5fba0 786447 oracle 640 5370806272 31
2)使用awk命令获得上面我们关心的shmid字段内容
$ $ ipcs -m | grep oracle | awk '{print $2}'
327689
360458
393227
786447
3)最后使用ipcsrm命令释放共享内存
$ ipcs -m | grep oracle | awk '{print $2}' | xargs ipcrm shm
resource(s) deleted
再次查看一下,此时共享内存已经被释放。
$ ipcs -m | grep oracle
0x00000000 327689 oracle 644 790528 2 dest
0x00000000 360458 oracle 644 790528 2 dest
0x00000000 393227 oracle 644 790528 2 dest
0x00000000 786447 oracle 640 5370806272 31 dest
3.此时,我们便可以登录到数据库,最后启动数据库恢复生产。
4.小结
这种方法相对也是比较“粗暴”的。不过在危难之时还是可以派上用场。
重点强调:
手工杀掉oracle进程和手工释放共享内存是非常危险的,不到万不得已,千万不要使用;
这里我给出的两条极具杀伤力的命令,请不要轻易尝试。
Good luck.
-- The End --
发表评论
-
博客搬家了
2012-11-24 17:25 685欢迎大家到我的新博客去做客 www ... -
shell脚本加密
2011-12-29 11:25 1724第一种方法(gzexe):这种加密方式不是非常保险的方法, ... -
Linux释放内存
2011-04-28 10:54 983LINUX 1)查看free -m 2)同步到硬 ... -
nagios的安装及配置实现网络监控
2011-03-08 17:37 1806Nagios通常由一个主程 ... -
Linux 释放内存方法
2011-02-18 11:12 1088先看看内存使用状况[root@node1 ~]# free - ... -
iptraf
2011-02-11 14:34 772这个软件不错。 -
Linux中sar命令
2011-01-25 14:57 1160sar这东西,一开始还以为是内部有的,原来是外部的工具,可以到 ... -
错误处理一su: /bin/bash: Too many open files in system
2010-12-17 14:38 1250[root@test ~]# cat /proc/sys/ ... -
linux IPC-消息队列
2010-12-01 11:08 1411几乎所有的 Linux 发行版本都包含 ipc ... -
linux下查看网卡实时流量工具
2010-11-20 21:16 1424nload是一个网络流量统 ... -
转:从集中到分布,解读网络视频IT架构变迁(下)
2010-11-15 13:30 1534从集中到分布,化解存 ... -
转:从集中到分布,解读网络视频IT架构变迁(上)
2010-11-15 13:28 980【IT168 专稿】2006年以视 ... -
几种去除^M的方法
2010-11-05 11:15 3247附录:几种去除^M的方法1、 cat filename1 | ... -
[转]vsftpd出现500 OOPS: cannot change directory的解决办法
2010-10-15 21:57 2222ftp服务器连接失败,错误提示: 500 OOPS: can ... -
修改linux时间。现在才真正弄明白。。。。
2010-09-10 15:02 2256附件不错 一、修改linux的时间 root使用dat ... -
su: /bin/bash: Too many open files in system错误
2010-08-20 09:23 1596切换到oracle的时候出错:[root@test ~]# ... -
rhel4中配置FC多路径管理
2010-08-10 11:02 1925rhel4中配置FC多路径管理 一、测试环境: 服务器 ... -
linux下安装rar解压及软件下载
2010-07-21 11:32 2194/lib/libc.so.6: version `GLIBC_ ... -
执行cpio命令时0511-903 Out of phase!的处理
2010-07-15 11:04 1582# cpio -idvm < aix_oracle817 ... -
Linux命令之Ethtool
2010-06-21 16:18 1514Linux/Unix命令之Ethtool ...
相关推荐
本文详细介绍了在Linux环境下编译Oracle驱动QOCI的完整流程,包括环境准备、oci源码编辑、库文件复制、编译命令执行以及最终的测试验证。通过这些步骤,可以有效地实现在Qt中访问Oracle数据库的功能。这对于那些希望...
### Linux 下 Oracle 启动关闭及常用命令 #### 一、概述 在 Linux 系统中管理和操作 Oracle 数据库是一项常见的任务。对于数据库管理员(DBA)而言,掌握如何在 Linux 环境下启动、关闭 Oracle 数据库以及常用的...
这两个命令是Oracle Data Pump的一部分,用于将数据从一个数据库迁移到另一个数据库,或者备份和恢复数据。 1. **Oracle Data Pump**: Oracle Data Pump是一种高效的数据迁移工具,它比传统的Export和Import更快...
"Oracle Linux更新Yum源详解" Oracle Linux 是一个基于 Red Hat Enterprise Linux 源代码的操作系统,具有高性能、可靠性和安全性。Yum(Yellow dog Updater, Modified)是一个命令行的包管理器,用于管理 RPM ...
解决 Oracle 杀死死锁进程的方法可以分为两步:首先,查找被锁定的表和锁定的会话,然后杀死锁定的会话和操作系统进程。 在解决死锁问题时,需要注意以下几点: * 需要拥有足够的权限来杀死锁定的会话和操作系统...
linux-下命令安装Oracle.简洁易懂。。。。。。。。。。。。
- 然后在Unix/Linux命令行中使用`kill`命令杀死该进程。 ```bash kill 目标SPID ``` - 最后执行`shutdown immediate`命令,完成数据库的快速关闭。 2. **Windows平台:** - 同样,首先获取目标Session的SPID...
### Linux环境下Oracle数据库重启知识点详解 #### 一、概述 在Linux环境中,Oracle数据库的管理是常见的运维操作之一。为了确保系统的稳定运行,有时需要重启Oracle数据库及其监听器。本文将详细介绍在Linux环境下...
使用 `uname -i` 命令检测 Linux 服务器系统位数,以确定是否需要安装 32 位或 64 位的 Oracle 客户端安装包。 3. 安装 Oracle10G 客户端 可以使用 yum 或 rpm 命令来安装 Oracle10G 客户端。 四、 使用 XManager...
"Oracle安装教程之Linux更换yum源" 在 Linux 环境中安装 Oracle 数据库之前,需要更换 yum 源,以便安装 Oracle 所需的依赖项。本文将指导您如何更换 yum 源,包括查看原有 yum 源、下载阿里云 yum 源、备份原有...
Linux 上安装 Oracle 11g 详细步骤 本文将指导您在 Linux 操作系统上安装 Oracle 11g 数据库。安装过程可能会很繁琐,但按照以下步骤,您可以顺利完成安装。 安装环境 * 操作系统:Red Hat Linux 5.4 (32 位) * ...
Linux 下 Oracle 启动和监听 Oracle 数据库是重量级的,其管理非常复杂,将其在 Linux 平台上的启动和关闭步骤整理如下: 一、安装和配置 Oracle 在 Linux 平台上安装 Oracle 之后,需要创建 Oracle 系统用户,并...
### Linux下Oracle 12c的安全卸载 在企业级应用环境中,Oracle数据库因其稳定性、安全性及高效性而被广泛采用。然而,在某些情况下,可能需要卸载Oracle 12c来解决安装过程中出现的问题或者进行版本升级。本文将...
对于本机安装了oracle 客户端,下述命令都可以在 dos 执行,当然 dmp 文件导出在本地。 但在实际研发时,没人愿意在本机上安装庞大的 oracle 软件,这时你需要使用 Xshell/puTTY.. 远程工具连接到 Linux 进行操作,...
Oracle Linux是Oracle公司推出的一款基于Linux内核的操作系统,它主要设计用于支持Oracle数据库、中间件和其他企业级应用。Oracle Linux R6 U5 (Update 5) 是该操作系统的第六个主要版本的第五次更新,提供了对x86_...
linux,linux和Oracle常用命令linux环境配置ORACLE常用命令
Linux 下删除 Oracle 11g 数据库的步骤和命令 在 Linux 操作系统中删除 Oracle 11g 数据库需要按照一定的步骤和命令进行操作,以确保数据库的完全卸载和删除。下面是详细的步骤和命令: 步骤 1: 停止数据库 使用 ...
Oracle 杀进程是数据库管理员在日常工作中经常遇到的问题,特别是在数据库性能不佳或会话被锁死的情况下。因此,了解如何杀掉 Oracle 会话非常重要。本文将从 Oracle 数据库系统和操作系统两个方面介绍如何杀掉会话...
Linux安装Oracle19C详细步骤 在这篇文章中,我们将详细介绍如何在 CentOS 7 和 Red Hat 7 系统中安装 Oracle 19C。整个安装过程可以分为六个步骤:系统要求和准备、关闭防火墙、图形桌面、selinux、修改静态 IP、...
在Linux环境下,远程定时备份Oracle数据库是一项至关重要的任务,它能确保数据的安全性和业务的连续性。Oracle数据库作为企业级的数据库管理系统,其备份与恢复策略必须严谨且可靠。以下将详细阐述如何在没有安装...