startup,startup mount,startup nomount之间的区别

startup nomount选项:(读初始化参数文件,启动实例)
startup nomount选项启动实例,但不安装数据库。当数据库以这个模式启动时,参数文件被读取;后台进程和内存结构被启动;但它们不被附加或与数据库的磁盘结构进行通信。当实例处于这个状态时,数据库是不可使用的。
通常启动到这里可以做create database , create or recreate control file 或者是mount standby database等动作,修改parameter也是可以的。

startup mount 选项:(打开控制文件)
startup nount选项执行STARTUP NOMOUNT选项的所有工作,但另外附加数据库结构并与这些结构进行交互。这时Oracle从它用来查找和附加到主要数据库结构的控制文件中获得信息。当处于这个模式时,可以执行一些管理型任务,比如恢复。
读取control file 
通常启动到这里的目的有
recover dtabase ; backup database ; rename db files ,change archivelog mode等 startup open 选项:(打开数据文件,日志文件) 如果STARTUP命令行上没有指定任何模式,STARTUP OPEN选项就是默认的启动模式。STARTUP OPEN选项执行STARTUP NOMOUNT和STARTUP MOUNT选项的所有步骤。这个选项把数据库变成对所有用户都时可用的。 open datafile ,online redo log
startup force选项: 如果在用正常方式启动数据库时遇到了困难,可以使用STARTUP FORCE选项。STARTUP FORCE选项首先异常关闭数据库,然后重新启动它。 STARTUP RESTRICT选项: STARTUP RESTRICT选项启动数据库并把它置入OPEN模式,但只给拥有RESTRICTED SESSION权限的用户赋予访问权。 RMAN> startup nomount
已连接到目标数据库 (未启动)
Oracle 例程已启动
系统全局区域总计     135338868 字节
Fixed Size                      453492 字节
Variable Size                109051904 字节
Database Buffers              25165824 字节
Redo Buffers                    667648 字节

RMAN> startup mount
已连接到目标数据库 (未启动)
Oracle 例程已启动
数据库已加载
系统全局区域总计     135338868 字节
Fixed Size                      453492 字节
Variable Size                109051904 字节
Database Buffers              25165824 字节
Redo Buffers                    667648 字节

RMAN> startup
已连接到目标数据库 (未启动)
Oracle 例程已启动
数据库已加载
数据库已打开
系统全局区域总计     135338868 字节
Fixed Size                      453492 字节
Variable Size                109051904 字节
Database Buffers              25165824 字节
Redo Buffers                    667648 字节

上面是三种类型的截图,startup nomount只是启动了实例而没有启动数据库,startup mount启动了实例,并加载了数据库,但是数据库没有打开,startup是最全的,实例,数据库加载,数据库打开都完成。

例如下:

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd\

C:\>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期一 9月 21 15:21:50 2009

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> connect / @dwj as sysdba
已连接。
SQL> startup nomount
ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
SQL>

 

shutdown的几种方式,shutdown abort的一些弊端有哪些

1、shutdown normal  

   正常方式关闭数据库。 

 

2、shutdown immediate  

   立即方式关闭数据库。  

   在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,  

   而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),  

   当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。 

 

 

3、shutdown abort  

   直接关闭数据库,正在访问数据库的会话会被突然终止,  

   如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间 

-------------------------------------------------------- 

shutdown abort 的时候,跟kill 进程是一样的效果 

数据库立即关闭,这个时候文件状态可能不一致 

因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致并且不用进行崩溃恢复

 

若检查点信息一致,则做崩溃恢复 

若检查点信息不一致(正好在更新文件头)则需要做介质恢复

 

这些问题都好处理,最怕的问题是这个时候系统有大量IO,结果这样造成写的突然中断,碰巧造成文件块的逻辑坏块,那麻烦比较大一些,尤其是系统表空间的block损坏

 

 

虽然shutdown abort 出错的几率很小,1000个人可能只有一个人碰到,但是我们还是要小心。 

正确的处理流程是,shutdown immediate ,若数据库迟迟不能down下来,在os上观察IO状况,几乎没有io的时候,另开一窗口shutdown  abort ,几乎不会出问题了

--------------------------------------------------------

http://www.itpub.net/showthread.php?threadid=180315&pagenumber=  

先用IMMEDIATE来DOWN,实在不行了,看一下数据库文件上没IO了,再用ABORT  

------------------------------------------------------------------------------

你可以尝试先在系统级杀掉非后台Oracle进程,在连接shutdown immediate就安全多了

 

在Oracle8i里,当数据库失去响应以后,你在操作系统上杀掉用户进程后,一般数据库就可以恢复正常了 

-------------------------------------------------------------------------------

先 shutdown immediate 应该是首选

 

然后不行再重新shutdown abort

 

其实起不来也是因为os的缘故,在文件正在写的时候出现问题导致文件不一致或者损坏……

 

猜你喜欢

转载自chengyue2007.iteye.com/blog/1905198
今日推荐