数据库的关闭
接着学习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:暂停状态