数据库的关闭

数据库的关闭
数据库的关闭
 
    接着学习Oracle DBA操作入门。昨天学习了启动数据库,今天当然要学习一下关闭数据库了,也是基础内容,不过很多种的关闭都是平常不太用到的,记下来以后要用的时候可以查询一下。
 
 
一、数据库的关闭
 
    要关闭数据库和实例,必须以SYSDBA或SYSOPER连接,且不能是通过共享服务器进程连接到数据库的
 
    1、SHUTDOWN NORMAL:正常模式关闭
 
      --执行之后不允许再建立新的连接
      --等待所有当前连接解除后关闭数据库
 
    2、SHUTDOWN IMMEDIATE:立即关闭
 
      --执行之后不允许再建立新连接,也不允许启动新事务
      --没有提交的事务都会回滚(时间很长也回滚)
      --解除所有当前连接后直接关闭
 
    3、SHUTDOWN TRANSACTIONAL:事务关闭
 
      --执行之后不允许建立新的连接,也不允许启动新的事务
      --在所有当前连接的事务完成之后即断开连接
      --之后关闭
 
    4、SHUTDOWN ABORT:终止关闭
 
      --立即终止Oracle正在处理的SQL语句
      --不回滚未提交事务
      --不等待用户结束连接,直接断开
 
 
二、禁止操作数据库
 
    在某些时候需要只有DBA才能执行的事务、查询、读取等,此时称为静止状态。
 
    理论上来说,这个模式和启动时的受限模式是类似的,但是这个不用关闭数据库,而且限制也要少得多。
 
    在禁止操作数据库中,DBA被定义为SYS或SYSTEM,其他用户即使有SYSDBA权限也不能操作。
 
 
    1、将数据库置于静止状态
 
    ALTER SYSTEM QUIESCE RESTRICTED;
 
    注1:在执行该命令之后,禁止所有非活动会话变成活动的,等待活动的会话终止;所有非DBA登录将被排队
    注2:在RAC中,QUIESCE RESTRICTED将对所有实例有效
    注3:若终止请求,则将撤销所有产生的效果
    注4:连续多个OCI读取执行查询,那么只会等待当前的读取结束
    注5:在静止状态不能进行冷备份,要热备份时也需要ALTER TABLESPACE name BEGIN BACKUP;
 
    2、还原为Normal状态
 
    ALTER SYSTEM UNQUIESCE;
 
    注1:RAC中不需要在同一个实例中进行还原,任意都可以
    注2:当UNQUIESCE异常终止时,会确保非静止操作的结束
 
    3、查询状态
 
    select active_state from v$instance;
 
    NORMAL:非禁止状态
    QUIESCING:禁止状态,但仍激活非DBA会话运行
    QUIESCED:禁止状态,不激活任何非DBA会话
 
 
三、暂停、继续数据库
 
    1、暂停
 
    ALTER SYSTEM SUSPEND;
 
    注1:实际上是中断了所有数据文件和控制文件的输入和输出;
    注2:可使数据库在没有任何输入输出的情况下进行备份
    注3:执行之后会允许完成所有当前存在的I/O操作,并将新的访问置于静止状态
    注4:RAC中也是针对所有实例生效
 
    2、继续
 
    ALTER SYSTEM RESUME;
 
    注:不能用SUSPEND来替代将表空间置于热备份模式!!
 
    3、查询状态
 
    select database_status from v$instance;
 
    ACTIVE: 活动状态
    SUSPEND:暂停状态
 
 
 
 

你可能感兴趣的:(数据库的关闭)