102 oracle数据库的启动和关闭

一、启动

1. 启动数据库实例

        open

        mount

        nomount -->数据库在处于nomount阶段时,实例已经启动,smon,pmon可以查看到信息

        shutdown

命令:

        SYS@OCPLHR1> startup nomount

        [oracle@localhost ~]$ ps -ef |  grep smon

        oracle  15416    1  0 18:04 ?        00:00:00 ora_smon_OCPLHR1

        oracle  15495 15469  0 18:07 pts/6    00:00:00 grep smon

        [oracle@localhost ~]$ ps -ef |  grep pmon

        oracle  15392    1  0 18:04 ?        00:00:00 ora_pmon_OCPLHR1

        oracle  15497 15469  0 18:07 pts/6    00:00:00 grep pmon

2. 数据库启动过程经历的几个过程

1)nomount

             按以下顺序在$ORACLE_HOME/dbs目录下搜索参数文件:          

               spfile<     SID     >.ora、    spfile.ora、  init< SID>.ora

            根据参数内容分配SGA

            启动后台进程

            打开并修改告警日志文件有以及跟踪文件

        注意:该阶段用户数据库创建,控制文件重建,特定的备份恢复等。

        此阶段不打开任何控制文件以及数据文件。在RMAN恢复是,还原数据控制文件在该阶段执行

2)mount

        利用参数文件中的CONTROL_FILES的值,打开并锁定控制文件

        将数据库与实力关联起来

        读取控制文件并获取数据文件和redo日志文件的名称和状态,但不检查数据和日志文件是否存在

        注意:该阶段会读取控制文件,如果控制文件不存在,那么数据库就无法启动

        该阶段用于以下场景:

                1、重命名数据文件,移动数据文件位置等

                2、修改数据库的归档模式

                3、实现数据库的完全恢复

3)open

        打开数据文件

        打开联机重做日志文件

        注意:oracle将校验所有的数据文件和联机日志文件能否打开并对数据库做一致性检查。

        如果出现一致性错误,那么SMON进程将启动实例恢复。

        如果任意一个数据文件或者联机日志文件丢失,那么oracle数据库会摆错

二、关闭

        关闭模式

        ABORT

        IMMEDIATE

        TRANSACTIONAL

        NORMAL

1)shutdown normal

        正常关闭数据库后悔发生以下情况:

        不可建立新连接

        oracle服务器在完成关闭之前先等待所有用户断开连接

        后台进程终止,从内存中删除SGA

        oracle服务器在关闭实例之前关闭并卸装数据库

        下一次启动不需要进行实例恢复

2)shutdown transactional

        采用这种关闭方式可防止客户机丢失数据,其中包括客户就当前活动的结果。


执行事务处理数据库关闭时会发生以下情况:

任何客户机都不让在这个特定实例上启动新的事务处理

会在客户机结束正在进行的事务处理后断开客户机

完成所有的事务处理后立即执行关闭

下一次启动不需要在进行实例恢复

3)shutdown immediate(默认关闭方式)

oracle db 正在处理当前SQL语句不会完成执行

oracle服务器不等待当前连接到数据库的用户断开连接

oracle服务器会退回活动的事务处理,并断开所有连接的用户

oracle服务器在关闭实例之前关闭并卸装数据库

下一次启动不需要进行实例恢复

4)showdown abort

终止数据库实例:

oracle db 正在处理当前SQL语句会立即终止

oracle服务器不等待当前连接到数据库的用户断开连接

数据库和重做缓冲区未写入磁盘

不退回未提交的事务

实例终止,但不关闭文件

数据库未关闭或未卸装

下一次启动时需要进行实例恢复,实例恢复是自动进行的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。