zoukankan      html  css  js  c++  java
  • Oracle的启动和关闭


    Oracle数据库的启用和关闭需要DBA权限,本文介绍的全部操作由sysdba来执行。

    在运行数据库实例的操作系统的shell里执行以下命令就可以获得sysdba权限。

    sqlplus / as sysdba
    

    在这里插入图片描述

    一、数据库的启动

    Oracle数据库实例的启动要经历三个阶段。

    1)nomount:启动实例(Start an instance)。

    2)mount:装载数据库(Mount the database)。

    3)open:打开数据库(Open the database)。

    1、启动实例

    执行以下命令启动数据库实例:

    startup nomount;
    

    在这里插入图片描述

    nomount状态启动Oracle的可执行程序,初始化数据库实例,包括以三步骤:

    1)读取参数文件pfile或spfile,pfile是文本文件,spfile是二进制文件,它们的内容相同,只是格式不一样,oracle推荐使用spfile。spfile存放在$ORACLE_HOME/dbs目录下,默认名字是spfile$ORACLE_SID.ora,如/oracle/home/dbs/spfilesnorcl11g.ora。

    2)根据参数文件中的参数,分配系统全局区SGA;

    3)启动后台进程,包括数据库写入进程DBWR,日志写入进程LGWR,检查点进程CKPT,系统监控进程SMON,进程监控进程PMON,归档进程ARCH等。

    SGA和后台进程组合起来组成实例(Oracle Instance)。

    执行以下SQL查询实例的状态:

    select instance_name,status from V$INSTANCE;
    

    在这里插入图片描述

    2、装载数据库

    执行以下命令装载数据库:

    alter database mount;
    

    装载数据库时打开控制文件(Control File)从控制文件中获得数据文件(Data File)和联机日志文件(Redo Log File)信息把实例和数据库关联起来。

    mount状态一般用于DBA对数据库进行维护(如数据恢复),对于普通用户,数据库还是不可访问。

    执行以下SQL查询实例和数据库的状态:

    select instance_name,status from V$INSTANCE;
    select db_unique_name,open_mode from V$DATABASE;
    

    在这里插入图片描述

    在这里插入图片描述

    3、打开数据库

    执行以下命令打开数据库:

    alter database open;
    

    Oracle打开数据文件(Data Files)和联机日志文件(Redo Log File)。这时候数据库可以使用,普通用户可以登录数据库,对数据库进行操作。

    执行以下SQL查询实例和数据库的状态:

    select instance_name,status from V$INSTANCE;
    select db_unique_name,open_mode from V$DATABASE;
    

    在这里插入图片描述
    在这里插入图片描述

    4、直接启动数据库

    执行startup open命令直接启动数据库,相当于以上三个步骤,open可以省略不写。

    startup open;
    

    在这里插入图片描述

    二、数据库状态切换

    1、从open切换到mounted状态

    alter database close;
    

    2、从mounted切换到started状态

    alter database dismount;
    

    3、把数据库启动到限制模式(Restrict)

    在限制模式下,只有create session和restricted session权限的用户可以访问数据库。

    1)如果数据库是关闭的。

    startup restrict;
    

    2)如果数据库是开启的。

    alter system enable restricted session;
    

    4、以只读模式(Read Only)打开数据库

    1)如果数据库是关闭的。

    startup open read only;
    

    2)如果数据库是mount状态。

    alter database open read only;
    

    在直读模式下,数据文件和日志文件都禁止写操作,整个数据库是只读的。但是允许数据库恢复(Database Recovery)及其他不会产生事务的操作。

    5、把数据库启动到恢复模式(Recover)

    startup open recover;
    

    三、关闭数据库

    1、数据库关闭的过程

    Oracle的关闭也要经历关闭数据库卸载数据库关闭实例三个阶段。

    1)关闭数据库(Close the database)

    Oracle首先把SGA中的数据写到数据文件和日志文件中,然后再关闭数据文件和联机日志文件。

    2)卸载数据库(Dismount the database)

    数据库关闭完成之后,Oracle将分离数据库和实例之间的联系,这个阶段叫做“卸载数据库”或者叫“Dismount数据库”。

    3)关闭实例(Shut down the instance)

    这个阶段Oracle将从释放SGA占用的内存,终止全部的后台服务进程。

    2、shutdown immediate

    在这里插入图片描述

    使用immediate方式关闭数据库时:

    1)新的用户不能登录数据库;

    2)未提交的事务将会被回滚;

    3)Oracle不会等待所有的用户(连接)退出数据库。

    特点:

    1)这种关闭方式可能会造成数据丢失;

    2)数据库重启时不需要实例恢复。

    推荐使用immediate方式关闭数据库。

    3、shutdown transactional

    以transactional方式关闭数据库时:

    1)不允许新的用户登录数据库;

    2)不允许建立新的事务;

    3)所有的事务完成以后才关闭数据库;

    4)一个用户(会话)执行完当前的事务后将被强行断开与数据库的连接。

    特点:

    1)这种关闭方式不会造成数据丢失;

    2)数据库重启时不需要实例恢复;

    3)这是最安全的关闭方式。

    4、shutdown abort

    以abort方式关闭数据库时:

    1)不允许建立新的连接和新的事务;

    2)客户端的SQL语句立刻终止;

    3)未提交的事务不被回滚;

    4)Oracle立刻终止所有连接(会话)。

    特点:

    1)只有数据库出现问题时候,才使用这种方式关闭数据库;

    2)这是一种最不安全的关闭方式,数据库重启时需要实例恢复。

    5、shutdown normal

    使用normal方式关闭数据库时:

    (1)允许新的用户注登录数据库;

    (2)要等所有的用户自动退出Oracle以后,Oracle才关闭数据库。如果有未退出的用户,那么Oracle就一直等待,直到这个用户退出才关闭数据库。

    normal是最慢的数据库关闭方式,不推荐。

    6、重启数据库(Reset)

    startup force;
    

    相当于shutdown abort和startup。

    四、版权声明

    C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
    来源:C语言技术网(www.freecplus.net)
    作者:码农有道

    如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!

  • 相关阅读:
    asp.net mvc3开发系统点滴之一
    C# winform 广告机 网络多媒体发布系统桌面版之一
    asp.net mvc3开发系统点滴之三
    js面向对象开发互联网机顶盒应用头端之五
    asp.net mvc3开发系统点滴之二
    【转载】指针空间的申请和释放(C)
    [转载]C 指针
    hoj2036
    hoj1142
    hoj1878
  • 原文地址:https://www.cnblogs.com/wucongzhou/p/12496076.html
Copyright © 2011-2022 走看看