问题引出:测试环境,进行oralce的shutdown immediate,等待时间很长,长的无法等待

ORACLE shutdown 过程:

1、shutdown normal(正常关闭方式):阻止任何用户建立新的连接;等待当前所有正在连接的用户主动断开连接;当所有的用户都断开连接后,将立即关闭数据库

2、shutdown transactional(实务关闭方式):阻止用户连接新的连接和开始新事务;等待所有活动事务提交后,再断开用户连接;当所有的活动实务提交完毕、所有的用户都断开连接后,将关闭数据库

3、shutdown immediate(立即关闭方式):阻止用户连接新连接和开始新事务;将未提交的活动事务回退;关闭数据库

4、shutdown abort(终止关闭方式):阻止用户建立新连接和开始新事务;取消未提交的活动事务,而不是回退;立即终止正在执行的任何SQL语句;立即关闭数据库

无疑,shutdown abort是最开速关闭数据库的方式,但是很可能会使数据库处于不一致状态,严重可能损坏数据库,导致数据库起不来,特别是生产环境。虽然现在是测试环境,但是也不建议这样做。推荐使用shutdown immediate方式关闭数据库。

快速关闭数据库的因素:

1、连接的客户端进程数量

2、未提交的事务占用的UNDO BLOCK数量

3、长时间运行的会话

4、SMON进程清理临时段的速度

2、查看预警日志文件(alert_sid.log)的位置

SQL> show parameter dump 
NAME TYPE VALUE 
------------------------------------ ----------- ------------------------------ 
background_core_dump string partial 
background_dump_dest string /u01/oracle/admin/bdump 
core_dump_dest string /u01/oracle/admin/cdump 
max_dump_file_size string 10240 
shadow_core_dump string partial 
user_dump_dest string /u01/oracle/admin/udump 

查看alert日志如下: /u01/oracle/admin/bdump/alert_biusdb.log  以下信息是样例

Shutting down instance (immediate)
Sat Aug 24 15:25:40 2013
Shutting down instance: further logons disabled
License high water mark = 683
Sat Aug 24 15:30:39 2013
Active call for process 26760 user 'orarep' program'oracle@pmsdb2'
Active call for process 20349 user 'orarep' program'oracle@pmsdb2'
Active call for process 1813 user 'orarep' program'oracle@pmsdb2'
Active call for process 10694 user 'orarep' program'oracle@pmsdb2'
Active call for process 26394 user 'orarep' program'oracle@pmsdb2'
System State dumped to trace file /oraprep/oracle/admin/repdb/udump/repdb_ora_16122.trc
Sat Aug 24 15:31:02 2013
SHUTDOWN: waiting for active calls to complete.
Sat Aug 24 15:31:02 2013
Instance shutdown cancelled
Sat Aug 24 15:35:56 EAT 2013
Shutting down instance (immediate)
Sat Aug 24 15:35:56 EAT 2013
Shutting down instance: further logons disabled
License high water mark = 683

随机,手动kill掉这些数据库连接进程:

eg:

orarep@pmsdb2[/oraprep/oracle/admin/repdb/bdump]$kill -9 10694
orarep@pmsdb2[/oraprep/oracle/admin/repdb/bdump]$kill -9 23362
orarep@pmsdb2[/oraprep/oracle/admin/repdb/bdump]$kill -9 9944

另外如果进程之多可以使用:

ps aux |grep "LOCAL=NO" |awk '{printf "%s\n", $2}' |xargs kill -9

ps -ef|grep $ORACLE_SID|grep -v ora_|grep LOCAL=NO|awk '{print $2}'|xargs kill

命令

随机再次关闭数据库:

SQL> shutdown immediate

Database closed.

Database dismounted.

总结:

这是由于进程lock资源导致 的问题,因此需要先释放资源,完成数据库的关闭。

shutdown immediate 持久无法关闭数据库之解决方案的更多相关文章

  1. Oracle shutdown immediate无法关闭数据库解决方法

    在测试服务器上使用shutdown immediate命令关闭数据库时,长时间无法关闭数据库,如下所示 1: [oracle@DB-Server admin]$ sqlplus / as sysdba ...

  2. 关闭数据库时SHUTDOWN: waiting for active calls to complete.处理

    有时候在关闭数据库时,发出shutdown immediate;命令后一直未关闭.查看ALERT日志.在等待一段时间后日志中有提示: SHUTDOWN: waiting for active call ...

  3. Linux CentOS中使用SQL*Plus启动和关闭数据库

    启动和关闭数据库的常用工具有三个 一.SQL*Plus 在SQL*Plus环境中,用户以SYSDBA身份连接到Oracle后,可以通过命令行方式启动或关闭数据库. 二.OEM(企业管理器) 利用OEM ...

  4. 未完全关闭数据库导致ORA-01012: not logged的解决

    首先使用SHUTDOWN 没加任何参数方式关闭数据库,在数据库未关闭时CTRL+Z停止执行,退出用SQLPLUS重登陆,出现报错:ORA-01012: not logged on SQL> st ...

  5. Oracle启动和关闭数据库

    本机只安装一个数据库的情况下sqlplus / as sysdba启动数据库startup关闭数据库shutdown immediate

  6. 虚拟机centos7服务器下,启动oracle11g数据库和关闭数据库

    转载:https://blog.csdn.net/ShelleyWhile/article/details/74898033 一.前提条件:虚拟机centos7服务器下,已经安装好oracle11g数 ...

  7. Oracle11g 启动数据库实例、关闭数据库实例

    Oracle11g 启动数据库实例        startup 1: nomount 模式:      描述:             该模式只会创建实例(即:创建oracle 实例的各种内存结构和 ...

  8. Oracle 关闭数据库(未使用Oracle Restart)

    Oracle关闭数据库(未使用Oracle Restart) by:授客 QQ:1033553122 SHUTDOWN [选项] 选项说明: NORMAL-语句执行后,不允许创建新的连接:等待所有当前 ...

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

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

随机推荐

  1. Postman的安装和升级

    安装postman Postman本地应用程序 Postman可以作为Mac,Windows和Linux操作系统的本地应用程序. 要安装Postman,请转到应用界面,并根据你的平台点击Mac/Win ...

  2. ASP.NET Core 入门笔记3,使用ASP.NET Core MVC框架构建Web应用

    一.ASP.NET Core MVC 输出Hello World,Friend! 1.引入 ASP.NET Core MVC 修改应用启动类(Startup.cs),引入MVC模块并配置默认路由 pu ...

  3. Git速成学习第一课:创建版本库与版本回退

    Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 我太困了0.0精神点再写...... /*我来啦!以后会陆续更新自己的学习笔记*/ Git是分布 ...

  4. hbase增量和全量备份

    1.星期五全量备份星期四23:59:59的数据,星期一全量备份到星期日23:59:59的数据,其他的增量备份,备份前一天00:00:00  -  23:59:59的数据 * * /opt/prodfu ...

  5. 学习笔记:CentOS7学习之十四:linux文件系统

    目录 1. 机械硬盘结构 1.1 机械硬盘结构 1.2 簇和block 2.文件系统结构 2.1 文件名 2.2 inode的内容 2.3 inode的大小 2.4 目录文件 2.5 block块大小 ...

  6. arm-linux-ar常见用法

    1)     创建test.a静态库 arm-linux-gcc  -c  a.o  a.c arm-linux-gcc  -c  b.o  b.c arm-linux-ar  -rc  test.a ...

  7. 关于 resultType 与 parameterType 的基本使用的区别

    以下关于      resultType    与    parameterType   的基本使用的区别 : 1.使用  resultType :   主要针对于从数据库中提取相应的数据出来 2.使 ...

  8. C++中用ODBC和ADO方式连接SQL数据库

    https://wenku.baidu.com/view/f01e4e762f3f5727a5e9856a561252d380eb2033.html

  9. tp5 post接到的json被转义 问题解决

    今天做项目的时候前端需要可以保存可变数据, 然后原样返回给前端 接口 $data =input('post.');//用户唯一标识$goods = $data['goods']; $shopcuxia ...

  10. springMvc改造springboot2.0踩坑

    1. 支持jsp applicaiton.proerties添加配置 #指定视图解析路径前缀 spring.mvc.view.prefix=/WEB-INF/jsp/ #指定视图解析后缀 spring ...