启动ORACLE详解(CSDN菜鸟第二部)

来源:互联网 发布:.me域名注册 编辑:程序博客网 时间:2024/04/25 11:28

前一篇文章介绍了ORACLE的停止下面我来详细说说ORACLE的启动:

首先介绍下ORACLE的启动顺序在您执行:

sqlplus / as sysdba

SQL>STARTUP

......

之后ORACLE依次执行:

 nomount-> mount->open;

那么我们来看看这三步ORACLE具体执行了写什么(启动了什么)依次为A,B,C:

A:STARTUP -NOMOUNT

1,首先它会在服务器的默认位置搜索参数文件(spfile.ora),如果没有找到那么你就只能手工创建一份初始化文件,如果手工创建此参数文件又没有参照的情况下你可以,查看服务器配置的内存信息,然后找到其它差不多(特指内存)配置的服务器 使用sqlplus / as sysdba登录在使用 create pfile='/此文件目录由自己制定/由自己命名.pfile' from spfile,创建一个初始化文件,将此文件下载下来,拷贝到你需要用此文件启动的服务器的相应目录(oracle用户可读取此目录),然后在执行startup pfile='/文件目录/文件.ora';

2,然后oracle读取上述参数文件,以确定数据库初始化的值。(主要是为了给数据库初始化一个环境)

3,其次在给ORACLE分配SGA 系统全局区。主要包含 

a,固定SGA及一段不变化的内存段。

b,DB CACHE主要存放查询频率很高的数据,启动时oracle会首先将内容从磁盘读取到这个区域,以便于下次用到的时候就不再去读取磁盘提高了效率。

c,REDO LOG BUFFER 顾名思义数据库重做日志的时候存在此块内存区,当内存占用达到此区域的1/3时,被写入到磁盘。

        d,JAVA POOL 此块内存区域是在当使用JAVA代码来代替过程在数据库中运行的时候会使用此块区域。

        e,LAGE POOL 大池主要用于存放一些临时的缓存信息其中包含IO\或者一些进程消息。

        f,SHARED POOL 故名思意此块内存主要用于存放公共访问而且访问频率很高的东西,比如过程、硬解析过后的sql、数据字典等,此块区域要重点关注。

        g,STREAM POOL 主要用于将某些缓存流进程在数据库间移动/复制数据时使用的队列消息。

4,启动oracle后台进程。

5,打开oracle系统告警日志,并将上述参数信息写入到告警日志,注意此时如果出现问题,可以参考告警日志文件找到设置错误的参数,将其修正后从新启动数据库。


B:STARTUP -MOUNT

1,oracle开始装载数据库实例,此时他会去找控制文件,找到控制文件获取默认的参数,通过控制文件中的参数找到相应的数据文件、联机重做日志文件的位置。


C:STARTUP -OPEN

1,打开、装载库并使其能提供正常的服务,首先它需要打开一个撤销表空间,其次它会使此表空间私有化,然后打开联机重做日志文件。数据库正常运行。


上述提到了ORACLE的启动过程,那么启动命令的使用就不用在仔细详解了。只是简单提到启动命令包含 :

1,STARTUP OPEN  默认为此 也可以简写为STARTUP。

2,STARTUP NOMOUNT 此步骤紧给用户分配了SGA区域未装载控制文件。

3,STARTUP MOUNT 直到控制文件被打开未能提供正常服务。

4,STARTUP FORCE 如果系统有一个进程正在运行那么它货强制停止它并尝试重新启动。一般用于异常停止数据库时正常启动不了的情况。

5,STARTUP OPEN RECOVER 如果系统有一个进程正在运行那么它货强制停止它并尝试重新启动,同时启动恢复程序。一般用于异常停止数据库时正常启动不了的情况。

6,STARTUP RESTRICT 受限制启动,此次启动后只针对受限制的用户可用 例如:dba。此时可以执行ALTER SYSTEM等相关语句修正参数后再次启动。

7,STARTUP RECOVER 启动并开始介质恢复操作。如果没有需要恢复而又执行了此命令则oracle会爆出一个错误。