ORA-01089 数据库无法正常关闭
今天在做SOA几个数据库的重启操作,其中一个数据库在关闭过程中一直处于HANG住状态,十几分钟没有任何进展,具体操作过程如下:
一:当时的情景
SQL> shutdown immediate
--无任何返回结果
二:问题定位过程
1.查询相关进程只有ORACLE的关键进程存在
ps -ef |grep ora_
soadb 4487 1 0 22:57:05 ? 0:00 ora_reco_soadbprd
soadb 4485 1 5 22:57:05 ? 0:00 ora_smon_soadbprd
soadb 4526 1 0 22:57:15 ? 0:00 ora_arc0_soadbprd
soadb 4479 1 0 22:57:04 ? 0:00 ora_dbw1_soadbprd
soadb 4483 1 0 22:57:04 ? 0:01 ora_ckpt_soadbprd
soadb 4468 1 0 22:57:02 ? 0:02 ora_pmon_soadbprd
2.查看alter日志,显示如下:
Shutting down instance: further logons disabled
Thu Nov 14 22:04:24 2013
Stopping background process CJQ0
Thu Nov 14 22:04:24 2013
Stopping background process QMNC
Thu Nov 14 22:04:26 2013
Stopping background process MMNL
Thu Nov 14 22:04:27 2013
Stopping background process MMON
Thu Nov 14 22:04:27 2013
Shutting down instance (immediate)
License high water mark = 152
Thu Nov 14 22:04:27 2013
Stopping Job queue slave processes, flags = 7
Thu Nov 14 22:04:27 2013
Job queue slave processes stopped
Waiting for dispatcher 'D000' to shutdown
All dispatchers and shared servers shutdown
Thu Nov 14 22:04:30 2013
ALTER DATABASE CLOSE NORMAL
Thu Nov 14 22:09:34 2013
Waiting for smon to disable tx recovery.
Thu Nov 14 22:23:46 2013
MMNL absent for 1201 secs; Foregrounds taking over
3.针对红色字体的提示,查询官方网站,ID 1076161.6
官方描述如下:
During shutdown the SMON process is cleaning up extents and updating the data
dictionary tables with the marked free extents. As the extents are marked as
freed, they are removed from the table for used extents, UET$ and placed on the
table for free extents, FET$.
官方描述的原因是因为smon进程在清时临时表空间数据块和更新数据字典时造成的数据库HANG住,原理讲的很清楚,里面还有一个链接,一个是讲述这种情况可能是一个BUG,另一个链接教我们诊断数据库HANG住的具体原因。但现在的问题是,如果一直等下去,可能需要几个小时,此次变更数据库重启只有半小时时间,不可能待下去,怎么办?
4.尝试取消shutdown immediate命令
CTRAL + C没有任何作用,新建一个链接执行查询或其它操作,会报一个错,具体信息如下:
ORA-01089: immediate shutdown in progress - no operations are permitted
可以看到,此时什么都不允许操作,这时想找从操作系统上找到shutdown immediate进程KILL掉,后来仔细一想,这个操作可能比shutdown abort更危险,很可能造成数据库无法启动,在网上找到了相关资源,也没找到办法,此时突然想到刚学ORACLE数据库启动和停止时有一条命令是
startup force:中止当前数据库的运行,并开始重新正常的启动数据库
startup force = shutdown abort +startup 此时也只能用它了
5.强制停止shutdown immediate
新打开一个sqlplus / as sysdba
SQL> startup force
ORACLE instance started.
Total System Global Area 3206836224 bytes
Fixed Size 2180024 bytes
Variable Size 1778388040 bytes
Database Buffers 1409286144 bytes
Redo Buffers 16982016 bytes
Database mounted.
Database opened.
此时shutdown immediate窗口停止了,数据库恢复到可操作状态,此时我再次用shutdown immediate命令再次正常停止数据库,依然无法停止,没办法,再次执行startup force获取数据库控制权,选择shutdown abort方法停止数据库。重新启动,很幸运,启动成功了!(注意此操作有一定的风险,小心操作)
转:http://blog.sina.com.cn/s/blog_61cd89f60102eeg1.html
ORA-01089 数据库无法正常关闭的更多相关文章
- <Oracle Database>数据库启动与关闭
启动和关闭Oracle数据库 要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆.一般我们常用INTERNAL用户来启动和关闭数据库(INT ...
- oracle数据库启动和关闭方式
Oracle数据库是重量级的,其管理非常复杂,将其在Linux平台上的启动和关闭步骤整理一下. 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_p ...
- Oracle 数据库实例启动关闭过程
Oracle数据库实例的启动,严格来说应该是实例的启动,数据库仅仅是在实例启动后进行装载.Oracle数据启动的过程被划分为 几个不同的步骤,在不同的启动过程中,我们可以对其实现不同的操作,系统修复等 ...
- Oracle 数据库启动与关闭 各种方式详解整理
概述 只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库. 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库. 虽然数据库正常运行,但如果 ...
- Oracle 数据库启动与关闭
只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库. 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库. 虽然数据库正常运行,但如果没有启 ...
- oracle之二实例管理及数据库的启动/关闭
实例管理及数据库的启动/关闭 2.1 实例和参数文件 1.instance 功能:用于管理和访问database.instance在启动阶段读取初始化参数文件(init parameter fil ...
- Oracle数据库启动和关闭
在介绍oracle数据库的启动和关闭前,先看一下Oracle的参数文件. oracle参数文件 1.初始化参数文件 oracle的初始化参数文件分为spfilesid.ora.spfile.ora.i ...
- sqlserver无ldf日志文件附加的方法(数据库没有完全关闭,无法重新生成日志)
数据库的ldf日志文件被删了,直接附加时报错:数据库没有完全关闭,无法重新生成日志 那怎么恢复数据呢?方法如下: 在数据库中新建一个同名的数据库(文件路径要与原来的相同,ldf的文件名也要相同),然后 ...
- Linux——oracle数据库实例启动关闭(转)
-->Oracle 数据库实例启动关闭过程 --================================ [root@robinson ~]# su - oracle --查看未启动实例 ...
- oracle9i的erp数据库无法正常关闭的解决方法。
oracle9i版本的ERP数据库无法正常关闭. 场景描述:oracle9i数据库正常关闭的时候,hang住在一个地方无法正常关闭. 解决思路:查看alert日志,分析问题. [oraprod@erp ...
随机推荐
- Ubuntu 14.10 下进程实时IO监控iotop命令详解
介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况 ...
- oracle 之关键字exists
-----------------------------------------------------------------------SQL中EXISTS的用法---------------- ...
- 0911 Socket网络编程
1.实现ftp上传.下载功能 1.1 循环接收数据直到接收完毕 server端接收client发送的命令(比如说ifconfig),然后server端将命令执行结果反馈给客户端,这时候有个问题,ser ...
- 爬虫再探实战(四)———爬取动态加载页面——请求json
还是上次的那个网站,就是它.现在尝试用另一种办法——直接请求json文件,来获取要抓取的信息. 第一步,检查元素,看图如下: 过滤出JS文件,并找出包含要抓取信息的js文件,之后就是构造request ...
- MySQL内置函数
MySQL中的内置系统函数 用在SELECT语句,以及字句where order by having 中UPDTE DELETE 函数中可以将字段名作为变量来用,变量的值就是这个列对应的每一 ...
- Android之Activity与Service通信
一.当Acitivity和Service处于同一个Application和进程时,通过继承Binder类来实现. 当一个Activity绑定到一个Service上时,它负责维护Service实例的引用 ...
- IOS 作业项目(2) 画图(保存,撤销,笔粗细设定功能)
先上效果图
- 程序员是怎么炼成的---OC题集--练习答案与题目(2)
1.objective-c中有垃圾回收机制吗? 没有像java.C#一样的垃圾回收机制,但是有ARC自动引用计数器技术,根据对象的引用技术来判断对象是否还在使用,如果RC=0,则系统就会销毁对象,实 ...
- 3、SQL基础整理(分组)
分组 group by select class from xuesheng group by class select class,AVG(chinese)from xuesheng group b ...
- HDU 5067
http://acm.hdu.edu.cn/showproblem.php?pid=5067 规定起点和终点的tsp问题,解法依然是状态压缩dp,在初始化和计算答案的时候略做改动即可 #include ...