ITPub博客

首页 > 数据库 > Oracle > oracle启动与关闭

oracle启动与关闭

原创 Oracle 作者:pwz1688 时间:2014-04-09 22:02:49 0 删除 编辑
1、启动(startup)
Oracle 数据库的启动主要包含三个步骤:
 启动数据库到 Nomount 状态(启动实例);
 启动数据库到 Mount 状态 (打开控制文件);
 启动数据库到 Open 状态 (打开所有控制文件中描述的文件);
1.1、startup nomount
        在启动的第一步骤,Oracle 首先寻找参数文件(pfile / spfile),然后根据参数文件中的设置 (如内存分配等设置) ,创建实例(INSTANCE),分配内存,启动后台进程。启动过程中,oracle选择参数文件的顺序是:
?/dbs/spfile@.ora  
?/dbs/spfile.ora
?/dbs/init@.ora 
注意:"?"代表 ORACLE_HOME , @ 代表数据库的 sid,如果以上三个文件都不存在,Oracle 将无法创建和启动 instance(会报ORA-01078与ORA-00109错误,上一篇日志提到过)。Oracle 在启动过程中,会在特定的路径中寻找参数文件,在 Unix/Linux 下 的路径为$ORACLE_HOME/dbs 目录,在 WINDOWS 上的路径为$ORACLE_HOME\database目录。
例:
[oracle@localhost ~]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ls
hc_PROD.dat init.ora initPROD.ora lkPROD orapwPROD peshm_PROD_0
可以在SQL*PLUS中通过show parameter spfile命令来检查数据库是否使用了spfile文件, 如果 value 不为 Null,则数据库使用了 spfile 文件,否则则没使用:
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string
注:上面是使用init@.ora启动时显示的查询结果
1.2、startup mount
        实例启动到 nomount 状态以后,Oracle 就可以从参数文件中获得控制文件的位置信息,然 后找到控制文件,并且根据控制文件中记录的数据文件位置进行数据文件的存在性判断。
1.2.1、控制文件定位
       控制文件一般有3个,且内容完全一致,是oracle为了安全而采用的镜像手段,10g之前,在生产环境中,通常将控制文件存放在不同的物理硬盘上,避免因为介质故障而同时损坏三个控制文件。10g 开始,若设置了闪回恢复区(Flashback Recovery Area,通常闪回区和数据区位于不同硬盘存储),则 Oracle 缺省的就会将控制文件分布到不同的磁盘组,至此 Oracle 才算完成了控制文件的真正镜像安全保护。
      在nomount状态,可以查询 v$parameter视图(show parameter control_files),获得控制文件信息,这部分信息来自启动 的参数文件;当数据库 mount 之后,可以查询 v$controlfile 视图获得关于控制文件的信息,此时,这部分信息来自控制文件: 
SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/oracle/oradata/PROD/d
                                                 isk1/control01.ctl, /u01/app/o
                                                 racle/oradata/PROD/disk2/contr
                                                 ol01.ctl, /u01/app/oracle/orad
                                                 ata/PROD/disk3/control01.ctl
SQL> select * from v$controlfile;

STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------------------------------------- --- ---------- --------------
        /u01/app/oracle/oradata/PROD/disk1/control01.ctl NO 16384 478
        /u01/app/oracle/oradata/PROD/disk2/control01.ctl NO 16384 478
        /u01/app/oracle/oradata/PROD/disk3/control01.ctl NO 16384 478
  因为 Oracle 的三个(缺省的)控制文件内容完全相同,如果只是损失了其中 1~2 个,可以复制完好的控制文件,更改为相应的名称,就可以启动数据库;如果丢失了所有的控制文件,那 么就需要恢复或重建控制文件来打开数据库。
1.2.2、查看告警日志文件所在路径
当数据库出现故障时,应该优先检查 alert_.log,从中发现关于故障的详细信息。
11g之前,alert_.log 告警日志文件,位置由参数 background_dump_dest 定义:
SQL> show parameter background_dump_dest ;
从11g开始,alert 文件的格式发生了变化,除原有的文本格式外,还引入了 XML格式,引入新参数diagnostic_dest:
SQL> show parameter diag ;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest string /u01/app/oracle/oradata/PROD/d ump
2、关闭(shutdown)
数据库关闭有四种方式:NORMAL、IMMEDIATE、TRANSACTIONAL、ABORT。
下表列举了这四种方式关闭数据库的区别
关闭方式 A  I T N
允许新的连接 × × × ×
等待活动会话中止 × × ×
等待活动事务中止 × ×
强制 CheckPoint,关闭所有文件 ×

2.1、SHUTDOWN NORMAL
shutdown命令的缺省选项,发出命令后,不再允许新的连接到数据库,但在关闭前,需等待当前连接的所有用户都从数据库中退出。下一次启动时不需要进行任何实例恢复。因需等待连接用户退出才可关闭,在生产环境下,这种方式几乎无法关闭有大量用户连接的数据库,所以很少被采用。
2.2、SHUTDOWN IMMEDIATE
最为常用的一种关闭数据库的方式,使用这个命令时,当前正在被 Oracle 处理的事务立即中断,未提交的事务将全部回滚,系统不等待连接 到数据库的用户退出,强制断开所有的连接用户。然后执行检查点,将变更数据全部写回数据文件,关闭数据库。使用这种方式关闭数据库,在下次启动数据库时不需要进行实例恢复,是 一种安全的数据库关闭方式。 但是注意,如果数据库系统繁忙,当前有大量事务执行(甚至是大事务正在处理),那么使用此选项关闭数据库也可能需要大量时间。 
2.3、SHUTDOWN TRANSACTIONAL
SHUTDOWN TRANSACTIONAL 选项仅在 Oracle 8i 后可用,使用该命令时,数据库不再允许建立新的连接,禁止新事务的进行,但是允许当前活动事务执行完毕。  在所有活动的事务完成后,数据库将和 SHUTDOWN IMMEDIATE 同样的方式关闭数据库。 
2.4、SHUTDOWN ABORT
SHUTDOWN ABORT 是最不推荐采用的关闭数据库的方法,使用改选项,数据库会立即终止所有用户连接、中断所有事务、立即关闭数据库,使用这种方式关闭数据库,未完成事务不会回滚,数据库也不会执行检查点,所以在下次启动时,数据库必须执行实例恢复,实例恢复可能会需要大量时间,数据库的启动因此可能需要等候很长时间。
Abort 的方式关闭数据库,就类似于数据库服务器突然断电,可能会导致不一致的情况出现,所以除非不得已,轻易不要使用这种方式关闭数据库。
以下一些常见的场景会使用abort方式:
1)  数据库或应用异常,其他方式无法关闭数据库;
2)  因为马上到来的断电或其他维护情况,需要快速关闭数据库;
3)  启动异常后需要重新尝试启动;
4)  当使用 Shutdown Immediate 无法关闭时;
5)  需要快速重新启动数据库;
6)  Shutdown 超时或异常 ;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21251711/viewspace-1139040/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 归档日志
请登录后发表评论 登录
全部评论

注册时间:2009-03-30

  • 博文量
    106
  • 访问量
    667865