数据库共有三种状态:quiesce、resrict、suspend

一、quiesce模式

首先来说说数据库的静默状态

静默状态是指数据库中只存在sys和system用户建立的活动会话。只有dba能继续操作数据库。

此状态下可以进行一些在非静默状态下执行可能存在不安全因素的特殊操作。

对于必须持续运行的系统,在不关闭数据库就能执行某些特殊操作的功能十分重要。

静默状态下数据库资源管理器(database resource manager)将阻止sys、system用户以外的用户提交操作。

进入静默状态的方法为:

alter system quiesce restricted;(sys或system用户执行)

进入静默模式的过程为:数据库资源管理器控制所有实例,阻止非活动会话恢复为活动状态。普通用户无法执

行新的事务、查询、数据提取和pl/sql过程。如果一个查询是由多个连续的 OCI 数据提取操作执行的,Oracle

不会等待所有的数据提取全部结束。Oracle 只会等待当前的数据提取结束并阻塞之后的数据提取。Oracle 还

会等待所有拥有共享资源的会话(SYS 及 SYSTEM 用户的资源除外)释放资源。上面提到的所有等待都结束之

后,Oracle 可以将数据库置为静默状态,并结束 QUIESCE RESTRICTED 语句。

如果数据库的某个实例是在共享服务模式(shared server mode)下运行的,Oracle 通过数据库资源管理器(

Database Resource Manager)阻止用户(SYS 及 SYSTEM 用户除外)登录到此实例。如果实例运行在专用服务

模式(dedicated server mode)下,Oracle 不会对此实例的用户登录进行限制。

静默状态恢复到正常状态方法为:

alter system unquiesce

可以通过v$instance等视图得到数据库状态。

具体实例为:

Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.

D:\Documents and Settings\tian>set oracle_sid=test_database

D:\Documents and Settings\tian>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 10月 19 09:19:50 2012

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn /as sysdba

已连接。

SQL> alter system quiesce restricted

2  ;

alter system quiesce restricted

*

ERROR 位于第 1 行:

ORA-25507: 没有使资源管理器一直处于打开状态

//如果是9i,那么必须设置resource_limit参数为true,并设置resource_manager_plan参数指向一个资源计划

SQL> alter system set resource_manager_plan='SYSTEM_PLAN' scope=spfile sid='JLRP

S';

//由于数据库没有开启资源管理器,无法执行这个操作。需要开启后重启才生效。

系统已更改。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  126950220 bytes

Fixed Size                   453452 bytes

Variable Size             109051904 bytes

Database Buffers           16777216 bytes

Redo Buffers                 667648 bytes

数据库装载完毕。

数据库已经打开。

SQL> alter system quiesce restricted;

系统已更改。

SQL> conn

^C

//此处证明静默模式下其他用户不能登录数据库

D:\Documents and Settings\tian>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 星期五 10月 19 09:32:07 2012

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn /as sysdba

已连接。

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME

--------------- ----------------

HOST_NAME

----------------------------------------------------------------

VERSION           STARTUP_TI STATUS       PAR    THREAD# ARCHIVE LOG_SWITCH_

----------------- ---------- ------------ --- ---------- ------- -----------

LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST

---------- --- ----------------- ------------------ ---------

1 test_database

TIANLEI

9.2.0.1.0         19-10月-12 OPEN         NO           1 STARTED

ALLOWED    NO  ACTIVE            PRIMARY_INSTANCE   QUIESCED//处于静默状态

SQL> alter system unquiesce;

系统已更改。

SQL> conn scott/tiger

已连接。

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME

--------------- ----------------

HOST_NAME

----------------------------------------------------------------

VERSION           STARTUP_TI STATUS       PAR    THREAD# ARCHIVE LOG_SWITCH_

----------------- ---------- ------------ --- ---------- ------- -----------

LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST

---------- --- ----------------- ------------------ ---------

1 test_database

TIANLEI

9.2.0.1.0         19-10月-12 OPEN         NO           1 STARTED

ALLOWED    NO  ACTIVE            PRIMARY_INSTANCE   NORMAL//恢复正常状态了

在设置静默状态时,正在登陆的普通用户被挂起,无法进行操作了。

而当状态改为正常后,普通用户的会话继续执行。

以上的实验是在oracle9i环境下操作的,在10g中,必须开启数据库资源管理器的限制已经被取消了。因此,向

上面实验中的操作其实是没意义的,因为静默状态和restricted状态的区别就在于其不用停掉数据库而执行操

作。

在RAC环境下某个节点设置了静默状态后,其他节点也是能够监测到的。

二、restrict模式:

直接实验

1.会话1中进行操作:

SQL> startup restrict

ORACLE 例程已经启动。

Total System Global Area  126950220 bytes

Fixed Size                   453452 bytes

Variable Size             109051904 bytes

Database Buffers           16777216 bytes

Redo Buffers                 667648 bytes

数据库装载完毕。

数据库已经打开。

SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME

--------------- ----------------

HOST_NAME

----------------------------------------------------------------

VERSION           STARTUP_TI STATUS       PAR    THREAD# ARCHIVE LOG_SWITCH_

----------------- ---------- ------------ --- ---------- ------- -----------

LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE      ACTIVE_ST

---------- --- ----------------- ------------------ ---------

1 jlrps

TIANLEI

9.2.0.1.0         19-10月-12 OPEN         NO           1 STARTED

RESTRICTED NO  ACTIVE            PRIMARY_INSTANCE   NORMAL

SQL> create user tes1 identified by tes1;

用户已创建

SQL> grant create session to tes1;

授权成功。

2.会话2中进行操作:

SQL> conn tes1/tes1

ERROR:

ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege

SQL> conn scott/tiger

已连接。

SQL> select * from emp;

EMPNO ENAME      JOB              MGR HIREDATE          SAL       COMM

---------- ---------- --------- ---------- ---------- ---------- ----------

DEPTNO

----------

7369 SMITH      CLERK           7902 17-12月-80        800

20

7499 ALLEN      SALESMAN        7698 20-2月 -81       1600        300

30

7521 WARD       SALESMAN        7698 22-2月 -81       1250        500

30

……//结果省略,scott用户拥有dba角色(RESTRICTED SESSION privilege)

3.会话1中操作:

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  126950220 bytes

Fixed Size                   453452 bytes

Variable Size             109051904 bytes

Database Buffers           16777216 bytes

Redo Buffers                 667648 bytes

数据库装载完毕。

数据库已经打开。

SQL>

4.会话2中操作:

SQL> conn tes1/tes1

已连接。

可以看到,restrict模式需要重启数据库,且拥有RESTRICTED SESSION privilege的用户在此模式可以登录系

统进行操作。

而quiese模式就死板多了,除了sys、system都不行,不过也更安全。

三、suspend模式:

面向所有用户,限制I/O操作。当我们需要进行物理读操作时,会话会暂停。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup

ORACLE 例程已经启动。

Total System Global Area  126950220 bytes

Fixed Size                   453452 bytes

Variable Size             109051904 bytes

Database Buffers           16777216 bytes

Redo Buffers                 667648 bytes

数据库装载完毕。

数据库已经打开。

SQL> alter system suspend;

系统已更改。

SQL> select * from scott.emp;

//一直没有查询结果。

这个问题还真不会解决了。将数据库重启再操作还是无效的

说到了数据库启停,再复习一下:

启动类型:

startup nomount  --启动实例

startup mount    --启动实例、装载

startup (normal) --启动实例、装载、打开数据库

startup pfile='xx/xx/xx.ora'  --参数文件启动

startup restrict --限制模式,无restricted session权限的用户无法登录

startup force    --强制启动,正常启动不了才用

startup open recover --启动实例,装载数据库和启动完全介质恢复

停止类型:

shutdown (normal) --正常模式

shutdownimmediate --立即模式

shutdown abort    --中断模式,再次启动时可能需要恢复

alter system quiese restricted; --停顿数据库,只有sys、system用户可操作

挂起数据库

--暂停对数据文件和控制文件的所有IO,可以在无IO干扰情况先进行备份

--挂起命令可以挂起数据库而并不指定一个实例

ALTER SYSTEM SUSPEND;

--恢复到非挂起状态

ALTER SYSTEM RESUME;

--查看挂起状态

SELECT DATABASE_STATUS FROM V$INSTANCE;

oracle连续状态相同,数据库共有三种状态:quiesce、resrict、suspend相关推荐

  1. 达梦数据库模式及状态转化介绍

    一.数据库状态 达梦数据库实例存在三种主要状态 1.配置状态(mount) 在该状态下不允许访问数据库对象,只能进行控制文件的维护.归档配置和修改数据库模式等状态. 我们打开DM管理工具,右键实例,选 ...

  2. oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...

    天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...

  3. Oracle数据库查看用户状态

    一.当前ORACLE用户的状态可查看视图DBA_USERS;一般情况下在使用的正常用户均处于OPEN状态. 1 SQL> select username,account_status from  ...

  4. oracle 查看用户状态,Oracle数据库查看用户状态

    一.当前ORACLE用户的状态可查看视图DBA_USERS;一般情况下在使用的正常用户均处于OPEN状态. select username,account_status from dba_users; ...

  5. 如何查看目前所有会话的状态oracle,Oracle一些常用查看数据库状态SQL

    Oracle一些常用查看数据库状态SQL --查看当前连接客户端使用连接数 select   machine, count(machine)  from   sys.v_$session group ...

  6. ORACLE数据库的三种状态:RESTRICT、QUIESCE和SUSPEND

    在Oracle中,有时候要执行一些管理性的操作,而这些操作运行的时候不能有其他用户同时访问数据库.对于这种情况可以设置系统进入RESTRICTED SESSION状态禁止普通用户登陆数据库. 数据库可 ...

  7. 在Oracle中,如何定时清理INACTIVE状态的会话?

    在Oracle中,如何定时清理INACTIVE状态的会话? 一般情况下,少量的INACTVIE会话对数据库并没有什么影响,但是,如果由于程序设计等某些原因导致数据库出现大量的会话长时间处于INACTI ...

  8. 【DB笔试面试702】在Oracle中,如何定时清理INACTIVE状态的会话?

    ♣ 题目部分 在Oracle中,如何定时清理INACTIVE状态的会话? ♣ 答案部分 一般情况下,少量的INACTVIE会话对数据库并没有什么影响,但是,如果由于程序设计等某些原因导致数据库出现大量 ...

  9. mysql 表里restrict_数据库的三种状态RESTRICT、QUIESCE和SUSPEND(一)

    数据库的这三种状态有相似之处,这里简单总结一下. 这一篇介绍RESTRICT状态. 在Oracle中,有时候要执行一些管理性的操作,而这些操作运行的时候不能有其他用户同时访问数据库.对于这种情况可以设 ...

最新文章

  1. ASP中利用OWC控件实现图表功能详解[zz]
  2. Java怎么样?学完后前途怎么样?
  3. Haproxy实现负载均衡
  4. python 中的if else 和in
  5. Oracle归档日志(翻译)
  6. elementUI select组件value值注意事项
  7. javac与java版本不一致
  8. torch GPU分布式训练 模型并行
  9. 《深入浅出通信原理》连载1-562合集
  10. 旷视科技 CSG 算法负责人姚聪:深度学习时代的文字检测与识别技术 | AI 研习社 103 期大讲堂...
  11. 订餐系统oracle实训报告,网上订餐系统设计报告.doc
  12. JavaScript形而上的单例模式
  13. 社交产品盈利方式产品模式设计案例
  14. 2022讯飞——糖尿病遗传风险检测挑战赛解决方案
  15. Phun-有趣的二维物理引擎
  16. HBBuilderProjest逆向分析与安全性扯淡
  17. 《Visual Prompting: Modifying Pixel Space to Adapt Pre-trained Models》论文阅读笔记
  18. hadoop中带后缀的多路输出part文件
  19. SpringBoot 分片上传、断点续传、秒传、直传Minio
  20. Hadoop3.3.4最新版本安装分布式集群部署

热门文章

  1. div中同时存在文本和数字超过两行出省略号
  2. python3-numpy数组广播 和 np.tile 扩展数组
  3. android翻盘效果,行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案...
  4. mysql给指定数据增加前后缀update,替换replace字段值
  5. div 设置a4大小_如何在A4纸张尺寸页面制作HTML页面?
  6. linux 编译 php7_Linux下编译安装PHP7
  7. python定期自动运行_干货分享 | 适合 Python 入门的 8 款强大工具,不会就你还不知道吧!...
  8. html页面内分栏显示不全,怎么消除Word文档分栏后栏间不平衡现象
  9. IOS – OPenGL ES 调节图像饱和度 GPUImageSaturationFilter
  10. cad多线段长度计算总和_没想到啊,我平时用的CAD多段线有这么多学问