在测试服务器上使用shutdown immediate命令关闭数据库时,长时间无法关闭数据库,如下所示

   1: [oracle@DB-Server admin]$ sqlplus / as sysdba

   2:  

   3: SQL*Plus: Release 10.2.0.4.0 - Production on Thu Nov 21 13:55:13 2013

   4:  

   5: Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

   6:  

   7:  

   8: Connected to:

   9: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

  10: With the Partitioning, OLAP, Data Mining and Real Application Testing options

  11:  

  12: SQL> shutdown immediate;

在另外一个会话中,查看告警日志的输出结果,如下所示:告警日志信息在输出Active processes prevent shutdown operation后,就再无提示信息。

   1: [oracle@DB-Server bdump]$ tail -f 20 alert_epps.log 

   2:  

   3: Thu Nov 21 13:55:23 2013

   4: Starting background process EMN0

   5: Shutting down instance: further logons disabled

   6: EMN0 started with pid=59, OS id=19244

   7: Thu Nov 21 13:55:24 2013

   8: Errors in file /u01/app/oracle/admin/epps/udump/epps_ora_19242.trc:

   9: ORA-04098: trigger 'ADMIN.PIND_ON_SHUT' is invalid and failed re-validation

  10: Thu Nov 21 13:55:24 2013

  11: Shutting down instance (immediate)

  12: License high water mark = 10

  13: All dispatchers and shared servers shutdown

  14: Thu Nov 21 14:00:29 2013

  15: SHUTDOWN: Active processes prevent shutdown operation

关于SHUTDWON IMMEDIATE关闭数据库方式:

立即关闭方式(IMMEDIATE)

     立即关闭方式能够在尽可能短的时间内关闭数据库,以立即方式关闭数据库时,ORACLE将执行以下一些操作:

         *阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事物。

         *任何未提交的事物均被回退。

         *ORACLE不再等待用户主动断开连接,而是直接关闭、卸载数据库,并终止实例。

方法1:

此时可以通过下面命令Kill掉系统中(LOCAL=NO)的ORACLE进程

[oracle@DB-Server ~]$ ps -ef|grep ora|grep -v grep|grep -v ora_|grep LOCAL=NO|awk '{print $2}'

[oracle@DB-Server ~]$ ps -ef|grep ora|grep -v grep|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill

此时可以顺利关闭数据库。

方法2:

使用CTRL+C取消操作,然后使用shutdown abort命令关闭数据库。当然生产环境还是慎用shutdown abort命令,使用它往往是在没有办法的情况下。因为

shutdown abort 执行后,所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要实例恢复,因此,下一次启动可能比平时需要更多的时间。

方法3:网上比较通用的方法

1 :首先停应用服务。

2 :其次停止监听服务(listener)

3 :间隔一段时间后,运行自己写的脚本去检查一下还有没有用户进程,如有, KILL.

4 :shutdown immediate;

当然,有时候实际情况往往有些出入,例如步骤1,DBA没有应用服务器的权限。无法停止应用服务。当然也不妨碍后面步骤的执行。

Oracle shutdown immediate无法关闭数据库解决方法的更多相关文章

  1. navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法

    原文:navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法 ...

  2. Oracle记录-开启与关闭数据库

    1.配置tnsnames.ora/listener.ora #cd /usr/oracle/oracle/product/11.2.0/db_1/network/admin ---切换到安装目录 #v ...

  3. linux下安装Oracle时交换空间不足的解决方法

    摘:linux下安装Oracle时交换空间不足的解决方法 linux上安装Oracle时交换空间不足的解决办法 增加交换空间有两种方法: 严格的说,在系统安装完后只有一种方法可以增加swap,那就是本 ...

  4. oracle9i的erp数据库无法正常关闭的解决方法。

    oracle9i版本的ERP数据库无法正常关闭. 场景描述:oracle9i数据库正常关闭的时候,hang住在一个地方无法正常关闭. 解决思路:查看alert日志,分析问题. [oraprod@erp ...

  5. 误删除了Oracle的dbf文件后的解决方法

    问题描述: 误删除Oracle数据库的dbf文件,在启动和关闭数据库是会提示错误. startup启动数据库时提示: ORA-01157:无法标识/锁定数据文件 ORA-01110:数据文件:‘... ...

  6. oracle归档日志写满错误解决方法

    最近一年,手头上负责的项目要部署到很多个地方,由于项目组里没有人对oracle比较熟悉,只能给自己增加一个DBA的角色了.由于短时间内要部署很多单位,备份策略没有设置好,结果过了一个月,用户报告程序开 ...

  7. oracle执行先决条件检查失败的解决方法

    在安装oracle 11g时,出现执行先决条件失败的情况如下: 你可以忽略所有强制安装,一般不会影响功能,但如果你想知道为什么会产生这种错误, 并且当出现以上情况时又该如何解决呢?如下列出了原因和解决 ...

  8. C# Oracle海量数据瞬间插入到数据库的方法

    C# 海量数据瞬间插入到数据库的方法 当我们在数据库中进行大量的数据追加时,是不是经常因为数据量过大而苦恼呢?而所谓的海量数据,一般也是上万级的数据,比如我们要添加一百万条数据,应该如何提高它的效率呢 ...

  9. mstsc远程报:这可能是由于CredSSP 加密Oracle修正的两种完美解决方法

    win10很完美,用的也很舒服!当然人无完人,也总有不尽如人意的时候.比如说我们经常用的远程mstsc,就出现了一个坑,既然出现坑了,我们就得把坑解决掉吧!下面就记录一下这个坑的解决方法. 本文地址: ...

随机推荐

  1. JavaScript 框架设计

    JavaScript 高级框架设计 在现在,jQuery等框架已经非常完美,以致于常常忽略了JavaScript原生开发,但是这是非常重要的. 所以,我打算写一个简单的框架,两个目的 熟练框架的思想 ...

  2. CSS3动画几个平时没注意的属性

    一.timing-function: steps() 一开始在使用CSS3的时候并没有太注意这个timing-function,只是注意到自定义贝塞尔曲线. 1)一个项目中的实例 先来看看左边加了st ...

  3. JavaWeb路径问题打包总结--小心出门右转404

    话说,培训和自学就不是一个回事,两周讲完java基础,两天讲完jsp,两节课讲完servlet,还真不是一般人能受得了的,这两天学习jsp和servlet频繁被路径问题困扰,倒不是出错,只是各种act ...

  4. ASP.NET的session操作方法总结

    在开发ASP.NET程序时,需要对相关数据进行缓存,缓存较多的主要是用户的身份信息,现提供几个对session操作较为常用的方法: 1.添加session,对设置对应的时间: /// <summ ...

  5. 解析ActionResult子类JsonResult

    前言 MVC我是11开始使用的,当时还是在上地软件园一小型互联网公司,当时是MVC2.0+Linq to sql.后来接着学习MVC3,MVC3的出现确实让我有种眼前一亮的感觉,期间我不断的写各种de ...

  6. HTML中使用javascript解除禁止input输入框代码:

    转:表单中Readonly和Disabled的区别 参考资料: disabled和readonly区别: 参考博文1地址:http://blog.csdn.net/symgdwyh/article/d ...

  7. Android学习笔记之ListView复用机制

    PS:满打满算,差不多三个月没写博客了...前一阵忙的不可开交...总算是可以抽出时间研究研究其他事情了... 学习内容: 1.ListView的复用机制 2.ViewHolder的概念 1.List ...

  8. Javascript函数的几种写法

    最近在看某个插件的源码时,总是看到各种不同风格的js函数的写法.(怪我只是初级水平,看的一头雾水) 于是想找点资料,总结总结,心里不清不楚的总是很别扭! 1.常规写法 // 函数写法 function ...

  9. 在C#中,Json的序列化和反序列化的几种方式总结

    在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据,以及如何反序列化Json数据到对象. 什么是JSON? JSON (JavaScript Object Notation) ...

  10. 【原创】Java和C#下String类型中的==和equals的原理与区别

    一.Java下 1.几个例子 public static void main(String[] arge) { String str1 = new String("1234"); ...