一 restrict 登陆
SQL> startup restrict
ORACLE instance started.
Total System Global Area 188743680 bytes
Fixed Size 788068 bytes
Variable Size 145488284 bytes
Database Buffers 41943040 bytes
Redo Buffers 524288 bytes
Database mounted.
Database opened.
SQL> conn zz/a850624
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege
必须要 RESTRICTED SESSION privilege
SQL> alter system disable restricted session;
System altered.
SQL> conn zz/a850624
Connected.
SQL>
二 QUIESCE DATABASE登陆
SQL> select active_state from v$instance;
ACTIVE_ST
---------
NORMAL~~~~~~~~~~~~~~正常
SQL> show parameter resource
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
enqueue_resources integer 968
resource_limit boolean TRUE
resource_manager_plan string~~~~~~~~~~~~~~~~~~要求是活动的 资源计划
他是用数据库资源管理器控制
instance
SQL> show parameter resource
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
enqueue_resources integer 968
resource_limit boolean TRUE
resource_manager_plan string SYSTEM_PLAN*******************
SQL> alter system quiesce restricted;
System altered.
SQL> select active_state from v$instance;
ACTIVE_ST
---------
QUIESCED
SQL> conn xh/a831115
会等待 hung住了\
SQL> alter system unquiesce;~~~另一个SESSION SYSDBA登陆
System altered.
SQL>
SQL> conn xh/a831115 hang的连接成功
Connected.
SQL> select active_state from v$instance; SYSDBA登陆
ACTIVE_ST
---------
NORMAL
SQL> alter system quiesce restricted;~~~~~~~~~SYSDBA
System altered.
SQL> select * from t1;~~~~~~~~~ USER XH 执行后又hung住了
SQL> alter system unquiesce; SYSDBA
System altered.
SQL> select * from t1; USER XH output
A
----------
2
2
2
2
2
SQL> update t1 set a=6;~~~~~~~~~~USER XH
15 rows updated.~~~~~~~~未commit
SQL>
SQL> alter system quiesce restricted; SYSDBA HANG 等待 所有事务执行完毕
SQL> commit; XH
Commit complete.
SQL> alter system quiesce restricted; SYSDBA
System altered.
SQL> select sid,state from v$session where username='XH';
SID STATE
---------- -------------------
161 WAITING~~~~~~~~~~~~~~~~~~~~状态
SQL> select sid ,event from v$session_event where event like '%QUIESCE%';
可以确定 那些SESSION WAITING quiesce database
当停顿了数据库,INTERNAL_QUIESCE资源计划被激活了。除SYS_GROUPS其它所有的资源组中的ACTIVE_SESS_POOL_P1应被设置为0。因SYS和SYSTEM用户都属于SYS_GROUPS组,所以只
有它们可以连接到数据库。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12020513/viewspace-613307/ ,如需转载,请注明出处,否则将追究法律责任。