医院网站建设方案,专业的培训行业网站制作,网络工程干什么的,网易企业邮箱入口 官网数据库共有三种状态#xff1a;quiesce、resrict、suspend一、quiesce模式首先来说说数据库的静默状态静默状态是指数据库中只存在sys和system用户建立的活动会话。只有dba能继续操作数据库。此状态下可以进行一些在非静默状态下执行可能存在不安全因素的特殊操作。对于必须持…数据库共有三种状态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\tianset oracle_sidtest_databaseD:\Documents and Settings\tiansqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on 星期五 10月 19 09:19:50 2012Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL conn /as sysdba已连接。SQL alter system quiesce restricted2 ;alter system quiesce restricted*ERROR 位于第 1 行:ORA-25507: 没有使资源管理器一直处于打开状态//如果是9i那么必须设置resource_limit参数为true并设置resource_manager_plan参数指向一个资源计划SQL alter system set resource_manager_planSYSTEM_PLAN scopespfile sidJLRPS;//由于数据库没有开启资源管理器无法执行这个操作。需要开启后重启才生效。系统已更改。SQL shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startupORACLE 例程已经启动。Total System Global Area 126950220 bytesFixed Size 453452 bytesVariable Size 109051904 bytesDatabase Buffers 16777216 bytesRedo Buffers 667648 bytes数据库装载完毕。数据库已经打开。SQL alter system quiesce restricted;系统已更改。SQL conn^C//此处证明静默模式下其他用户不能登录数据库D:\Documents and Settings\tiansqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on 星期五 10月 19 09:32:07 2012Copyright (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_databaseTIANLEI9.2.0.1.0 19-10月-12 OPEN NO 1 STARTEDALLOWED 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_databaseTIANLEI9.2.0.1.0 19-10月-12 OPEN NO 1 STARTEDALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL//恢复正常状态了在设置静默状态时正在登陆的普通用户被挂起无法进行操作了。而当状态改为正常后普通用户的会话继续执行。以上的实验是在oracle9i环境下操作的在10g中必须开启数据库资源管理器的限制已经被取消了。因此向上面实验中的操作其实是没意义的因为静默状态和restricted状态的区别就在于其不用停掉数据库而执行操作。在RAC环境下某个节点设置了静默状态后其他节点也是能够监测到的。二、restrict模式直接实验1.会话1中进行操作SQL startup restrictORACLE 例程已经启动。Total System Global Area 126950220 bytesFixed Size 453452 bytesVariable Size 109051904 bytesDatabase Buffers 16777216 bytesRedo 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 jlrpsTIANLEI9.2.0.1.0 19-10月-12 OPEN NO 1 STARTEDRESTRICTED NO ACTIVE PRIMARY_INSTANCE NORMALSQL create user tes1 identified by tes1;用户已创建SQL grant create session to tes1;授权成功。2.会话2中进行操作SQL conn tes1/tes1ERROR:ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilegeSQL conn scott/tiger已连接。SQL select * from emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM---------- ---------- --------- ---------- ---------- ---------- ----------DEPTNO----------7369 SMITH CLERK 7902 17-12月-80 800207499 ALLEN SALESMAN 7698 20-2月 -81 1600 300307521 WARD SALESMAN 7698 22-2月 -81 1250 50030……//结果省略,scott用户拥有dba角色(RESTRICTED SESSION privilege)3.会话1中操作SQL shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startupORACLE 例程已经启动。Total System Global Area 126950220 bytesFixed Size 453452 bytesVariable Size 109051904 bytesDatabase Buffers 16777216 bytesRedo Buffers 667648 bytes数据库装载完毕。数据库已经打开。SQL4.会话2中操作SQL conn tes1/tes1已连接。可以看到restrict模式需要重启数据库且拥有RESTRICTED SESSION privilege的用户在此模式可以登录系统进行操作。而quiese模式就死板多了除了sys、system都不行不过也更安全。三、suspend模式面向所有用户限制I/O操作。当我们需要进行物理读操作时会话会暂停。SQL shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startupORACLE 例程已经启动。Total System Global Area 126950220 bytesFixed Size 453452 bytesVariable Size 109051904 bytesDatabase Buffers 16777216 bytesRedo Buffers 667648 bytes数据库装载完毕。数据库已经打开。SQL alter system suspend;系统已更改。SQL select * from scott.emp;//一直没有查询结果。这个问题还真不会解决了。将数据库重启再操作还是无效的说到了数据库启停再复习一下启动类型startup nomount --启动实例startup mount --启动实例、装载startup (normal) --启动实例、装载、打开数据库startup pfilexx/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;